bool parseConfigs(int argc, char **argv)
        {
            ArgsParser& ap = ArgsParser::getInstance();
            ModuleConnector& module_connector = ModuleConnector::getInstance();

            po::options_description simDesc(simulationClass->moduleGetName());
            simulationClass->moduleRegisterHelp(simDesc);
            ap.addOptions(simDesc);

            po::options_description initDesc(initClass->moduleGetName());
            initClass->moduleRegisterHelp(initDesc);
            ap.addOptions(initDesc);

            po::options_description analyserDesc(analyserClass->moduleGetName());
            analyserClass->moduleRegisterHelp(analyserDesc);
            ap.addOptions(analyserDesc);

            // setup all boost::program_options and add to ArgsParser
            BoostOptionsList options = module_connector.registerHelp();

            for (BoostOptionsList::const_iterator iter = options.begin();
                 iter != options.end(); ++iter)
            {
                ap.addOptions(*iter);
            }

            // parse environment variables, config files and command line
            return ap.parse(argc, argv);
        }
        ArgsParser::ArgsErrorCode parseConfigs(int argc, char **argv)
        {
            ArgsParser& ap = ArgsParser::getInstance();
            PluginConnector& pluginConnector = Environment<>::get().PluginConnector();

            po::options_description simDesc(simulationClass->pluginGetName());
            simulationClass->pluginRegisterHelp(simDesc);
            ap.addOptions(simDesc);

            po::options_description initDesc(initClass->pluginGetName());
            initClass->pluginRegisterHelp(initDesc);
            ap.addOptions(initDesc);

            po::options_description pluginDesc(pluginClass->pluginGetName());
            pluginClass->pluginRegisterHelp(pluginDesc);
            ap.addOptions(pluginDesc);

            // setup all boost::program_options and add to ArgsParser
            BoostOptionsList options = pluginConnector.registerHelp();

            for (BoostOptionsList::const_iterator iter = options.begin();
                 iter != options.end(); ++iter)
            {
                ap.addOptions(*iter);
            }

            // parse environment variables, config files and command line
            return ap.parse(argc, argv);
        }
 void pluginLoad()
 {
     simulationClass->load();
     mappingDesc = simulationClass->getMappingDescription();
     pluginClass->setMappingDescription(mappingDesc);
     initClass->setMappingDescription(mappingDesc);
 }
 void moduleLoad()
 {
     simulationClass->load();
     mappingDesc = simulationClass->getMappingDescription();
     analyserClass->setMappingDescription(mappingDesc);
     initClass->setMappingDescription(mappingDesc);
 }
 virtual void start()
 {
     PluginConnector& pluginConnector = Environment<>::get().PluginConnector();
     pluginConnector.loadPlugins();
     log<picLog::SIMULATION_STATE > ("Startup");
     simulationClass->setInitController(initClass);
     simulationClass->startSimulation();
 }
 virtual void start()
 {
     ModuleConnector& module_connector = ModuleConnector::getInstance();
     module_connector.loadModules();
     log<picLog::SIMULATION_STATE > ("Startup");
     simulationClass->setInitController(initClass);
     simulationClass->startSimulation();
 }
 SimulationStarter() : mappingDesc(nullptr)
 {
     simulationClass = new SimulationClass();
     initClass = new InitClass();
     simulationClass->setInitController(initClass);
     pluginClass = new PluginClass();
 }
 SimulationStarter() : mappingDesc(NULL)
 {
     simulationClass = new SimulationClass();
     initClass = new InitClass();
     simulationClass->setInitController(initClass);
     analyserClass = new AnalyserClass();
 }
 void pluginUnload()
 {
     PluginConnector& pluginConnector = Environment<>::get().PluginConnector();
     pluginConnector.unloadPlugins();
     initClass->unload();
     pluginClass->unload();
     simulationClass->unload();
 }
 void moduleUnload()
 {
     ModuleConnector& module_connector = ModuleConnector::getInstance();
     module_connector.unloadModules();
     initClass->unload();
     analyserClass->unload();
     simulationClass->unload();
 }
void saveSimulationData(int option, SimulationClass &s)
{
    fstream file;
    switch(option)
    {
        case 0:
            /*
             *   Data file structure:
             *
             *   time of running
             *   number of energy points
             */
            try
            {
                file.open("/home/afro/Dokumenty/Praca Inżynierska/Kody/eP_t.txt", ios::out | ios::app);
                file << s.countEnergyPoints() << endl;
                file << s.getRunningTime() << endl;
                file.close();
            }
            catch(string str)
            {
                cout << "Error: " << str << endl;
            }
            break;

        case 1:
            /*
             *   Data file structure:
             *
             *   time of running
             *   number of nodes
             */
            try
            {
                file.open("/home/afro/Dokumenty/Praca Inżynierska/Kody/t_N.txt", ios::out | ios::app);
                file << s.getRunningTime() << endl;
                file << s.getAmountOfNodes() << endl;
                file.close();
            }
            catch(string str)
            {
                cout << "Error: " << str << endl;
            }
            break;

        case 2:
            /*
             *   Data file structure:
             *
             *   number of energy points
             *   number of nodes
             */
            try
            {
                file.open("/home/afro/Dokumenty/Praca Inżynierska/Kody/eP_N.txt", ios::out | ios::app);
                file << s.countEnergyPoints() << endl;
                file << s.getAmountOfNodes() << endl;
                file.close();
            }
            catch(string str)
            {
                cout << "Error: " << str << endl;
            }
            break;
    }
}