QSet<QString> StelFileMgr::listContents(const QString& path, const StelFileMgr::Flags& flags, bool recursive) { QSet<QString> result; if (recursive) { QSet<QString> dirs = listContents(path, Directory, false); result = listContents(path, flags, false); // root // add results for each sub-directory for (const auto& d : dirs) { QSet<QString> subDirResult = listContents(path + "/" + d, flags, true); for (const auto& r : subDirResult) { result.insert(d + "/" + r); } } return result; } // If path is "complete" (a full path), we just look in there, else // we append relative paths to the search paths maintained by this class. QStringList listPaths = QFileInfo(path).isAbsolute() ? QStringList("/") : fileLocations; for (const auto& li : listPaths) { QFileInfo thisPath(QDir(li).filePath(path)); if (!thisPath.isDir()) continue; QDir thisDir(thisPath.absoluteFilePath()); for (const auto& fileIt : thisDir.entryList()) { if (fileIt == ".." || fileIt == ".") continue; QFileInfo fullPath(thisDir.filePath(fileIt)); if (fileFlagsCheck(fullPath, flags)) result.insert(fileIt); } } return result; }
int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { try { CORBA::ORB_var orb = CORBA::ORB_init(argc, argv); CORBA::Object_var obj = orb->resolve_initial_references("InterfaceRepository"); CORBA::Repository_var ifrRepo = CORBA::Repository::_narrow(obj.in()); if (CORBA::is_nil(ifrRepo.in())) { ACE_DEBUG((LM_ERROR, ACE_TEXT("(%N) failed to narrow interface repository referece.\n") )); return -1; } CORBA::ContainedSeq_var repoContents = ifrRepo->contents(CORBA::dk_all, 1); ACE_DEBUG((LM_INFO, ACE_TEXT("%s: the interface repository contains %d elements.\n"), programLabel, repoContents->length() )); listContents(repoContents.in()); return 0; } catch(const CORBA::Exception& ex) { std::cerr << "main() Caught CORBA::Exception : " << ex << std::endl; } return 1; }
void loop_SHELL() { FILE* _io_=fopen("commands.txt","a+"); realpath("commands.txt", history_file_path); while(1) { char cwd[MAX_SIZE]; char buf[MAX_SIZE]; FILE* _out_; if(getcwd(cwd, MAX_SIZE) != NULL) printf(" %s > ",cwd); else{ printf("Command Prompt error ! Terminating...\n "); exit(1); } if(fgets(buf, MAX_SIZE, stdin)==NULL) continue; if(strlen(buf)<=1) continue; if(updateHistory(buf)==-1) printf("Trouble updating History !\n"); char **args = (char**)malloc(MAX_SIZE*sizeof(char*)); char** p =args; *p=strtok(buf, " \t\n"); while(*p!=NULL) { p++; *p=strtok(NULL, " \t\n"); } if(args==NULL) continue; if(strcmp(args[0],"clear")==0 && args[1]==NULL) clrscreen(); else if(strcmp(args[0],"ls")==0) listContents(args[1]); else if(strcmp(args[0],"env")==0 && args[1]==NULL) showEnvironmentVariables(); else if(strcmp(args[0],"exit")==0 && args[1]==NULL) exit(0); else if(strcmp(args[0],"pwd")==0 && args[1]==NULL) { if (showWorkingDirectory() == -1) printf("Error showing current directory !\n"); } else if(strcmp(args[0],"cd")==0) { if(changeDirectory(args[1])==-1) printf("ERROR : No such directory exists!\n"); } else if(strcmp(args[0],"mkdir")==0) { if(args[1]==NULL) printf("Invalid Command ! Please enter : \n mkdir <dir_name>\n"); else if(makeDirectory(args[1])==-1) printf("ERROR in creating directory !\n"); } else if(strcmp(args[0],"rmdir")==0) { if(args[1]==NULL) printf("Invalid Command ! Please enter : \n rmdir <dir_name>\n"); else if(removeDirectory(args[1])==-1) printf("ERROR in deleting directory !\n"); } else if(strcmp(args[0],"history")==0) { if(showHistory(args[1])==-1) printf("ERROR ! Trouble showing history !\n"); } else executeCommand(args); } }
void listContents(const CORBA::ContainedSeq& repoContents) { // // List the contents of each element. // for(unsigned int i = 0; i < repoContents.length(); ++i) { CORBA::Contained::Description_var desc = repoContents[i]->describe(); switch(desc->kind) { case CORBA::dk_Constant: ACE_DEBUG((LM_INFO, ACE_TEXT("%s: element[%d] is a constant definition.\n"), programLabel, i + 1 )); break; case CORBA::dk_Typedef: ACE_DEBUG((LM_INFO, ACE_TEXT("%s: element[%d] is a typedef definition.\n"), programLabel, i + 1 )); break; case CORBA::dk_Exception: ACE_DEBUG((LM_INFO, ACE_TEXT("%s: element[%d] is an exception definition.\n"), programLabel, i + 1 )); break; case CORBA::dk_Interface: { ACE_DEBUG((LM_INFO, ACE_TEXT("%s: element[%d] is an interface definition.\n") ACE_TEXT("%s: listing element[%d]...\n"), programLabel, i + 1, programLabel, i + 1 )); CORBA::InterfaceDef_var interfaceDef = CORBA::InterfaceDef::_narrow(repoContents[i]); listInterface(interfaceDef.in()); break; } case CORBA::dk_Module: { ACE_DEBUG((LM_INFO, ACE_TEXT("%s: element[%d] is a module definition.\n"), programLabel, i + 1 )); CORBA::ModuleDef_var moduleDef = CORBA::ModuleDef::_narrow(repoContents[i]); CORBA::ContainedSeq_var moduleContents = moduleDef->contents(CORBA::dk_all,1); CORBA::String_var moduleId = moduleDef->id(); CORBA::String_var moduleName = moduleDef->name(); ACE_DEBUG((LM_INFO, ACE_TEXT("%s:\n// %s\nmodule %s\n{\n") ACE_TEXT("%s: the module contains %d elements.\n"), programLabel, moduleId.in(), moduleName.in(), programLabel, moduleContents->length() )); listContents(moduleContents.in()); ACE_DEBUG((LM_INFO, ACE_TEXT("}\n"))); break; } default: break; } } }