void ProgramManager::AddProgram( string json ) { Program* program = UpcbJsonParser::Instance()->ParseProgram( json ); if( program == NULL ) return; this->availablePrograms[program->Id()] = json; //delete program; //Save Program & Mapping: string storageFolderPath = Configuration::Instance()->GetStringParam( PROGRAMS_STORAGE_DIR ); struct stat st; if ( stat( storageFolderPath.c_str(), &st ) != 0 ) mkdir( storageFolderPath.c_str(), 0777 ); string programSavePath = storageFolderPath + "/" + program->Name() + ".xml"; DataSerializationManager::Save( json, programSavePath.c_str() ); }
void ProgramManager::DeleteProgram( int programId ) { Process* process = this->runningPrograms[programId]; if ( process != NULL ) { this->StopProgram( programId ); } string programDescription = this->availablePrograms[programId]; if( programDescription == "" ) return; Program* program = UpcbJsonParser::Instance()->ParseProgram( programDescription ); if ( program == NULL ) return; //Delete Program & Mapping: string storageFolderPath = Configuration::Instance()->GetStringParam( PROGRAMS_STORAGE_DIR ); struct stat st; if ( stat( storageFolderPath.c_str(), &st ) != 0 ) mkdir( storageFolderPath.c_str(), 0777 ); string programSavePath = storageFolderPath + "/" + program->Name() + ".xml"; string mappingSavePath = storageFolderPath + "/" + program->Name() + "_mapping.xml"; program = NULL; this->availablePrograms.erase( programId ); this->programMappings.erase( programId ); DataSerializationManager::Delete( mappingSavePath.c_str() ); DataSerializationManager::Delete( programSavePath.c_str() ); }