summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Log/BasicLogFactory_i.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Log/BasicLogFactory_i.cpp')
-rw-r--r--TAO/orbsvcs/orbsvcs/Log/BasicLogFactory_i.cpp147
1 files changed, 147 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Log/BasicLogFactory_i.cpp b/TAO/orbsvcs/orbsvcs/Log/BasicLogFactory_i.cpp
new file mode 100644
index 00000000000..b8704fe0988
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Log/BasicLogFactory_i.cpp
@@ -0,0 +1,147 @@
+#include "orbsvcs/Log/BasicLogFactory_i.h"
+#include "ace/OS_NS_stdio.h"
+
+ACE_RCSID (Log,
+ BasicLogFactory_i,
+ "$Id$")
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+
+TAO_BasicLogFactory_i::TAO_BasicLogFactory_i (void)
+{
+}
+
+TAO_BasicLogFactory_i::~TAO_BasicLogFactory_i (void)
+{
+}
+
+DsLogAdmin::BasicLogFactory_ptr
+TAO_BasicLogFactory_i::activate (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa
+ ACE_ENV_ARG_DECL)
+{
+ TAO_LogMgr_i::init (orb, poa ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (DsLogAdmin::BasicLogFactory::_nil ());
+
+
+ PortableServer::ObjectId_var oid =
+ this->factory_poa_->activate_object (this
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (DsLogAdmin::BasicLogFactory::_nil ());
+
+ CORBA::Object_var obj =
+ this->factory_poa_->id_to_reference (oid.in ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (DsLogAdmin::BasicLogFactory::_nil ());
+
+ // narrow and store the result..
+ this->log_mgr_ =
+ DsLogAdmin::LogMgr::_narrow (obj.in ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (DsLogAdmin::BasicLogFactory::_nil ());
+
+ DsLogAdmin::BasicLogFactory_var v_return =
+ DsLogAdmin::BasicLogFactory::_narrow (obj.in ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (DsLogAdmin::BasicLogFactory::_nil ());
+
+ return v_return._retn ();
+}
+
+DsLogAdmin::BasicLog_ptr
+TAO_BasicLogFactory_i::create (DsLogAdmin::LogFullActionType full_action,
+ CORBA::ULongLong max_size,
+ DsLogAdmin::LogId_out id_out
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ DsLogAdmin::InvalidLogFullAction
+ ))
+{
+ this->create_i (full_action,
+ max_size,
+ 0,
+ id_out
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (DsLogAdmin::BasicLog::_nil ());
+ DsLogAdmin::LogId id = id_out;
+
+#if (TAO_HAS_MINIMUM_POA == 0)
+ DsLogAdmin::Log_var log =
+ this->create_log_reference (id ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (DsLogAdmin::BasicLog::_nil ());
+#else
+ DsLogAdmin::Log_var log =
+ this->create_log_object (id ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (DsLogAdmin::BasicLog::_nil ());
+#endif
+
+ // narrow to BasicLog
+ DsLogAdmin::BasicLog_var basic_log =
+ DsLogAdmin::BasicLog::_narrow (log.in ());
+
+ return basic_log._retn ();
+}
+
+DsLogAdmin::BasicLog_ptr
+TAO_BasicLogFactory_i::create_with_id (DsLogAdmin::LogId id,
+ DsLogAdmin::LogFullActionType full_action,
+ CORBA::ULongLong max_size
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ DsLogAdmin::LogIdAlreadyExists,
+ DsLogAdmin::InvalidLogFullAction
+ ))
+{
+ this->create_with_id_i (id,
+ full_action,
+ max_size,
+ 0
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (DsLogAdmin::BasicLog::_nil ());
+
+#if (TAO_HAS_MINIMUM_POA == 0)
+ DsLogAdmin::Log_var log =
+ this->create_log_reference (id ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (DsLogAdmin::BasicLog::_nil ());
+#else
+ DsLogAdmin::Log_var log =
+ this->create_log_object (id ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (DsLogAdmin::BasicLog::_nil ());
+#endif
+
+ // narrow to BasicLog
+ DsLogAdmin::BasicLog_var basic_log =
+ DsLogAdmin::BasicLog::_narrow (log.in ());
+
+ return basic_log._retn ();
+}
+
+CORBA::RepositoryId
+TAO_BasicLogFactory_i::create_repositoryid ()
+{
+ return CORBA::string_dup ("IDL:omg.org/DsLogAdmin:BasicLog:1.0");
+}
+
+PortableServer::ServantBase*
+TAO_BasicLogFactory_i::create_log_servant (DsLogAdmin::LogId id
+ ACE_ENV_ARG_DECL)
+{
+ TAO_BasicLog_i* basic_log_i;
+
+ ACE_NEW_THROW_EX (basic_log_i,
+ TAO_BasicLog_i (this->orb_.in (),
+ this->log_poa_.in (),
+ *this,
+ this->log_mgr_.in (),
+ id),
+ CORBA::NO_MEMORY ());
+ ACE_CHECK_RETURN (0);
+
+ basic_log_i->init (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (0);
+
+ return basic_log_i;
+}
+
+TAO_END_VERSIONED_NAMESPACE_DECL