Public Types | Static Public Member Functions | Static Private Member Functions

TAO::Narrow_Utils< T > Class Template Reference

#include <Object_T.h>

List of all members.

Public Types

typedef T * T_ptr

Static Public Member Functions

static T_ptr narrow (CORBA::Object_ptr, const char *repo_id, Proxy_Broker_Factory)
static T_ptr unchecked_narrow (CORBA::Object_ptr, Proxy_Broker_Factory)
 Version used the operators.
static T_ptr unchecked_narrow (CORBA::Object_ptr, const char *repo_id, Proxy_Broker_Factory)

Static Private Member Functions

static T_ptr lazy_evaluation (CORBA::Object_ptr)

Detailed Description

template<typename T>
class TAO::Narrow_Utils< T >

Definition at line 44 of file Object_T.h.


Member Typedef Documentation

template<typename T >
typedef T* TAO::Narrow_Utils< T >::T_ptr

Definition at line 47 of file Object_T.h.


Member Function Documentation

template<typename T >
T * TAO::Narrow_Utils< T >::lazy_evaluation ( CORBA::Object_ptr  obj  )  [static, private]

Definition at line 93 of file Object_T.cpp.

  {
    T_ptr default_proxy = T::_nil ();

    // Code for lazily evaluated IORs.
    if (!obj->is_evaluated ())
      {

template<typename T >
T * TAO::Narrow_Utils< T >::narrow ( CORBA::Object_ptr  obj,
const char *  repo_id,
Proxy_Broker_Factory  pbf 
) [static]

Definition at line 10 of file Object_T.cpp.

{
  template<typename T>
  T *
  Narrow_Utils<T>::narrow (CORBA::Object_ptr obj,
                           const char *repo_id,
                           Proxy_Broker_Factory pbf)
  {
    if (CORBA::is_nil (obj))
      {
        return T::_nil ();
      }

template<typename T >
T * TAO::Narrow_Utils< T >::unchecked_narrow ( CORBA::Object_ptr  obj,
const char *  repo_id,
Proxy_Broker_Factory  pbf 
) [static]

Definition at line 46 of file Object_T.cpp.

  {
    if (CORBA::is_nil (obj))
      {
        return T::_nil ();
      }

    if (obj->_is_local ())
      {
        return T::_duplicate (dynamic_cast<T *> (obj));
      }

    T_ptr proxy = Narrow_Utils<T>::lazy_evaluation (obj);

    if (!CORBA::is_nil (proxy))
      {
        return proxy;
      }

    TAO_Stub* stub = obj->_stubobj ();

    if (stub == 0)
      {
        // If we're here, we have been passed a bogus objref.
        throw ::CORBA::BAD_PARAM ();
      }

    stub->_incr_refcnt ();

    bool const collocated =
      !CORBA::is_nil (stub->servant_orb_var ().in ())
      && stub->optimize_collocation_objects ()
      && obj->_is_collocated ()
      && pbf != 0;

template<typename T >
T * TAO::Narrow_Utils< T >::unchecked_narrow ( CORBA::Object_ptr  obj,
Proxy_Broker_Factory  pbf 
) [static]

Version used the operators.

Definition at line 28 of file Object_T.cpp.

      {
        return T::_nil ();
      }

    return TAO::Narrow_Utils<T>::unchecked_narrow (obj, repo_id, pbf);
  }

  template<typename T> T *
  Narrow_Utils<T>::unchecked_narrow (CORBA::Object_ptr obj,
                                     Proxy_Broker_Factory pbf)
  {
    T *proxy = 0;
    try
      {
        proxy = TAO::Narrow_Utils<T>::unchecked_narrow (obj, 0, pbf);
      }


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