void lmcMessaging::receiveProgress(QString* lpszUserId, QString* lpszData) { XmlMessage xmlMessage(*lpszData); int fileMode = indexOf( FileModeNames, FM_Max, xmlMessage.data(XN_MODE) ); int fileOp = indexOf( FileOpNames, FO_Max, xmlMessage.data(XN_FILEOP) ); int fileType = indexOf( FileTypeNames, FT_Max, xmlMessage.data(XN_FILETYPE) ); QString fileId = xmlMessage.data(XN_FILEID); // determine type of message to be sent to app layer based on file type MessageType type; switch(fileType) { case FT_Normal: type = MT_File; break; case FT_Avatar: type = MT_Avatar; break; default: type = MT_Blank; break; } XmlMessage reply; switch(fileOp) { case FO_Error: reply.addData(XN_MODE, FileModeNames[fileMode]); reply.addData(XN_FILETYPE, FileTypeNames[fileType]); reply.addData(XN_FILEOP, FileOpNames[FO_Abort]); reply.addData(XN_FILEID, fileId); sendMessage(type, lpszUserId, &reply); emit messageReceived(type, lpszUserId, &xmlMessage); break; case FO_Progress: case FO_Complete: emit messageReceived(type, lpszUserId, &xmlMessage); break; } }
void main() { string thePath = "C:\\Users\\Martin\\Desktop\\TestingFolder"; string timestamp = __TIMESTAMP__; cout << endl << "TimeStamp before concatenation: " << timestamp; for (string::iterator i = timestamp.begin(); i < timestamp.end(); ++i) { if (*i == ':' || *i == ' ' || *i == ' ') timestamp.erase(i); } cout << endl << "TimeStamp after concatenation: " << timestamp; string folderwithDate = thePath + timestamp; cout << endl << "Folder along with TimeStamp" << folderwithDate; std::wstring stemp = std::wstring(folderwithDate.begin(), folderwithDate.end()); LPCWSTR sw = stemp.c_str(); ::SHCreateDirectoryEx(NULL, sw, NULL); vector<string> folders = FileSystem::Directory::getDirectories("C:\\Users\\Martin\\Desktop\\TestingFolder"); for (auto folder : folders) cout << endl << folder; sPtr rootElement = makeTaggedElement("Dependency"); for (auto folder : folders) { if (folder != "."&&folder != "..") { sPtr folderElement = makeTaggedElement("Package"); folderElement->addAttrib("Name", folder); rootElement->addChild(folderElement); cout << endl << folder; } } XmlDocument xmlFolderDocument(makeDocElement(rootElement)); std::ofstream file; file.open("PackagesDependency.xml", ios::ate); file << xmlFolderDocument.toString(); file.close(); string xmlString = xmlFolderDocument.toString(); XmlDocument xml(xmlString); XmlDocument xmlInputFile("PackagesDependency.xml", XmlDocument::file); vector<sPtr> packages = xml.element("Package").select(); cout << "No. of Packages found: " << packages.size(); vector<string> foldersList; for (auto package : packages) { if (package->getAttrib("Name") != "."&&package->getAttrib("Name") != ".."&&package->getAttrib("Name") != "") { cout << "Hello\n"; foldersList.push_back(package->getAttrib("Name")); } } vector<string> filesList; for (auto folder : foldersList) { std::vector<std::string> files = FileSystem::Directory::getFiles(thePath + "\\" + folder); filesList.insert(filesList.end(), files.begin(), files.end()); } for (auto file : filesList) cout << endl << file; sPtr XMLroot = makeTaggedElement("Packages"); sPtr packageElement = makeTaggedElement("Package"); packageElement->addAttrib("Name", "Package 1"); XMLroot->addChild(packageElement); sPtr versionElement = makeTaggedElement("Version"); versionElement->addAttrib("Name", "1"); versionElement->addAttrib("Directory", "Package1_1"); versionElement->addAttrib("Status", "Closed"); packageElement->addChild(versionElement); versionElement = makeTaggedElement("Version"); versionElement->addAttrib("Name", "2"); versionElement->addAttrib("Directory", "Package1_2"); versionElement->addAttrib("Status", "Open"); packageElement->addChild(versionElement); packageElement = makeTaggedElement("Package"); packageElement->addAttrib("Name", "Package 2"); XMLroot->addChild(packageElement); versionElement = makeTaggedElement("Version"); versionElement->addAttrib("Name", "1"); versionElement->addAttrib("Directory", "Package2_1"); versionElement->addAttrib("Status", "Open"); packageElement->addChild(versionElement); XmlDocument xmlMessage(makeDocElement(XMLroot)); //cout << xmlMessage.toString(); cout << endl; /*string fileSpec = "Package XML Structure.xml"; XmlDocument file(fileSpec, XmlDocument::file); XmlDocument* filePointer = &file;*/ /*Repository repo; repo.addPackageInfoXML(&xmlMessage); vector<PackageDetails> packages = repo.getPackageVersions("Package 1"); cout << endl << "Printing all Packages with name: Package 1"; for (auto packg : packages) { packg.print(); }*/ cout << endl; string xmlInputFileName = "PackagesStructure.xml"; XmlDocument xmlMessagefromDisk(xmlInputFileName, XmlDocument::file); cout << endl << "Printing XML read from disk: " << xmlMessagefromDisk.toString(); Repository repo2("C:\\Users\\Martin\\Desktop\\OODFolder"); repo2.addPackageInfoXML(&xmlMessagefromDisk); repo2.closePackageVersion("Package 1", "2"); cout << endl << "Printing XML read from disk after closing module status: " << xmlMessagefromDisk.toString(); string xmlOutputFileName = "PackagesStructure.xml"; cout << "Writing file to output: " << xmlOutputFileName; ofstream xmlFileWrite; xmlFileWrite.open(xmlOutputFileName, ios::ate); xmlFileWrite << xmlMessagefromDisk.toString(); cout << endl; /*try { XmlDocument xmlMessagefromDisk(xmlInputFileName, XmlDocument::file); cout << "Printing XML read from disk: " << xmlMessagefromDisk.toString(); } catch (std::exception& ex) { std::cout << "\n\n " << ex.what(); }*/ cout << endl; /*PackageDetails package = repo.getLatestPackageVersion("Package 1"); cout << endl << "Printing latest package version with name: Package 1"; package.print(); cout << endl; packages = repo.getPackageVersions("Package 2"); cout << endl << "Printing all Packages with name: Package 2"; for (auto packg : packages) { packg.print(); }*/ cout << endl; }