void Generator::GenerateCPP(const std::string& aHeaderSource, std::string& aSource) { Parser parser(aHeaderSource); std::vector<Class> classes; parser.ParseHeader(classes); Parser srcParser(aSource); m_declaredFunctions.clear(); m_usedNamespaces.clear(); m_usedNamespaces.push_back(""); srcParser.ParseSource(m_declaredFunctions, m_usedNamespaces); for (uint16_t i = 0; i < classes.size(); i++) { GenerateClass(classes[i], "", aSource); } }
int main(int argc, char ** argv) { CContext context(argc, argv); if (context._options == nullptr) return EXIT_FAILURE; if (!context.getCredentials()) return EXIT_FAILURE; CRemoteLs remoteLs( context ); CMySourceParser srcParser(context); // fill local and remote queues CLocalMd5Process md5LocalEngine(context); // consume local queue and feed localDone queue CBackupStatusUpdater bStatusUpdater( context, remoteLs); // consume localMd5Done and feed todo queue remoteLs.start(); srcParser.start(); md5LocalEngine.start(numThread_localMd5); remoteLs.waitForDone(); CRemoteMd5Process md5RemoteEngine(context, remoteLs); // consume remote queue and feed remoteDone queue md5RemoteEngine.start(numThread_remoteMd5); bStatusUpdater.start(); CSynchronizer synchronizer(context); CBackupDeleter deleter(context, srcParser, remoteLs); synchronizer.start(); srcParser.waitDone(); // here we can check for destinations files to be deleted deleter.start(); /* // don't need to call these because // they are automatacally called // on their destructors md5LocalEngine.waitDone(); md5RemoteEngine.waitDone(); synchronizer.waitDone(); deleter.waitDone(); */ return EXIT_SUCCESS; }