00001 #ifndef _LCORE_WFClTypes_H_
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
00027
00028
00029 #ifdef __GNUG__
00030 # pragma interface
00031 #endif
00032
00033 #ifndef _LCORE_ClassTypes_H_
00034 # include <LCore/ClassTypes.h>
00035 #endif
00036
00037 #ifndef _LCORE_Programmers_H_
00038 # include <LCore/Programmers.h>
00039 #endif
00040
00041 #define _LCORE_WFClTypes_H_
00042
00043 namespace strmod {
00044 namespace lcore {
00045
00046 class WFCORE_ClassIdent;
00047
00048
00049
00050
00051
00052 class WF_ClassNum : public ClassNum {
00053 protected:
00054 inline virtual const ClassIdent *i_GetIdent() const;
00055 inline WF_ClassNum(const ClassNum &clnum);
00056
00057 friend class WF_ClassIdent;
00058
00059 public:
00060 static const WFCORE_ClassIdent identifier;
00061
00062 inline virtual int AreYouA(const ClassIdent &cid) const;
00063
00064 enum WFCORE_Libraries { Core = 0, RecordID,
00065 User0 = 4088, User1, User2, User3,
00066 User4, User5, User6, User7 = 4095};
00067
00068 inline U2Byte GetLibNum() const;
00069 inline U4Byte GetClNum() const;
00070
00071 inline WF_ClassNum(WFCORE_Libraries lnum, U4Byte cnum);
00072 };
00073
00074
00075
00076 class WFCORE_ClassIdent;
00077
00078 class WF_ClassIdent : public ClassIdent {
00079 protected:
00080 inline virtual const ClassIdent *i_GetIdent() const;
00081
00082 public:
00083 static const WFCORE_ClassIdent identifier;
00084
00085 inline virtual int AreYouA(const ClassIdent &cid) const;
00086
00087 const WF_ClassNum GetClass() const { return(ClassIdent::GetClass()); }
00088
00089 inline WF_ClassIdent(WF_ClassNum cnum);
00090 };
00091
00092
00093
00094
00095 class WFCORE_ClassIdent : public EH_ClassIdent {
00096 protected:
00097 inline virtual const ClassIdent *i_GetIdent() const;
00098
00099 public:
00100 static const WFCORE_ClassIdent identifier;
00101
00102 inline virtual int AreYouA(const ClassIdent &cid) const;
00103
00104 inline WFCORE_ClassIdent(U4Byte cnum);
00105 };
00106
00107
00108
00109 inline const ClassIdent *WF_ClassNum::i_GetIdent() const
00110 {
00111 return(&identifier);
00112 }
00113
00114 inline int WF_ClassNum::AreYouA(const ClassIdent &cid) const
00115 {
00116 return((identifier == cid) || ClassNum::AreYouA(cid));
00117 }
00118
00119 inline U2Byte WF_ClassNum::GetLibNum() const
00120 {
00121 return((0xfff00000UL & ClassNum::GetClNum()) >> 20);
00122 }
00123
00124 inline U4Byte WF_ClassNum::GetClNum() const
00125 {
00126 return(0x000fffffUL & ClassNum::GetClNum());
00127 }
00128
00129 inline WF_ClassNum::WF_ClassNum(WFCORE_Libraries lnum, U4Byte cnum) :
00130 ClassNum((U4Byte(lnum & 0x0fffU) << 20) | (cnum & 0x000fffffUL))
00131 {
00132 }
00133
00134 inline WF_ClassNum::WF_ClassNum(const ClassNum &clnum) : ClassNum(clnum)
00135 {
00136 }
00137
00138
00139
00140 inline const ClassIdent *WF_ClassIdent::i_GetIdent() const
00141 {
00142 return(&identifier);
00143 }
00144
00145 inline int WF_ClassIdent::AreYouA(const ClassIdent &cid) const
00146 {
00147 return((identifier == cid) || ClassIdent::AreYouA(cid));
00148 }
00149
00150 inline WF_ClassIdent::WF_ClassIdent(WF_ClassNum cnum) :
00151 ClassIdent(EricMHopper_0, cnum)
00152 {
00153 }
00154
00155
00156
00157 inline const ClassIdent *WFCORE_ClassIdent::i_GetIdent() const
00158 {
00159 return(&identifier);
00160 }
00161
00162 inline int WFCORE_ClassIdent::AreYouA(const ClassIdent &cid) const
00163 {
00164 return((identifier == cid) || WF_ClassIdent::AreYouA(cid));
00165 }
00166
00167 inline WFCORE_ClassIdent::WFCORE_ClassIdent(U4Byte cnum) :
00168 WF_ClassIdent(WF_ClassNum(WF_ClassNum::Core, cnum))
00169 {
00170 }
00171
00172 }
00173 }
00174
00175 #endif