NetworkModule::NetworkModule() :
    ModuleBase(HDTB_CODE_NETWORK,
               "Netowrk Module",
               "A network interface module.")
{

    commands.insert(
                HDTBMapItem
                ("ping", HDTB_NETWORK_CMD_PING)
                );

    commands.insert(
                HDTBMapItem
                ("reset", HDTB_NETWORK_CMD_RESET)
                );

    commands.insert(
                HDTBMapItem
                ("send", HDTB_NETOWRK_CMD_REACH)
                );

    commands.insert(
                HDTBMapItem
                ("knock", HDTB_NETWORK_CMD_KNOCK_SEQUENCE)
                );

    commands.insert(
                HDTBMapItem
                ("comm", HDTB_NETWORK_CMD_COMMLINK)
                );

}
NetworkClient::NetworkClient() :
ModuleBase(HDTB_NETWORK_SUB_CLIENT,
           "Network Client Sub Module",
           "A module to provide a network client.")
{
    statusInfo.comm = false;
    statusInfo.blindComm = false;
    statusInfo.connectionSet = false;
    connectionInfo.block = 1024;

    commands.insert(
                HDTBMapItem
                ("setInfo", HDTB_CLIENT_LOAD)
                );
    commands.insert(
                HDTBMapItem
                ("send", HDTB_CLIENT_SEND)
                );
    commands.insert(
                HDTBMapItem
                ("initcomm", HDTB_CLIENT_COMM)
                );
    commands.insert(
                HDTBMapItem
                ("initblindcomm", HDTB_CLIENT_BLIND_COMM)
                );

    commands.insert(
                HDTBMapItem
                ("kill", HDTB_NETWORK_CMD_KILL)
                );
}
 SoftwareSubModuleModify::SoftwareSubModuleModify() :
     ModuleBase(HDTB_SOFTWARE_MODIFY,
                "Software SubModule - Modify",
                "The sub-module that handles the modify function for"
                "the Software Module")
 {
     commands.insert(
                 HDTBMapItem
                 ("java", HDTB_SOFTWARE_CMD_MODIFY_JAVA)
                 );
     commands.insert(
                 HDTBMapItem
                 ("ie", HDTB_SOFTWARE_CMD_MODIFY_IE)
                 );
 }
    SoftwareSubModuleInstall::SoftwareSubModuleInstall() :
        ModuleBase(HDTB_SOFTWARE_INSTALL,
                   "Software SubModule - Install",
                   "The sub-module that handles the install command for"
                   "the Software Module")
        {
            commands.insert(
                        HDTBMapItem
                        ("java", HDTB_SOFTWARE_CMD_INSTALL_JAVA)
                        );

            commands.insert(
                        HDTBMapItem
                        ("kace", HDTB_SOFTWARE_CMD_INSTALL_KACE)
                        );

            commands.insert(
                        HDTBMapItem
                        ("avira", HDTB_SOFTWARE_CMD_INSTALL_AVIRA)
                        );
        }
BoxCore::BoxCore()
{
#ifdef _WIN32
    system("color 0A");
    SetConsoleTitle(TEXT("Helpdesk Toolbox - Windows Build"));
#elif __APPLE__
    std::cout << HDTB_PUT_RED;
#endif


    session = false;
    prompt = "core >>";

    /*
           (Step 4)
           Register modules into moduleMap
    */

    moduleMap.insert(
                HDTBMapItem
                ("help", HDTB_CODE_HELP)
                );

    // Add new modules below this line

    moduleMap.insert(
                HDTBMapItem
                ("machine", HDTB_CODE_MACHINE)
                );

    moduleMap.insert(
                    HDTBMapItem
                    ("software", HDTB_CODE_SOFTWARE)
                    );

    moduleMap.insert(
                    HDTBMapItem
                    ("network", HDTB_CODE_NETWORK)
                    );
}