Public Member Functions | Static Public Member Functions | Private Attributes

TAO_CSD_Framework_Loader Class Reference

TAO_CSD_Framework_Loader. More...

#include <CSD_Framework_Loader.h>

Inheritance diagram for TAO_CSD_Framework_Loader:
Inheritance graph
[legend]
Collaboration diagram for TAO_CSD_Framework_Loader:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 TAO_CSD_Framework_Loader (void)
 Constructor.
virtual ~TAO_CSD_Framework_Loader (void)
 Destructor.
virtual int init (int argc, ACE_TCHAR *[])
 Initialize the PI_Server loader hooks.

Static Public Member Functions

static int static_init (void)
 Used to force the initialization of the ORB code.

Private Attributes

bool initialized_
 Set to true after init is called.

Detailed Description

TAO_CSD_Framework_Loader.

This class acts as a facade for the CSD_Framework library to the ORB.

Definition at line 39 of file CSD_Framework_Loader.h.


Constructor & Destructor Documentation

TAO_CSD_Framework_Loader::TAO_CSD_Framework_Loader ( void   ) 

Constructor.

Definition at line 18 of file CSD_Framework_Loader.cpp.

  : initialized_ (false)
{
}

TAO_CSD_Framework_Loader::~TAO_CSD_Framework_Loader ( void   )  [virtual]

Destructor.

Definition at line 23 of file CSD_Framework_Loader.cpp.

{
}


Member Function Documentation

int TAO_CSD_Framework_Loader::init ( int  argc,
ACE_TCHAR [] 
) [virtual]

Initialize the PI_Server loader hooks.

Register the CSD ORBInitializer.

Reimplemented from ACE_Shared_Object.

Definition at line 43 of file CSD_Framework_Loader.cpp.

{
  ACE_TRACE ("TAO_CSD_Framework_Loader::init");

  // Only allow initialization once.
  if (this->initialized_)
    return 0;

  this->initialized_ = true;

  // Register the ORB initializer.
  try
    {
      PortableInterceptor::ORBInitializer_ptr temp_orb_initializer =
        PortableInterceptor::ORBInitializer::_nil ();

      /// Register the CSD ORBInitializer.
      ACE_NEW_THROW_EX (temp_orb_initializer,
                        TAO_CSD_ORBInitializer,
                        CORBA::NO_MEMORY (
                          CORBA::SystemException::_tao_minor_code (
                            TAO::VMCID,
                            ENOMEM),
                          CORBA::COMPLETED_NO));

      PortableInterceptor::ORBInitializer_var orb_initializer;
      orb_initializer = temp_orb_initializer;

      PortableInterceptor::ORBInitializer_ptr temp_dll_initializer =
        PortableInterceptor::ORBInitializer::_nil ();

      ACE_NEW_THROW_EX (temp_dll_initializer,
        PortableInterceptor::DLL_Resident_ORB_Initializer(
          orb_initializer.in (),
          ACE_TEXT ("TAO_CSD_ThreadPool")),
          CORBA::NO_MEMORY (
            CORBA::SystemException::_tao_minor_code (
              TAO::VMCID,
              ENOMEM),
            CORBA::COMPLETED_NO));

      PortableInterceptor::ORBInitializer_var dll_initializer;
      dll_initializer = temp_dll_initializer;

      PortableInterceptor::register_orb_initializer (dll_initializer.in ());
    }
  catch (const ::CORBA::Exception& ex)
    {
      ex._tao_print_exception (
        "Unexpected exception caught while "
        "initializing the CSD Framework");
      return 1;
    }

  return 0;
}

int TAO_CSD_Framework_Loader::static_init ( void   )  [static]

Used to force the initialization of the ORB code.

Definition at line 29 of file CSD_Framework_Loader.cpp.

{
  ACE_Service_Config::process_directive
     (ace_svc_desc_TAO_CSD_Object_Adapter_Factory);

  ACE_Service_Config::process_directive
    (ace_svc_desc_TAO_CSD_Strategy_Repository);

  ACE_Service_Config::process_directive (ace_svc_desc_TAO_CSD_Framework_Loader);

  return 0;
}


Member Data Documentation

Set to true after init is called.

Definition at line 56 of file CSD_Framework_Loader.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines