00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _MPCL_ABSTRACT_APPLICATION__
00027 #define _MPCL_ABSTRACT_APPLICATION__
00028
00029 #include "text/string.hh"
00030
00031
00033 namespace mpcl
00034 {
00035
00036 using text::TString;
00037
00039 class TAbstractApplication
00040 {
00041
00042 private:
00043
00045 const TString kyName;
00046
00048 const TString kyRelease;
00049
00050
00051 public:
00052
00053
00054
00055
00056
00062 TAbstractApplication ( const char* pkcNAME ,
00063 const char* pkcRELEASE ) :
00064 kyName (pkcNAME) ,
00065 kyRelease (pkcRELEASE) {}
00066
00068 virtual ~TAbstractApplication (void) {}
00069
00074 virtual void initialize (void) = 0;
00075
00081 virtual int start (void) = 0;
00082
00083
00084 public:
00085
00086
00087
00088
00089
00091 TString name (void) const
00092 {
00093 return kyName;
00094 }
00095
00097 TString release (void) const
00098 {
00099 return kyRelease;
00100 }
00101
00103 virtual TString programFileName (void) const = 0;
00104
00105 };
00106
00107 }
00108
00109
00110 #endif // not _MPCL_ABSTRACT_APPLICATION__