Setting options within an application
Options may be set while running an application. In order to avoid naming conflicts between options loaded from other sources and application options, application options should follow strict naming conventions, e.g. beginning with a defined prefix or by reserving a special section for application options.
Besides using application options for storing run-time information, any option loaded from another source may be overwritten by application options. In order to refer to any option, the complete option path has to be used as option name.
Options may be set in OSI functions or in any application program.
OSI functions allow setting option values at run-time. Within an OSI function, one may refer to options as option variables, except, using the option path enclosed in %...%, or by using odaba::Option functions.
// OSI fragnebts
void main () { // referring to options via %...% option names
%PROJECT_ROOT% = 'c:/odaba/my_projects'; // set option
Message('Value for PROJECT_ROOT is: ' + %PROJECT_ROOT%);
}
void main () { // referring to options via Option functions
Option("PROJECT_ROOT").assign('c:/odaba/my_projects');
Message('Value for PROJECT_ROOT is: ' + Option("PROJECT_ROOT").toString );
}
void main () { // referring to options via Option variables
VARIABLES
Option prj_root("PROJECT_ROOT");
PROCESS
prj_root.assign('c:/odaba/my_projects');
Message('Value for PROJECT_ROOT is: ' + prj_root.toString );
}
In an application, one may set option values by mans of odaba::Option functions. In order to set or change an option value, Option::assign() or the assignment operator (=) might be called.
Option option("PROJECT_ROOT")
option = "c:/odaba/my_project"; // option.assign("c:/odaba/my_project");
printf( option.toString() );