summaryrefslogtreecommitdiff
path: root/ACE/TAO/orbsvcs/orbsvcs/Log/LogMgr_i.h
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/TAO/orbsvcs/orbsvcs/Log/LogMgr_i.h')
-rw-r--r--ACE/TAO/orbsvcs/orbsvcs/Log/LogMgr_i.h183
1 files changed, 183 insertions, 0 deletions
diff --git a/ACE/TAO/orbsvcs/orbsvcs/Log/LogMgr_i.h b/ACE/TAO/orbsvcs/orbsvcs/Log/LogMgr_i.h
new file mode 100644
index 00000000000..329118ca773
--- /dev/null
+++ b/ACE/TAO/orbsvcs/orbsvcs/Log/LogMgr_i.h
@@ -0,0 +1,183 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file LogMgr_i.h
+ *
+ * $Id$
+ *
+ * Implementation of the DsLogAdmin::LogMgr interface.
+ *
+ * @author Matthew Braun <mjb2@cs.wustl.edu>
+ * @author Pradeep Gore <pradeep@cs.wustl.edu>
+ * @author David A. Hanvey <d.hanvey@qub.ac.uk>
+ */
+//=============================================================================
+
+#ifndef TAO_TLS_LOGMGR_I_H
+#define TAO_TLS_LOGMGR_I_H
+#include /**/ "ace/pre.h"
+
+#include "orbsvcs/DsLogAdminS.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "orbsvcs/Log/Log_i.h"
+#include "orbsvcs/Log/Log_Persistence_Strategy.h"
+#include "orbsvcs/Log/log_serv_export.h"
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/**
+ * @class TAO_LogMgr_i
+ * @brief Log Factory
+ *
+ * The implementation delegates operations to a dynamically loaded
+ * Strategy class.
+ */
+class TAO_Log_Serv_Export TAO_LogMgr_i
+ : public virtual POA_DsLogAdmin::LogMgr
+{
+public:
+
+ // = Initialization and Termination Methods
+
+ /// Constructor.
+ TAO_LogMgr_i ();
+
+ /// Destructor.
+ virtual ~TAO_LogMgr_i ();
+
+ /// Lists all log object references.
+ DsLogAdmin::LogList *
+ list_logs (void);
+
+ /// Lists all log ids.
+ DsLogAdmin::LogIdList *
+ list_logs_by_id (void);
+
+ /// Returns a reference to the log with the supplied id.
+ DsLogAdmin::Log_ptr
+ find_log (DsLogAdmin::LogId id);
+
+ /// Returns true if log exists, otherwise false
+ bool exists (DsLogAdmin::LogId id);
+
+ /// Remove the given entry from the container.
+ int remove (DsLogAdmin::LogId id);
+
+ /// @brief Create ObjectId
+ ///
+ /// Create object id for log channel @ id.
+ ///
+ /// @param id log id
+ ///
+ /// @return object id
+ ///
+ virtual PortableServer::ObjectId*
+ create_objectid (DsLogAdmin::LogId id);
+
+ /// @brief Create log reference
+ ///
+ /// Create object reference for log channel @a id.
+ ///
+ /// @param id log id
+ ///
+ /// @return object reference
+ ///
+ virtual DsLogAdmin::Log_ptr
+ create_log_reference (DsLogAdmin::LogId id);
+
+ /// @brief Create log object
+ ///
+ /// Create Log object for log channel @a id.
+ ///
+ /// @param id log id
+ ///
+ /// @return object reference
+ ///
+ virtual DsLogAdmin::Log_ptr
+ create_log_object (DsLogAdmin::LogId id);
+
+ /// @brief Create log repository id
+ ///
+ /// Return repository id for log
+ ///
+ /// @return repository id
+ ///
+ virtual CORBA::RepositoryId
+ create_repositoryid () = 0;
+
+ /// @brief Create log servant
+ ///
+ /// Create Log servant for log channel @a id.
+ ///
+ /// @param id log id
+ ///
+ /// @return pointer to servant
+ virtual PortableServer::ServantBase*
+ create_log_servant (DsLogAdmin::LogId id) = 0;
+
+ /// @brief Get log record store
+ ///
+ /// Get/Create a log record store for log channel @a id.
+ ///
+ /// @param id log id
+ ///
+ TAO_LogRecordStore*
+ get_log_record_store (DsLogAdmin::LogId id);
+
+ CORBA::ORB_ptr orb();
+
+ PortableServer::POA_ptr factory_poa();
+
+ PortableServer::POA_ptr log_poa();
+
+protected:
+ /// @brief Initialize
+ ///
+ /// Creates factory and log channel POAs, and obtains the LogStore
+ /// from a dynamically loaded Log_Persistence_Strategy (if one was
+ /// specified in the service config file, otherwise the default
+ /// Hash_Persistence_Strategy is used.)
+ ///
+ /// @param orb ORB
+ /// @param poa Parent POA
+ ///
+ void init (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa);
+
+ /// @brief Create log
+ void create_i (DsLogAdmin::LogFullActionType full_action,
+ CORBA::ULongLong max_size,
+ const DsLogAdmin::CapacityAlarmThresholdList* thresholds,
+ DsLogAdmin::LogId_out id_out);
+
+ /// @brief Create log
+ void create_with_id_i (DsLogAdmin::LogId id,
+ DsLogAdmin::LogFullActionType full_action,
+ CORBA::ULongLong max_size,
+ const DsLogAdmin::CapacityAlarmThresholdList* thresholds);
+
+ /// ORB.
+ CORBA::ORB_var orb_;
+
+ /// POA.
+ PortableServer::POA_var poa_;
+
+ /// Factory POA.
+ PortableServer::POA_var factory_poa_;
+
+ /// Log POA.
+ PortableServer::POA_var log_poa_;
+
+private:
+ TAO_LogStore* logstore_;
+};
+
+TAO_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+#endif /* TAO_TLS_LOGMGR_I_H */