Main routine of kin-util program is the parser of the input XML-file with the job instructions. It looks for the job commands and pass their XML texts to the corresponding subroutines. There are two groups of the commands: import/export commands and instructions for computations.
Import/Export. The result is returned as a reference via the second argument of the subroutine:
CLIStatus importSchema(const XMLElement&, Schema*& schema_ptr); CLIStatus importSchemaInstance(const XMLElement&, SchemaInstance*& instance_ptr); CLIStatus importInstanceExptlData(const XMLElement&);
Computations:
CLIStatus doComputation(const XMLElement& calc_elem); CLIStatus displayResult(const XMLElement&); CLIStatus optimize(const XMLElement& optimize_elem);
Global containers are used by the main routine:
std::vector<Schema*> globalSchemaList; std::vector<SchemaInstance*> globalInstanceList; std::map<String, CalculationResult*> globalResultMap; std::map<String, ExptlDataContainer*> globalExptlMap;
And there are several misc functions to find objects by their means:
Schema* findSchemaById(const Clip& schema_id); SchemaInstance* findInstanceById(const Clip& instance_id); CalculationResult* findResultById(const Clip& result_id); InstanceExperimentalData* findExptlById(const Clip& exptl_id);
CLIStatus is the class which objects depict results of any parsing or calculation subroutine. It declares an Error/Warning ID, textual description of the error and the error's context (e.g. an invalid command syntax).