Public Member Functions

TAO::Collocated_Object_Proxy_Broker Class Reference

Collocated_Object_Proxy_Broker. More...

#include <Collocated_Object_Proxy_Broker.h>

Inheritance diagram for TAO::Collocated_Object_Proxy_Broker:
Inheritance graph
[legend]
Collaboration diagram for TAO::Collocated_Object_Proxy_Broker:
Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual CORBA::Boolean _is_a (CORBA::Object_ptr target, const char *logical_type_id)
virtual CORBA::Boolean _non_existent (CORBA::Object_ptr target)
virtual CORBA::InterfaceDef * _get_interface (CORBA::Object_ptr target)
virtual CORBA::Object_ptr _get_component (CORBA::Object_ptr target)
virtual char * _repository_id (CORBA::Object_ptr target)

Detailed Description

Collocated_Object_Proxy_Broker.

A broker for standard CORBA::Object calls that needs to be made on remote objects.

Definition at line 41 of file Collocated_Object_Proxy_Broker.h.


Member Function Documentation

CORBA::Object_ptr TAO::Collocated_Object_Proxy_Broker::_get_component ( CORBA::Object_ptr  target  )  [virtual]

Implements TAO::Object_Proxy_Broker.

Definition at line 117 of file Collocated_Object_Proxy_Broker.cpp.

      {
        _tao_retval = target->_servant ()->_non_existent ();
      }

    return _tao_retval;
  }

#if !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO)
  CORBA::Object_ptr
  Collocated_Object_Proxy_Broker::_get_component (CORBA::Object_ptr target)
  {
    CORBA::Object_var _tao_retval (CORBA::Object::_nil ());

    TAO_Stub *stub = target->_stubobj ();

    try
      {
        // Which collocation strategy should we use?
        if (stub != 0 &&
            stub->servant_orb_var ()->orb_core ()
              ->get_collocation_strategy () == TAO_ORB_Core::THRU_POA)
          {
            TAO::Portable_Server::Servant_Upcall servant_upcall (
                stub->servant_orb_var ()->orb_core ());

            CORBA::Object_var forward_to;
            servant_upcall.prepare_for_upcall (
                stub->profile_in_use ()->object_key (),
                "_component",

CORBA::InterfaceDef_ptr TAO::Collocated_Object_Proxy_Broker::_get_interface ( CORBA::Object_ptr  target  )  [virtual]

Implements TAO::Object_Proxy_Broker.

Definition at line 156 of file Collocated_Object_Proxy_Broker.cpp.

          {
            _tao_retval = target->_servant ()->_get_component ();
          }
      }
    catch (const ::CORBA::OBJECT_NOT_EXIST&)
      {
        // Ignore this exception.
      }

    return _tao_retval._retn ();
  }

  CORBA::InterfaceDef_ptr
  Collocated_Object_Proxy_Broker::_get_interface (CORBA::Object_ptr target)
  {
    CORBA::InterfaceDef_ptr _tao_retval = 0;

    TAO_Stub *stub = target->_stubobj ();

    try
      {
        // Which collocation strategy should we use?
        if (stub != 0 &&
            stub->servant_orb_var ()->orb_core ()->get_collocation_strategy ()
              == TAO_ORB_Core::THRU_POA)
          {
            TAO::Portable_Server::Servant_Upcall servant_upcall (
                target->_stubobj ()->servant_orb_var ()->orb_core ());

            CORBA::Object_var forward_to;

            servant_upcall.prepare_for_upcall (
                target->_stubobj ()->object_key (),
                "_interface",
                forward_to.out ());

            servant_upcall.pre_invoke_collocated_request ();

CORBA::Boolean TAO::Collocated_Object_Proxy_Broker::_is_a ( CORBA::Object_ptr  target,
const char *  logical_type_id 
) [virtual]

Please see the documentation in Object_Proxy_Broker.h for details.

Implements TAO::Object_Proxy_Broker.

Definition at line 6 of file Collocated_Object_Proxy_Broker.cpp.

               : Collocated_Object_Proxy_Broker.cpp 79610 2007-09-07 18:17:34Z johnnyw $")

TAO_BEGIN_VERSIONED_NAMESPACE_DECL

namespace TAO
{
  CORBA::Boolean
  Collocated_Object_Proxy_Broker::_is_a (CORBA::Object_ptr target,
                                         const char *type_id)
  {
    TAO_Stub *stub = target->_stubobj ();

    // Which collocation strategy should we use?
    if (stub != 0 &&
        stub->servant_orb_var ()->orb_core ()->get_collocation_strategy ()
          == TAO_ORB_Core::THRU_POA)
      {
        TAO::Portable_Server::Servant_Upcall servant_upcall (
          stub->servant_orb_var ()->orb_core ());

      CORBA::Object_var forward_to;
      servant_upcall.prepare_for_upcall (

CORBA::Boolean TAO::Collocated_Object_Proxy_Broker::_non_existent ( CORBA::Object_ptr  target  )  [virtual]

Implements TAO::Object_Proxy_Broker.

Definition at line 81 of file Collocated_Object_Proxy_Broker.cpp.

          {
            _tao_retval = target->_servant ()->_repository_id ();
          }
      }
    catch (const ::CORBA::OBJECT_NOT_EXIST&)
      {
        // Ignore this exception.
      }

    return _tao_retval;
  }

  CORBA::Boolean
  Collocated_Object_Proxy_Broker::_non_existent (CORBA::Object_ptr target)
  {
    CORBA::Boolean _tao_retval = true;

    TAO_Stub *stub = target->_stubobj ();

    // Which collocation strategy should we use?
    if (stub != 0 &&
        stub->servant_orb_var ()->orb_core ()
        ->get_collocation_strategy () == TAO_ORB_Core::THRU_POA)
      {
        TAO::Portable_Server::Servant_Upcall servant_upcall (
          target->_stubobj ()->servant_orb_var ()->orb_core ());

        CORBA::Object_var forward_to;

char * TAO::Collocated_Object_Proxy_Broker::_repository_id ( CORBA::Object_ptr  target  )  [virtual]

Implements TAO::Object_Proxy_Broker.

Definition at line 42 of file Collocated_Object_Proxy_Broker.cpp.

      {
        return target->_servant ()->_is_a (type_id);
      }

    return 0;
  }

#if (TAO_HAS_MINIMUM_CORBA == 0)

  char *
  Collocated_Object_Proxy_Broker::_repository_id (CORBA::Object_ptr target)
  {
    TAO_Stub *stub = target->_stubobj ();
    char * _tao_retval = 0;

    try
      {
        // Which collocation strategy should we use?
        if (stub != 0 &&
            stub->servant_orb_var ()->orb_core ()
              ->get_collocation_strategy () == TAO_ORB_Core::THRU_POA)
          {
            TAO::Portable_Server::Servant_Upcall servant_upcall (
                stub->servant_orb_var ()->orb_core ());

            CORBA::Object_var forward_to;
            servant_upcall.prepare_for_upcall (
                stub->profile_in_use ()->object_key (),
                "_repository_id",
                forward_to.out ());


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