summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Log/EventLogNotification.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Log/EventLogNotification.h')
-rw-r--r--TAO/orbsvcs/orbsvcs/Log/EventLogNotification.h90
1 files changed, 90 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Log/EventLogNotification.h b/TAO/orbsvcs/orbsvcs/Log/EventLogNotification.h
new file mode 100644
index 00000000000..1bf43eb1d7b
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Log/EventLogNotification.h
@@ -0,0 +1,90 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file EventLogNotification.h
+ *
+ * $Id$
+ *
+ * Methods to enable log-generated events.
+ *
+ * @author D A Hanvey <d.hanvey@qub.ac.uk>
+ */
+//=============================================================================
+
+#ifndef TAO_TLS_EVENT_LOG_NOTIFICATION_H
+#define TAO_TLS_EVENT_LOG_NOTIFICATION_H
+
+#include /**/ "ace/pre.h"
+
+#include "orbsvcs/CosEvent/CEC_ConsumerAdmin.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "orbsvcs/CosEvent/CEC_EventChannel.h"
+#include "orbsvcs/DsEventLogAdminS.h"
+#include "orbsvcs/CosEvent/CEC_Default_Factory.h"
+#include "orbsvcs/CosEventCommS.h"
+#include "orbsvcs/Log/eventlog_serv_export.h"
+
+#if defined(_MSC_VER)
+#pragma warning(push)
+#pragma warning(disable:4250)
+#endif /* _MSC_VER */
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/**
+ * @class TAO_EventLogNotification
+ *
+ * @brief Used to forward log generated events to a logging server.
+ */
+class TAO_EventLog_Serv_Export TAO_EventLogNotification :
+ public TAO_LogNotification,
+ public POA_CosEventComm::PushSupplier
+{
+public:
+
+ // = Initialization and Termination methods.
+
+ /// Constructor.
+ TAO_EventLogNotification (CosEventChannelAdmin::EventChannel_ptr);
+
+ /// Destructor.
+ ~TAO_EventLogNotification (void);
+
+ /// The skeleton methods.
+ virtual void disconnect_push_supplier (void);
+
+protected:
+ // = Helper methods
+
+ /// Used to connect this PushSupplier to the EventChannel
+ /// that will log these events.
+ void obtain_proxy_consumer ();
+
+ /// Send the event on the event channel.
+ virtual void send_notification (const CORBA::Any& any);
+
+
+private:
+ /// The ORB reference.
+ CORBA::ORB_var orb_;
+
+ /// The event channel we connect to.
+ CosEventChannelAdmin::EventChannel_var event_channel_;
+
+ /// The ProxyPushConsumer used to connect to the event channel.
+ CosEventChannelAdmin::ProxyPushConsumer_var consumer_;
+};
+
+TAO_END_VERSIONED_NAMESPACE_DECL
+
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif /* _MSC_VER */
+
+#include /**/ "ace/post.h"
+#endif /* TLS_EVENT_LOG_NOTIFICATION_H */