int SettingRegistry::loadJSONsettings(std::string filename, SettingsBase* settings_base, bool warn_base_file_duplicates) { rapidjson::Document json_document; log("Loading %s...\n", filename.c_str()); int err = loadJSON(filename, json_document); if (err) { return err; } if (json_document.HasMember("inherits") && json_document["inherits"].IsString()) { std::string child_filename; bool found = getDefinitionFile(json_document["inherits"].GetString(), filename, child_filename); if (!found) { return -1; } err = loadJSONsettings(child_filename, settings_base, warn_base_file_duplicates); // load child first if (err) { return err; } err = loadJSONsettingsFromDoc(json_document, settings_base, false); } else { err = loadJSONsettingsFromDoc(json_document, settings_base, warn_base_file_duplicates); } if (json_document.HasMember("metadata") && json_document["metadata"].IsObject()) { const rapidjson::Value& json_metadata = json_document["metadata"]; if (json_metadata.HasMember("machine_extruder_trains") && json_metadata["machine_extruder_trains"].IsObject()) { const rapidjson::Value& json_machine_extruder_trains = json_metadata["machine_extruder_trains"]; for (rapidjson::Value::ConstMemberIterator extr_train_iterator = json_machine_extruder_trains.MemberBegin(); extr_train_iterator != json_machine_extruder_trains.MemberEnd(); ++extr_train_iterator) { int extruder_train_nr = atoi(extr_train_iterator->name.GetString()); if (extruder_train_nr < 0) { continue; } const rapidjson::Value& json_id = extr_train_iterator->value; if (!json_id.IsString()) { continue; } const char* id = json_id.GetString(); if (extruder_train_nr >= (int) extruder_train_ids.size()) { extruder_train_ids.resize(extruder_train_nr + 1); } extruder_train_ids[extruder_train_nr] = std::string(id); } } } return err; }
int SettingRegistry::loadExtruderJSONsettings(unsigned int extruder_nr, SettingsBase* settings_base) { if (extruder_nr >= extruder_train_ids.size()) { return -1; } std::string definition_file; bool found = getDefinitionFile(extruder_train_ids[extruder_nr], "", definition_file); if (!found) { return -1; } bool warn_base_file_duplicates = false; return loadJSONsettings(definition_file, settings_base, warn_base_file_duplicates); }
bool BASE_SESSION_CLASS::loadDefinition(string definitionFileName) // DESCRIPTION : Load the given definition file. // PRECONDITIONS : // POSTCONDITIONS : // EXCEPTIONS : // NOTES : //<<=========================================================================== { bool result = false; bool loaded = false; UINT nrOfDefinitionFiles = noDefinitionFiles(); for (UINT index = 0; index < nrOfDefinitionFiles; index++) { DEFINITION_FILE_CLASS* pDefFile = getDefinitionFile(index); const char* defFileName = pDefFile->getFilename(); if(!isPathAbsolute((char*)defFileName)) { defFileName = pDefFile->getAbsoluteFilename(); } if (strcmp(defFileName, definitionFileName.c_str()) == 0) { loaded = true; result = true; break; } } // Skip loading if already loaded. if (loaded) return result; // allocate a new defintion file DEFINITION_FILE_CLASS *definitionFile_ptr = new DEFINITION_FILE_CLASS(this, definitionFileName); if (definitionFile_ptr) { if (loggerM_ptr) { loggerM_ptr->text(LOG_NONE, 1, "Loading Definition File: -"); loggerM_ptr->text(LOG_NONE, 1, "\t%s", definitionFile_ptr->getFilename()); } // load defintion file result = definitionFile_ptr->Load(); // on success add file to session list if (result) { addDefinitionFile(definitionFile_ptr); // check if the abstract mapping need setting up checkAbstractMappings(); } else { // failed to load definition file if (loggerM_ptr) { loggerM_ptr->text(LOG_NONE, 1, "%s %s", VAL_PREFIX_FAILED, definitionFile_ptr->getFilename()); } delete definitionFile_ptr; } } // return the load result return result; }
bool EMULATOR_SESSION_CLASS::serialise(FILE *file_ptr) // DESCRIPTION : Serialise the script session to file. // PRECONDITIONS : // POSTCONDITIONS : // EXCEPTIONS : // NOTES : //<<=========================================================================== { // write the file contents fprintf(file_ptr, "SESSION\n\n"); fprintf(file_ptr, "SESSION-TYPE emulator\n"); fprintf(file_ptr, "SESSION-FILE-VERSION %d\n", CURRENT_SESSION_FILE_VERSION); fprintf(file_ptr, "\n# Product Test Session Properties\n"); fprintf(file_ptr, "SESSION-TITLE \"%s\"\n", getSessionTitle()); fprintf(file_ptr, "SESSION-ID %03d\n", getSessionId()); fprintf(file_ptr, "MANUFACTURER \"%s\"\n", getManufacturer()); fprintf(file_ptr, "MODEL-NAME \"%s\"\n", getModelName()); fprintf(file_ptr, "SOFTWARE-VERSIONS \"%s\"\n", getSoftwareVersions()); fprintf(file_ptr, "APPLICATION-ENTITY-NAME \"%s\"\n", getApplicationEntityName()); fprintf(file_ptr, "APPLICATION-ENTITY-VERSION \"%s\"\n", getApplicationEntityVersion()); fprintf(file_ptr, "TESTED-BY \"%s\"\n", getTestedBy()); fprintf(file_ptr, "DATE \"%s\"\n", getDate()); fprintf(file_ptr, "\n# SUT ACSE Properties\n"); fprintf(file_ptr, "SUT-ROLE "); switch(getSutRole()) { case UP_ACCEPTOR_REQUESTOR: fprintf(file_ptr, "acceptorAndRequestor\n"); break; case UP_ACCEPTOR: fprintf(file_ptr, "acceptor\n"); break; case UP_REQUESTOR: fprintf(file_ptr, "requestor\n"); break; default: break; } fprintf(file_ptr, "SUT-AE-TITLE \"%s\"\n", getSutAeTitle()); fprintf(file_ptr, "SUT-MAXIMUM-LENGTH-RECEIVED %d\n", getSutMaximumLengthReceived()); fprintf(file_ptr, "SUT-IMPLEMENTATION-CLASS-UID \"%s\"\n", getSutImplementationClassUid()); fprintf(file_ptr, "SUT-IMPLEMENTATION-VERSION-NAME "); if (getSutImplementationVersionName()) fprintf(file_ptr, "\"%s\"\n", getSutImplementationVersionName()); else fprintf(file_ptr, "\"\"\n"); fprintf(file_ptr, "\n# DVT ACSE Properties\n"); fprintf(file_ptr, "DVT-AE-TITLE \"%s\"\n", getDvtAeTitle()); fprintf(file_ptr, "DVT-MAXIMUM-LENGTH-RECEIVED %d\n", getDvtMaximumLengthReceived()); fprintf(file_ptr, "DVT-IMPLEMENTATION-CLASS-UID \"%s\"\n", getDvtImplementationClassUid()); fprintf(file_ptr, "DVT-IMPLEMENTATION-VERSION-NAME "); if (getDvtImplementationVersionName()) fprintf(file_ptr, "\"%s\"\n", getDvtImplementationVersionName()); else fprintf(file_ptr, "\"\"\n"); fprintf(file_ptr, "\n# Socket Properties\n"); fprintf(file_ptr, "SUT-HOSTNAME \"%s\"\n", getSutHostname()); fprintf(file_ptr, "SUT-PORT %d\n", getSutPort()); fprintf(file_ptr, "DVT-PORT %d\n", getDvtPort()); fprintf(file_ptr, "DVT-SOCKET-TIMEOUT %d\n", getDvtSocketTimeout()); fprintf(file_ptr, "USE-SECURE-SOCKETS %s\n", (getUseSecureSockets()) ? "true" : "false"); fprintf(file_ptr, "TLS-VERSION \"%s\"\n", getTlsVersion()); fprintf(file_ptr, "CHECK-REMOTE-CERTIFICATE %s\n", (getCheckRemoteCertificate()) ? "true" : "false"); fprintf(file_ptr, "CIPHER-LIST \"%s\"\n", getCipherList()); fprintf(file_ptr, "CACHE-TLS-SESSIONS %s\n", (getCacheTlsSessions()) ? "true" : "false"); fprintf(file_ptr, "TLS-CACHE-TIMEOUT %d\n", getTlsCacheTimeout()); fprintf(file_ptr, "CREDENTIALS-FILENAME \"%s\"\n", getCredentialsFilename().c_str()); fprintf(file_ptr, "CERTIFICATE-FILENAME \"%s\"\n", getCertificateFilename().c_str()); fprintf(file_ptr, "\n# Test Session Properties\n"); fprintf(file_ptr, "LOG-ERROR %s\n", (isLogLevel(LOG_ERROR)) ? "true" : "false"); fprintf(file_ptr, "LOG-WARNING %s\n", (isLogLevel(LOG_WARNING)) ? "true" : "false"); fprintf(file_ptr, "LOG-INFO %s\n", (isLogLevel(LOG_INFO)) ? "true" : "false"); fprintf(file_ptr, "LOG-RELATION %s\n", (isLogLevel(LOG_IMAGE_RELATION)) ? "true" : "false"); fprintf(file_ptr, "LOG-DEBUG %s\n", (isLogLevel(LOG_DEBUG)) ? "true" : "false"); fprintf(file_ptr, "LOG-DULP-STATE %s\n", (isLogLevel(LOG_DULP_FSM)) ? "true" : "false"); fprintf(file_ptr, "LOG-SCP-THREAD %s\n", (getLogScpThread()) ? "true" : "false"); fprintf(file_ptr, "PDU-DUMP %s\n", (isLogLevel(LOG_PDU_BYTES)) ? "true" : "false"); fprintf(file_ptr, "STORAGE-MODE "); switch(getStorageMode()) { case SM_AS_MEDIA: fprintf(file_ptr, "as-media\n"); break; case SM_AS_DATASET: fprintf(file_ptr, "as-dataset\n"); break; case SM_NO_STORAGE: default: fprintf(file_ptr, "no-storage\n"); break; } fprintf(file_ptr, "STRICT-VALIDATION %s\n", (getStrictValidation()) ? "true" : "false"); fprintf(file_ptr, "DETAILED-VALIDATION-RESULTS %s\n", (getDetailedValidationResults()) ? "true" : "false"); fprintf(file_ptr, "SUMMARY-VALIDATION-RESULTS %s\n", (getSummaryValidationResults()) ? "true" : "false"); fprintf(file_ptr, "INCLUDE-TYPE-3-NOTPRESENT-INRESULTS %s\n", (getIncludeType3NotPresentInResults()) ? "true" : "false"); fprintf(file_ptr, "AUTO-TYPE-2-ATTRIBUTES %s\n", (getAutoType2Attributes()) ? "true" : "false"); fprintf(file_ptr, "DEFINE-SQ-LENGTH %s\n", (getDefineSqLength()) ? "true" : "false"); fprintf(file_ptr, "ADD-GROUP-LENGTH %s\n", (getAddGroupLength()) ? "true" : "false"); fprintf(file_ptr, "\n# Supported Transfer Syntaxes\n"); for (int i = 0; i < noSupportedTransferSyntaxes(); i++) { fprintf(file_ptr, "SUPPORTED-TRANSFER-SYNTAX \"%s\"\n", getSupportedTransferSyntax(i)); } fprintf(file_ptr, "\n# Definitions\n"); for (UINT i = 0; i < noDefinitionDirectories(); i++) { fprintf(file_ptr, "DEFINITION-DIRECTORY \"%s\"\n", getDefinitionDirectory(i).c_str()); } for (unsigned int j = 0; j < noDefinitionFiles(); j++) { DEFINITION_FILE_CLASS *definitionFile_ptr = getDefinitionFile(j); fprintf(file_ptr, "DEFINITION \"%s\"\n", definitionFile_ptr->getFilename()); } fprintf(file_ptr, "\n# Results\n"); fprintf(file_ptr, "RESULTS-ROOT \"%s\"\n", getResultsRoot()); fprintf(file_ptr, "APPEND-TO-RESULTS-FILE %s\n", (getAppendToResultsFile()) ? "true" : "false"); fprintf(file_ptr, "\n# Data Directory\n"); fprintf(file_ptr, "DATA-DIRECTORY \"%s\"\n", getDataDirectory()); fprintf(file_ptr, "\n# DICOMScript Description Directory\n"); fprintf(file_ptr, "DESCRIPTION-DIRECTORY \"%s\"\n", getDescriptionDirectory().c_str()); fprintf(file_ptr, "\nENDSESSION\n"); // return success return true; }