00001
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef READIR_H
00024
00025 #define READIR_H 1
00026
00027
00028 class TypeCodeList;
00029
00031 class IRPlus {
00032 private:
00034 int midNum;
00036 int pidNum;
00037
00039 void InsertIRFieldRecord (SCMethParam *pParm, DOSnapshot *pTab, const CString &path, const char *fieldName);
00050 void RecurseFields (SCMethParam *pParm, DOSnapshot *pTab, const CString &path, TypeCodeList *tlist,
00051 CORBA::TypeCode_ptr tcp, const char *hint = NULL);
00053 SCInterfaceMethod *newMeth (const char *Path);
00055 SCMethParam *newParam (SCInterfaceMethod *pMeth, const char *Param, InOutExcept kind, CORBA::TypeCode_ptr ptc);
00057 void FetchParamFields (DOSnapshot *pTab, SCMethParam *pParm);
00059 public:
00061 JTCMonitor monitor;
00063 SCInterfaceRepository IRC;
00065 DOConnection *pCon;
00067 CORBA::ORB_ptr orb;
00068
00070 IRPlus (CORBA::ORB_ptr _orb)
00071 : midNum (0)
00072 , pidNum (0)
00073 {
00074 orb = _orb;
00075 pCon = NULL;
00076 };
00078 virtual ~IRPlus () {
00079 delete pCon;
00080 };
00081
00090 void RecurseIR (CORBA::Repository_ptr pIR,
00091 DynamicAny::DynAnyFactory_ptr dynFact,
00092 CORBA::Contained_ptr ptr,
00093 const char *path);
00095 void createTables ();
00097 int Init ();
00098 };
00099
00100 #endif
00101