IGLib  1.7.2
The IGLib base library for development of numerical, technical and business applications.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros
IG.Lib.App Class Reference

Base class for all application classes. Provides some basic functionality such as keeping information about the application, managing application directories and basic files, etc. More...

+ Inheritance diagram for IG.Lib.App:
+ Collaboration diagram for IG.Lib.App:

Public Member Functions

 App (string programName, int version, int subVersion)
 Constructs a new application object. More...
 
 App (string programName, int version, int subVersion, string release)
 Constructs a new application object. More...
 
 App (string programName, int version, int subVersion, int subSubVersion, string release)
 Initializes the global data for the current program. More...
 
 App (string programName, string codeName, int version, int subVersion, string release)
 Initializes the global data for the current program. More...
 
 App (string programName, string codeName, int version, int subVersion, int subSubVersion, string release)
 Constructs a new application object. More...
 
void SetCommandlineArguments (string[] args)
 Sets command-line arguments of the application. More...
 
virtual void ParseCommandlineArguments (string[] args)
 Parses command-line arguments and eventually sets various internal variables according to their values. More...
 
void AddModule (Module m)
 Adds the specified module to the application's list of modules. More...
 
void RemoveModule (Module m)
 Removes the specified module to the application's list of modules. More...
 
override string ToString ()
 
- Public Member Functions inherited from IG.Lib.ModuleBase
DateTime CalculateCreationTime ()
 Calculates program creation time of the current executable (the entry assembly) and returns it. More...
 
DateTime CalculateCreationTime (Type type)
 Calculates creation time of the assembly containing the specified class and returns it. More...
 
virtual bool CheckSoftwareRootValidity (string rootpath)
 Verifies whether the specified directory is a valid software root directory. Global is verified by the standard identtification file that was put into the directory at its creation. More...
 
string ToStringShort ()
 Retrurns a short string containing very basic information about the application or module. More...
 
override string ToString ()
 Returns a string containing basic data of the module or application. More...
 
virtual List< String > NoticeShort ()
 Returns a list of text lines introducing the module or application in a condensed way. More...
 
virtual List< String > Notice ()
 Returns a list of text lines introducing the module or application in. More...
 
virtual List< String > Notice (bool useCodename, bool printVersion, bool printRelease, bool printAuthor, bool printAuthorAddress, bool printWebPage, bool printEmail)
 Returns a list of text lines introducing the module or application. More...
 
virtual void LaunchInitNotice ()
 Launches initialization notice. More...
 

Public Attributes

int _numCommandlineArguments
 
- Public Attributes inherited from IG.Lib.ModuleBase
XmlDocument Data =null
 
const string DefaultModuleName = "Test Library"
 
const int DefaultVersion = 0
 
String Email = null
 
String[] Authors = null
 
bool _expires = true
 

Protected Member Functions

virtual void InitProgram (string programName, string codeName, int version, int subVersion, int subSubVersion, string release)
 Constructs a new application object. More...
 
override void BeforeInitialization ()
 Pre-initialization stage. More...
 
int FindModuleIndex (Module m)
 
- Protected Member Functions inherited from IG.Lib.ModuleBase
virtual void AfterInitialization ()
 A method called after any s initializations in constructors. Override this method in derived classes in order to achieve different behavior. More...
 
void InitModuleBase (string name, string codeName, int version, int subVersion, int subSubVersion, string release)
 Performs complete initialization of the program or module, including the pre-initialization and post-initialization steps. More...
 
virtual string ToCodeName (string Name)
 Converts a module or program name to a valid code name. More...
 

Static Protected Member Functions

static void InitApp ()
 Initializes the global application data. This should be called in derived class' Init(). More...
 
- Static Protected Member Functions inherited from IG.Lib.ModuleBase
static int MaxLength (List< string > lines)
 Maximal length of any line in the specified list. More...
 
static string MultiCharacter (char ch, int num)
 Returns a string containing the specified number of specified (equal) characters. More...
 

Protected Attributes

string[] _commandLineArguments
 
List< Module_modules = new List<Module>()
 
- Protected Attributes inherited from IG.Lib.ModuleBase
const int DD = 06
 
object _lock = new object()
 
string _IGHomeEnv = null
 
string[] _IGHomeEnvList
 
bool _isModule = false
 
string _Name = "IG's Test Program"
 
int _version = 0
 
int _NumVersionDigits =2
 
bool _useSubVersion = true
 
DateTime _StartTime = DateTime.Now
 
TimeSpan _ValidityPeriod =new TimeSpan(100*366,0,0,0,0)
 
string _Directory = null
 
string _modulesDir = "modules"
 
string _applicationsDir = "applications"
 
IReporter _reporter = DefaultReporter
 

Static Protected Attributes

static object lockGlobal = new Object()
 Global application data lock. More...
 
static App _global = new App(DefaultApplicationName, DefaultVersion, DefaultSubVersion)
 
static bool _initializedGlobal = false
 
- Static Protected Attributes inherited from IG.Lib.ModuleBase
static IReporter _defaultReporter = null
 

Properties

string[] CommandlineArguments [get, protected set]
 Command-line arguments. More...
 
int NumCommandlineArguments [get, private set]
 Number of command-line arguments. More...
 
static App Global [get, protected set]
 Gets the global instance of the App class, representing the current program. More...
 
static bool InitializedGlobal [get, protected set]
 Gets a true/false value telling whether the global application data is initialized or not. More...
 
static IReporter Rep [get, set]
 Application's reporter. More...
 
- Properties inherited from IG.Lib.ModuleBase
object Lock [get]
 Object's lock (implementation of ILockable). More...
 
string IGHomeEnv [get, protected set]
 Environment variable that holds the software root directory. More...
 
string[] IGHomeEnvList [get, protected set]
 Possible names for environment variable that holds the software root directory. More...
 
virtual string IGHomeIdFile [get, protected set]
 Name of the software root identification file This file must be contained immediately in the software root directory. Its contents is checked in order to see whether a certain directory is actually the software root directory. More...
 
virtual string IGHomeIdFileString [get, protected set]
 Name of the software root identification file This file must be contained immediately in the software root directory. Its contents is checked in order to see whether a certain directory is actually the software root directory. More...
 
string AuthorFullName [get]
 Gets a treue/false value telling whether the global program data is initialized or not. More...
 
string AuthorAddress [get]
 Gets complete developer's address (combination of individual address lines). More...
 
virtual bool IsApplication [get, protected set]
 Whether the current object represents an application. More...
 
virtual bool IsModule [get, protected set]
 Whether the current object represents a module (not an application). More...
 
virtual string Name [get, set]
 Gets or sets the full name of the program. More...
 
string CodeName [get, set]
 Gets or sets code name of the program. More...
 
int Version [get, set]
 Gets or sets the main version number of the program. More...
 
int SubVersion [get, set]
 Gets or sets the subversion number of the program. More...
 
int SubSubVersion [get, set]
 Gets or sets the sub-subversion number of the program. More...
 
string Release [get, set]
 Gets or sets the release specification of the program (e.g. "alpha", "beta", "release"...). More...
 
virtual DateTime StartTime [get, private set]
 Gets The starting time of the program (time when program data was initialized). More...
 
DateTime CreationTime [get, protected set]
 Gets or sets craation time of the program. More...
 
virtual bool Expires [get, set]
 Gets or sets the flag telling whether the program expires. More...
 
TimeSpan ValidityPeriod [get, set]
 Gets or sets the validity period length for the program. More...
 
TimeSpan ExpireWarnPeriod [get, set]
 Gets or sets the length of the expiration warning period. This is the period of time between expiration of the software and time when the software actually stops working. If not set, 0 is taken. More...
 
DateTime ExpireTime [get, set]
 Gets or sets the expiration time of the program. Property is automatically updated if the validity period is changed. More...
 
DateTime ExpireFinalTime [get, set]
 Gets or sets the time when program will stop functioning completely. More...
 
bool HasExpired [get]
 Gets the indicatin whether the program has expired. More...
 
bool HasExpiredFinal [get]
 Gets the indicatin whether the program has stopped being functional because of expiration. This happens after final expiration time has reach, which follows a certain period after the regular expiration time. More...
 
int DaysTillExpire [get]
 Gets the number of days until the expiration of the program or module (0 or negative if already expired). More...
 
int DaysTillExpireFinal [get]
 Gets the number of days until the final expiration of the program or module, when the software will stop functioning (0 or negative if already expired). More...
 
int NumVersionDigits [get, set]
 Number of digits that are output in version strings. More...
 
bool UseSubVersion [get, set]
 Whether or not subversion number is used. More...
 
bool UseSubSubVersion [get, set]
 Whether or not sub-subversion number is used. More...
 
string VersionString [get]
 Gets the string that represents program version. More...
 
string DirectoryVersionString [get]
 Gets the string representation of program version to be used in directory and file names. Sub-subversion is not included in the string. More...
 
string User [get, set]
 Gets name of the user of the program. More...
 
virtual String SoftwareParentDirectory [get]
 Gets the directory containing individual module or application directories. More...
 
virtual string BaseDirectory [get, set]
 Gets or sets the program directory (containing all version directories, user directories, etc.). Setting of program directory should normally be left to the system. More...
 
virtual string VersionDirectory [get, set]
 Gets or sets the program'result specific version directory. Setting of this directory should normally be left to the system. More...
 
virtual string UserDirectory [get, set]
 Gets or sets the spedcific user'result directory for the current version of the progrm. Setting of this directory should normally be left to the system. More...
 
virtual string SessionDirectory [get, set]
 Gets or sets the current session'result directory. Setting of this directory should normally be left to the system. More...
 
virtual string SoftwareRoot [get, protected set]
 Gets or sets the software root directory. Setting it should normally be left to the system. More...
 
IReporter Reporter [get, set]
 
static IReporter DefaultReporter [get]
 Returns the curent global Application reporter. More...
 
static DateTime AnnDllTestLimit [get]
 
static bool IsAnnDllTestMode [get]
 Whether dynamic testing of software is on (helps in agile software development). More...
 
static bool LoadableScriptShellIsLoadableDefault [get]
 Basic procedure for calculation of the flag LoadableScriptShellIsLoadable. More...
 
static bool LoadableScriptShellIsRunnableDefault [get]
 Basic procedure for calculation of the flag LoadableScriptShellIsRunnable. More...
 
- Properties inherited from IG.Lib.ILockable
object Lock [get]
 

Additional Inherited Members

- Static Public Member Functions inherited from IG.Lib.ModuleBase
static string DecorationFrameAsterisk (List< string > lines, int indent, int padLeft, int padRight, int padTop, int padBottom)
 Returns a string containing the specified text lines in a single frame made of asterisks. More...
 
static string DecorationFrameDoubleAsterisk (List< string > lines, int indent, int padLeft, int padRight, int padTop, int padBottom)
 Returns a string containing the specified text lines in a double frame made of asterisks. More...
 
static string DecorationFrame (List< string > lines, int indent, int padLeft, int padRight, int padTop, int padBottom, char frameChar, int thickness)
 Returns a string containing the specified text lines in a frame made of one or more layers of equal characters. More...
 
static string DecorationFrameDashed (List< string > lines, int indent, int padLeft, int padRight, int padTop, int padBottom)
 Returns a string containing the specified text lines in a frame made of a single layers of dashes ('-') and vertical bars ('|'). More...
 
static string DecorationFrameDoubleDashed (List< string > lines, int indent, int padLeft, int padRight, int padTop, int padBottom)
 Returns a string containing the specified text lines in a frame made of a double layers of dashes ('-') and vertical bars ('|'). More...
 
static void AddDefaultAssembliesExtShellApp ()
 Appends list of assemblies for dynamic testing of software in the ExtShellApp project. More...
 
static void AddDefaultAssembliesExtNeuralApp ()
 Appends list of assemblies for dynamic testing of software in the ExtNeuralApp project. More...
 
static void AddDefaultAssembliesExtShellAppExt ()
 Appends list of assemblies for dynamic testing of software in the ExtShellAppExt project. More...
 

Detailed Description

Base class for all application classes. Provides some basic functionality such as keeping information about the application, managing application directories and basic files, etc.

$A Igor Oct08;

Constructor & Destructor Documentation

IG.Lib.App.App ( string  programName,
int  version,
int  subVersion 
)
inline

Constructs a new application object.

Parameters
programNameFull name of the program.
versionVersion of the program.
subVersionSub-version of the program.
IG.Lib.App.App ( string  programName,
int  version,
int  subVersion,
string  release 
)
inline

Constructs a new application object.

Parameters
programNameFull name of the program.
versionVersion of the program.
subVersionSub-version of the program.
releaseLifecycle stage of the program version (alpha, beta, release, etc.)
IG.Lib.App.App ( string  programName,
int  version,
int  subVersion,
int  subSubVersion,
string  release 
)
inline

Initializes the global data for the current program.

Parameters
programNameFull name of the program.
versionVersion of the program.
subVersionSub-version of the program.
subSubVersionSub-subversion of the program. A negative number means that this messagelevel of versioning is not used.
releaseLifecycle stage of the program version (alpha, beta, release, etc.)
IG.Lib.App.App ( string  programName,
string  codeName,
int  version,
int  subVersion,
string  release 
)
inline

Initializes the global data for the current program.

Parameters
programNameFull name of the program.
codeNameShort program codename, appropriate for use in directory names. If not specified then it is automatically formed from the full name
versionVersion of the program.
subVersionSub-version of the program.
releaseLifecycle stage of the program version (alpha, beta, release, etc.)
IG.Lib.App.App ( string  programName,
string  codeName,
int  version,
int  subVersion,
int  subSubVersion,
string  release 
)
inline

Constructs a new application object.

Parameters
programNameFull name of the program.
codeNameShort program codename, appropriate for use in directory names. If not specified then it is automatically formed from the full name.
versionVersion of the program.
subVersionSub-version of the program.
subSubVersionSub-subversion of the program. A negative number means that this messagelevel of versioning is not used.
releaseLifecycle stage of the program version (alpha, beta, release, etc.)

Member Function Documentation

virtual void IG.Lib.App.InitProgram ( string  programName,
string  codeName,
int  version,
int  subVersion,
int  subSubVersion,
string  release 
)
inlineprotectedvirtual

Constructs a new application object.

Parameters
programNameFull name of the program.
codeNameShort program codename, appropriate for use in directory names. If not specified then it is automatically formed from the full name.
versionVersion of the program.
subVersionSub-version of the program.
subSubVersionSub-subversion of the program. A negative number means that this messagelevel of versioning is not used.
releaseLifecycle stage of the program version (alpha, beta, release, etc.)
override void IG.Lib.App.BeforeInitialization ( )
inlineprotectedvirtual

Pre-initialization stage.

Reimplemented from IG.Lib.ModuleBase.

Reimplemented in IG.Forms.AppTestForms.

void IG.Lib.App.SetCommandlineArguments ( string[]  args)
inline

Sets command-line arguments of the application.

Parameters
argsCommand-line arguments to be set.
virtual void IG.Lib.App.ParseCommandlineArguments ( string[]  args)
inlinevirtual

Parses command-line arguments and eventually sets various internal variables according to their values.

This method should be overrideden in derived classes and executed somewhere in the application (possibly in the initialization part).

Base class' ParseCommandlineArguments should be called in the overridden methods.

Parameters
argsCommand line arguments.
int IG.Lib.App.FindModuleIndex ( Module  m)
inlineprotected
void IG.Lib.App.AddModule ( Module  m)
inline

Adds the specified module to the application's list of modules.

Parameters
mModule to be added.
void IG.Lib.App.RemoveModule ( Module  m)
inline

Removes the specified module to the application's list of modules.

Parameters
mModule to be removed.
override string IG.Lib.App.ToString ( )
inline
static void IG.Lib.App.InitApp ( )
inlinestaticprotected

Initializes the global application data. This should be called in derived class' Init().

Referenced by IG.Forms.AppTestForms.Init(), and IG.Lib.AppTest.Init().

Member Data Documentation

string [] IG.Lib.App._commandLineArguments
protected
int IG.Lib.App._numCommandlineArguments
List<Module> IG.Lib.App._modules = new List<Module>()
protected
object IG.Lib.App.lockGlobal = new Object()
staticprotected

Global application data lock.

App IG.Lib.App._global = new App(DefaultApplicationName, DefaultVersion, DefaultSubVersion)
staticprotected
bool IG.Lib.App._initializedGlobal = false
staticprotected

Property Documentation

string [] IG.Lib.App.CommandlineArguments
getprotected set

Command-line arguments.

int IG.Lib.App.NumCommandlineArguments
getprivate set

Number of command-line arguments.

App IG.Lib.App.Global
staticgetprotected set

Gets the global instance of the App class, representing the current program.

bool IG.Lib.App.InitializedGlobal
staticgetprotected set

Gets a true/false value telling whether the global application data is initialized or not.

IReporter IG.Lib.App.Rep
staticgetset

Application's reporter.


The documentation for this class was generated from the following file: