00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef HxDataObjectInterceptor_h
00010 #define HxDataObjectInterceptor_h
00011
00012 #include <OB/CORBA.h>
00013 #include <OB/PortableInterceptor.h>
00014 #include "HxDataObjectManager.h"
00015
00016
00021 class HxDataObjectInterceptor :
00022 public PortableInterceptor::ServerRequestInterceptor
00023 #if (OB_INTEGER_VERSION >= 4010000L)
00024 , public OBCORBA::RefCountLocalObject
00025 #endif
00026 {
00027 public:
00031 HxDataObjectInterceptor(const char* poaName);
00032 virtual ~HxDataObjectInterceptor();
00033
00034 virtual char* name();
00035 virtual void destroy();
00036 virtual void receive_request_service_contexts(
00037 PortableInterceptor::ServerRequestInfo_ptr);
00038 virtual void receive_request(PortableInterceptor::ServerRequestInfo_ptr);
00039 virtual void send_reply(PortableInterceptor::ServerRequestInfo_ptr);
00040 virtual void send_exception(PortableInterceptor::ServerRequestInfo_ptr);
00041 virtual void send_other(PortableInterceptor::ServerRequestInfo_ptr);
00042
00043 private:
00044 CORBA::String_var _poaName;
00045
00046 CORBA::ULong _lastReqId;
00047 HxDataObjectManager* _lastMgr;
00048 PortableServer::ObjectId_var _lastOID;
00049 };
00050
00051
00052 #endif //HxDataObjectInterceptor_h