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
00033
00034
00049 #ifndef _CORBATRANSFORM_H
00050 #define _CORBATRANSFORM_H
00051
00052 #include <OpenTracker/OpenTracker.h>
00053 #include <OpenTracker/tool/OT_ACE_Log.h>
00054 #include <OpenTracker/skeletons/OT_CORBA.hh>
00055 #include <OpenTracker/network/CORBAUtils.h>
00065 namespace ot {
00066
00067 class CORBAModule;
00068
00069 class OPENTRACKER_API CORBATransform : public CORBASink
00070 {
00071
00072 public:
00074 OT_CORBA::TransformNode_var corba_transform;
00076
00077
00078
00079
00080
00081 protected:
00085 CORBATransform( OT_CORBA::TransformNode_var corba_transform_) :
00086 CORBASink(),
00087 corba_transform( corba_transform_ )
00088 {
00089
00090 }
00091 virtual ~CORBATransform() {
00092 LOG_ACE_ERROR("CORBATransform destructor");
00093 }
00094
00095 public:
00105 virtual void onEventGenerated( Event& event, Node& generator)
00106 {
00107 logPrintI("CORBATransform::onEventGenerated\n");
00108 cycle++;
00109
00110
00111
00112 OT_CORBA::Event corba_event = event.getCORBAEvent();
00113 try {
00114 OT_CORBA::Event* new_corba_event = corba_transform->transformEvent(corba_event);
00115
00116 Event new_event(*new_corba_event);
00117 updateObservers( new_event );
00118 }
00119 catch (CORBA::COMM_FAILURE) {
00120 std::cerr << "Caught CORBA::COMM_FAILURE" << std::endl;
00121 }
00122 catch (CORBA::TRANSIENT) {
00123 std::cerr << "Caught CORBA::TRANSIENT" << std::endl;
00124 }
00125
00126 }
00127
00128 friend class CORBAModule;
00129 };
00130
00131 }
00132
00133 #endif