00001 #ifndef __BBLCONNECTIONEVENTLISTENER_H__
00002 #define __BBLCONNECTIONEVENTLISTENER_H__
00003
00004 class BblConnectionEventListener
00005 : public virtual ccafeopq::connectionevents::ConnectionEventListener
00006 {
00007
00008 private:
00009
00010 gov::cca::ports::EventType type;
00011 gov::cca::ports::ConnectionEventListener l;
00012
00013 public:
00014 BblConnectionEventListener(gov::cca::ports::EventType type_,
00015 gov::cca::ports::ConnectionEventListener l_) {
00016 type = type_;
00017 l = l_;
00018 }
00019 virtual ~BblConnectionEventListener(){}
00020
00021 virtual void connectionActivity( ccafeopq::connectionevents::ConnectionEvent_shared evt) {
00022 ::gov::cca::ports::EventType typ = gov::cca::ports::EventType_Error;
00023 if(evt->connected()) {
00024 typ = gov::cca::ports::EventType_Connected;
00025 } else if(evt->disconnected()) {
00026 typ = gov::cca::ports::EventType_Disconnected;
00027 }
00028 if(typ != type) {
00029 return;
00030 }
00031
00032
00033
00034 void * vp = 0;
00035 vp = evt->getOpqTypeMapSharedPtrAddress();
00036 ::ccaffeine::TypeMap ctm = ccaffeine::TypeMap::_create();
00037 ctm.initialize(vp);
00038
00039 ccaffeine::ports::ConnectionEvent bblEvt;
00040 bblEvt.initialize(typ, ctm);
00041 l.connectionActivity(bblEvt);
00042 }
00043
00044 };
00045
00046 #endif // __BBLCONNECTIONEVENTLISTENER_H__