it_bus_services/peer_monitor.h

00001 #ifndef _IT_BUS_SERVICES_PEER_MONITOR_H_
00002 #define _IT_BUS_SERVICES_PEER_MONITOR_H_
00003 
00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved.
00005 //
00006 
00007 #ifndef IT_PMS_SVR_API
00008 #ifdef IT_PMS_SVR_API_EXPORT
00009 #define IT_PMS_SVR_API    IT_DECLSPEC_EXPORT
00010 #else
00011 #define IT_PMS_SVR_API    IT_DECLSPEC_IMPORT
00012 #endif
00013 #endif
00014 
00015 #include <orbix_pdk/orb_plugin.hh>
00016 #include <it_bus/types.h>
00017 #ifdef IT_MINIMISE_INCLUDES
00018 #include <it_bus/wsaddressing_xsdTypes.h>
00019 #endif
00020 
00021 namespace WS_Addressing
00022 {
00023     class EndpointReferenceType;
00024 }
00025 
00026 namespace IT_Bus_Services
00027 {
00028     struct PeerMonitorId
00029     {
00030         IT_Bus::String base_id;
00031         IT_Bus::String element_id;
00032     };
00033 
00034     class IT_PMS_SVR_API PingReceiverCallback
00035     {
00036       public:
00037         virtual ~PingReceiverCallback();
00038 
00039         virtual void
00040         ping_failure(
00041             const PeerMonitorId& id
00042         ) = 0;
00043     };
00044 
00045     class IT_PMS_SVR_API PeerMonitor : public CORBA::LocalObject
00046     {
00047       public:
00048 
00049         virtual PeerMonitorId
00050         monitor(
00051             const WS_Addressing::EndpointReferenceType& peer,
00052             PingReceiverCallback* cb,
00053             IT_Bus::ULong timeout_msecs
00054         ) = 0;
00055 
00056         virtual void
00057         stop_monitor(
00058             const IT_Bus::String& base_id,
00059             PingReceiverCallback* callback,
00060             bool deregister_interest = true
00061         ) = 0;
00062 
00063         virtual const WS_Addressing::EndpointReferenceType&
00064         get_epr_reference() = 0;
00065 
00066         virtual bool
00067         is_local_id(
00068             const PeerMonitorId& id
00069         ) = 0;
00070     };
00071 }
00072 
00073 #endif  

Generated on Thu Sep 7 11:39:38 2006 for Artix by  doxygen 1.4.7