示例#1
0
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);
	}
}
示例#2
0
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;
}