summaryrefslogtreecommitdiff
path: root/TAO/tao/ORB.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/ORB.h')
-rw-r--r--TAO/tao/ORB.h834
1 files changed, 0 insertions, 834 deletions
diff --git a/TAO/tao/ORB.h b/TAO/tao/ORB.h
deleted file mode 100644
index 8772c308e5a..00000000000
--- a/TAO/tao/ORB.h
+++ /dev/null
@@ -1,834 +0,0 @@
-// This may look like C, but it's really -*- C++ -*-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// TAO
-//
-// = FILENAME
-// ORB.h
-//
-// = DESCRIPTION
-// Header file for CORBA's <ORB> type and type.
-//
-// = AUTHOR
-// Copyright 1994-1995 by Sun Microsystems Inc. and Douglas C. Schmidt.
-//
-// ============================================================================
-
-#ifndef TAO_ORB_H
-#define TAO_ORB_H
-
-#include "tao/corbafwd.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "tao/Exception.h"
-#include "tao/IOR_LookupTable.h"
-#include "tao/Services.h"
-#include "tao/IORManipulation.h"
-
-// IRIX needs this for the throw specs
-#include "tao/PolicyC.h"
-
-typedef enum
-{
- TAO_SERVICEID_NAMESERVICE,
- TAO_SERVICEID_TRADINGSERVICE
-} TAO_Service_ID;
-
-
-// @@ NW: Disable messing with the alignment for now.
-// For some reason, PC compilers don't implement "natural" alignment,
-// but only use fixed alignment policies. The following #pragmas
-// configure fixed one-byte alignment policy, since some fixed policy
-// needs to apply throughout an ORB.
-
-#if defined (_MSC_VER)
-//# pragma pack (push, 1) // VC++, stack 1-byte alignment policy
-# ifdef _DEBUG // convert from VC++ convention ...
-# define DEBUG // ... to normal convention
-# endif
-#elif defined (__BORLANDC__)
-# pragma option -a // BC++, use 1 byte alignment
-#endif
-
-// = Forward declarations.
-class TAO_MProfile;
-class TAO_POA_Manager;
-class TAO_POA_Policies;
-struct TAO_Dispatch_Context;
-class TAO_Operation_Table;
-class TAO_Client_Strategy_Factory;
-class TAO_Server_Strategy_Factory;
-class TAO_ORB_Parameters;
-class TAO_InputCDR;
-class TAO_OutputCDR;
-class CORBA_ORB_InconsistentTypeCode;
-class TAO_ServantBase;
-class TAO_Stub;
-
-#ifdef TAO_HAS_VALUETYPE
-class TAO_ValueFactory_Map;
-#endif /* TAO_HAS_VALUETYPE */
-
-typedef CORBA_ORB_InconsistentTypeCode InconsistentTypeCode;
-typedef CORBA_ORB_InconsistentTypeCode *InconsistentTypeCode_ptr;
-
-class TAO_Export CORBA_String_var
-{
- // = TITLE
- // CORBA_String var class. Provides automatic deallocation of storage
- // for the string once it goes out of scope.
-public:
- CORBA_String_var (void);
- // default constructor.
-
- CORBA_String_var (char *p);
- // constructor, owns p.
-
- CORBA_String_var (const char *p);
- // constructor. Makes a copy of p.
-
- CORBA_String_var (const CORBA_String_var &s);
- // copy constructor.
-
- ~CORBA_String_var (void);
- // destructor.
-
- CORBA_String_var &operator= (char *p);
- // assignment operator.
-
- CORBA_String_var &operator= (const char *p);
- // assignment to a const char*. Makes a copy.
-
- CORBA_String_var &operator= (const CORBA_String_var &s);
- // assignment operator.
-
- operator char *();
- // access and modify.
-
- operator const char *() const;
- // only read privileges.
-
- char &operator[] (CORBA::ULong slot);
- // allows access and modification using an slot.
-
- char operator[] (CORBA::ULong slot) const;
- // allows only accessing thru an slot.
-
- // = in, out, out, and _retn operations.
- // ORBOS/97-05-15, Appendix C.2
-
- const char *in (void) const;
- // for in parameter.
-
- char *&inout (void);
- // for inout parameter.
-
- char *&out (void);
- // for out parameter.
-
- char *_retn (void);
- // for string of return type.
-
-private:
- char *ptr_;
- // instance.
-};
-
-class TAO_Export CORBA_String_out
-{
- // = TITLE
- // CORBA_String_out
- //
- // = DESCRIPTION
- // To support the memory management for "out" parameter passing
- // mode. ORBOS/97-05-15, Appendix C.2 defines a CORBA_String_out class
-public:
- // = operations.
-
- CORBA_String_out (char *&p);
- // Construction from a reference to a string.
-
- CORBA_String_out (CORBA_String_var &p);
- // Construction from a var.
-
- CORBA_String_out (const CORBA_String_out &s);
- // Copy constructor.
-
- CORBA_String_out &operator= (const CORBA_String_out &s);
- // Assignment from a string_out.
-
- CORBA_String_out &operator= (char *p);
- // Assignment from a string.
-
- operator char *&();
- // Cast.
-
- char *&ptr (void);
- // Return underlying instance.
-
-private:
- char *&ptr_;
- // Instance.
-
- // assignment from _var disallowed
- void operator= (const CORBA_String_var &);
-};
-
-// ****************************************************************
-
-class TAO_Export CORBA_WString_var
-{
- // = TITLE
- // CORBA_WString var class. Provides automatic deallocation of
- // storage for wide strings
- //
-public:
- CORBA_WString_var (void);
- // default constructor.
-
- CORBA_WString_var (CORBA::WChar *p);
- // constructor, owns p.
-
- CORBA_WString_var (const CORBA::WChar *p);
- // constructor. Makes a copy of p.
-
- CORBA_WString_var (const CORBA_WString_var &s);
- // copy constructor.
-
- ~CORBA_WString_var (void);
- // destructor.
-
- CORBA_WString_var &operator= (CORBA::WChar *p);
- // assignment operator.
-
- CORBA_WString_var &operator= (const CORBA::WChar *p);
- // assignment to a const char*. Makes a copy.
-
- CORBA_WString_var &operator= (const CORBA_WString_var &s);
- // assignment operator.
-
- operator CORBA::WChar *();
- // access and modify.
-
- operator const CORBA::WChar *() const;
- // only read privileges.
-
- CORBA::WChar &operator[] (CORBA::ULong slot);
- // allows access and modification using an slot.
-
- CORBA::WChar operator[] (CORBA::ULong slot) const;
- // allows only accessing thru an slot.
-
- // = in, out, out, and _retn operations.
- // ORBOS/97-05-15, Appendix C.2
-
- const CORBA::WChar *in (void) const;
- // for in parameter.
-
- CORBA::WChar *&inout (void);
- // for inout parameter.
-
- CORBA::WChar *&out (void);
- // for out parameter.
-
- CORBA::WChar *_retn (void);
- // for string of return type.
-
-private:
- CORBA::WChar *ptr_;
- // instance.
-};
-
-class TAO_Export CORBA_WString_out
-{
- // = TITLE
- // CORBA_WString_out
- //
- // = DESCRIPTION
- // To support the memory management for "out" parameter passing
- // mode. ORBOS/97-05-15, Appendix C.2 defines a CORBA_WString_out
- // class
- //
-public:
- // = operations.
-
- CORBA_WString_out (CORBA::WChar *&p);
- // Construction from a reference to a string.
-
- CORBA_WString_out (CORBA_WString_var &p);
- // Construction from a var.
-
- CORBA_WString_out (const CORBA_WString_out &s);
- // Copy constructor.
-
- CORBA_WString_out &operator= (const CORBA_WString_out &s);
- // Assignment from a string_out.
-
- CORBA_WString_out &operator= (CORBA::WChar *p);
- // Assignment from a string.
-
- operator CORBA::WChar *&();
- // Cast.
-
- CORBA::WChar *&ptr (void);
- // Return underlying instance.
-
-private:
- CORBA::WChar *&ptr_;
- // Instance.
-
- // assignment from _var disallowed
- void operator= (const CORBA_WString_var &);
-};
-
-// ****************************************************************
-
-class TAO_Export CORBA_ORB
-{
- // = TITLE
- // ORB pseudo-objref.
- //
- // = DESCRIPTION
- //
- // The "ORB" pseudo-object is used in bootstrapping, such as to
- // create object references from strings. This class is intended
- // to be inherited by others, which will provide some more of the
- // CORBA support. Implementations of this "CORBA::ORB" class must
- // know how to create stringify/destringify their objrefs, as well
- // as how to marshal and unmarshal them.
- //
-public:
-
- // ORB_Core has special privileges
- friend class TAO_ORB_Core;
- friend TAO_Export TAO_ORB_Core *TAO_ORB_Core_instance (void);
-
- class TAO_Export InvalidName : public CORBA_UserException
- {
- public:
- InvalidName (void);
- InvalidName (const InvalidName &);
- ~InvalidName (void);
- InvalidName &operator= (const InvalidName &);
-
- virtual void _raise (void);
- static InvalidName* _narrow (CORBA_Exception *ex);
- // = TAO extension
- static CORBA::Exception *_alloc (void);
- };
- static CORBA::TypeCode_ptr _tc_InvalidName;
-
- typedef char *ObjectId;
- typedef CORBA::String_var ObjectId_var;
- typedef CORBA::String_out ObjectId_out;
- static CORBA::TypeCode_ptr _tc_ObjectId;
-
- typedef CORBA_ORB_ObjectIdList ObjectIdList;
- typedef CORBA_ORB_ObjectIdList_var ObjectIdList_var;
- typedef CORBA_ORB_ObjectIdList_out ObjectIdList_out;
- typedef CORBA_ORB_ObjectIdList *ObjectIdList_ptr;
- static CORBA::TypeCode_ptr _tc_ObjectIdList;
-
- static CORBA::ORB_ptr _duplicate (CORBA::ORB_ptr orb);
- // Return a duplicate of <{orb}>. When work with this duplicate is
- // complete, it should be freed up using <CORBA::release()>.
-
- static CORBA::ORB_ptr _nil (void);
- // Returns a pointer to a nil ORB, i.e., an non-existent ORB. This
- // can be used for initialization or in comparisons.
-
- virtual CORBA::Object_ptr string_to_object (
- const char *str,
- CORBA_Environment &ACE_TRY_ENV =
- TAO_default_environment ());
- // Turn a string-ified object reference back into an object pointer.
- // Typically these strings are created using <object_to_string()>,
- // but not necessarily locally.
-
- virtual CORBA::String object_to_string (
- CORBA::Object_ptr obj,
- CORBA_Environment &ACE_TRY_ENV =
- TAO_default_environment ());
- // Turn an object reference into a string. Each type of ORB,
- // e.g. an IIOP ORB, must implement this. This can be used by
- // servers to publish their whereabouts to clients. The output of
- // this is typically eventually given to <string_to_object()> as an
- // argument.
-
-
-#ifdef TAO_HAS_VALUETYPE
- // Value factory operations (CORBA 2.3 ptc/98-10-05 Ch. 4.2 p.4-7)
- CORBA::ValueFactory_ptr register_value_factory (
- const char *repository_id,
- CORBA::ValueFactory_ptr factory,
- CORBA_Environment &ACE_TRY_ENV =
- TAO_default_environment () );
- void unregister_value_factory (const char * repository_id,
- CORBA_Environment &ACE_TRY_ENV =
- TAO_default_environment () );
- CORBA::ValueFactory_ptr lookup_value_factory (const char *repository_id,
- CORBA_Environment &ACE_TRY_ENV = TAO_default_environment () );
-#endif /* TAO_HAS_VALUETYPE */
-
-#if !defined (TAO_HAS_MINIMUM_CORBA)
-
- // Typedefs for CORBA_ORB_RequestSeq,
- // which is an argument of send_multiple_requests_*().
- // See Request.{h,i,cpp} for definitions.
- typedef CORBA_ORB_RequestSeq RequestSeq;
- typedef CORBA_ORB_RequestSeq_ptr RequestSeq_ptr;
- typedef CORBA_ORB_RequestSeq_var RequestSeq_var;
- typedef CORBA_ORB_RequestSeq_out RequestSeq_out;
-
- void create_list (CORBA::Long count,
- CORBA::NVList_ptr &new_list,
- CORBA_Environment &ACE_TRY_ENV =
- TAO_default_environment ());
-
- // The following are not implemented and just throw
- // CORBA::NO_IMPLEMENT.
-
- void create_named_value (CORBA::NamedValue_ptr &nmval,
- CORBA_Environment &ACE_TRY_ENV =
- TAO_default_environment ());
-
- void create_exception_list (CORBA::ExceptionList_ptr &exclist,
- CORBA_Environment &ACE_TRY_ENV =
- TAO_default_environment ());
-
- void create_context_list (CORBA::ContextList_ptr &ctxtlist,
- CORBA_Environment &ACE_TRY_ENV =
- TAO_default_environment ());
-
- void get_default_context (CORBA::Context_ptr &ctx,
- CORBA_Environment &ACE_TRY_ENV =
- TAO_default_environment ());
-
- void create_environment (CORBA::Environment_ptr &new_env,
- CORBA_Environment &ACE_TRY_ENV =
- TAO_default_environment ());
-
- CORBA::Boolean get_service_information (CORBA::ServiceType service_type,
- CORBA::ServiceInformation_out service_information,
- CORBA::Environment &ACE_TRY_ENV =
- TAO_default_environment ());
-
- void send_multiple_requests_oneway (const CORBA_ORB_RequestSeq req,
- CORBA_Environment &ACE_TRY_ENV =
- TAO_default_environment ());
-
- void send_multiple_requests_deferred (const CORBA_ORB_RequestSeq req,
- CORBA_Environment &ACE_TRY_ENV =
- TAO_default_environment ());
-
- void get_next_response (CORBA_Request_ptr &req,
- CORBA_Environment &ACE_TRY_ENV =
- TAO_default_environment ());
-
- CORBA::Boolean poll_next_response (CORBA_Environment &ACE_TRY_ENV =
- TAO_default_environment ());
-
- CORBA::Boolean work_pending (void);
- // Returns an indication of whether the ORB needs to perform some
- // work.
-
- int perform_work (const ACE_Time_Value & = ACE_Time_Value::zero);
- // This operation performs an implementation-defined unit of
- // work. Note that the default behavior is not to block; this
- // behavior can be modified by passing an appropriate
- // <ACE_Time_Value>.
-
- // Typecode for the above exception.
- static CORBA::TypeCode_ptr _tc_InconsistentTypeCode;
-
- // Dynamic Any factory functions.
- // @@EXC@@ Add the ACE_THROW_SPEC for these functions...
-
- CORBA_DynAny_ptr create_dyn_any (const CORBA_Any& any,
- CORBA::Environment &ACE_TRY_ENV);
-
- CORBA_DynAny_ptr create_basic_dyn_any (CORBA_TypeCode_ptr tc,
- CORBA::Environment &ACE_TRY_ENV);
-
- CORBA_DynStruct_ptr create_dyn_struct (CORBA_TypeCode_ptr tc,
- CORBA::Environment &ACE_TRY_ENV);
-
- CORBA_DynSequence_ptr create_dyn_sequence (CORBA_TypeCode_ptr tc,
- CORBA::Environment &ACE_TRY_ENV);
-
- CORBA_DynArray_ptr create_dyn_array (CORBA_TypeCode_ptr tc,
- CORBA::Environment &ACE_TRY_ENV);
-
- CORBA_DynUnion_ptr create_dyn_union (CORBA_TypeCode_ptr tc,
- CORBA::Environment &ACE_TRY_ENV);
-
- CORBA_DynEnum_ptr create_dyn_enum (CORBA_TypeCode_ptr tc,
- CORBA::Environment &ACE_TRY_ENV);
-#endif /* TAO_HAS_MINIMUM_CORBA */
-
- int run (void);
- int run (ACE_Time_Value &tv);
- int run (ACE_Time_Value *tv);
- // Instructs the ORB to initialize itself and run its event loop in
- // the current thread, not returning until the ORB has shut down.
- // If an error occurs during initialization or a run-time this
- // method will return -1. If <tv> is non-NULL, then if no requests
- // arrive at this thread before the timeout elapses we return to the
- // caller with a value of 0 (this allows timeouts). Otherwise, if
- // we've returned since we've been asked to shut down the value of 1
- // is returned.
-
- void shutdown (CORBA::Boolean wait_for_completion = 0,
- CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ());
- // This operation instructs the ORB to shut down. Shutting down the
- // ORB causes all Object Adapters to be shut down. If
- // <wait_for_completion> parameter is TRUE, this operation blocks
- // until all ORB processing (including request processing and object
- // deactivation or other operations associated with object adapters)
- // has completed.
-
- // @@EXC@@ Add the ACE_THROW_SPEC for these two functions
-
- CORBA_Object_ptr resolve_initial_references (const char *name,
- CORBA_Environment &ACE_TRY_ENV =
- TAO_default_environment ());
-
- CORBA_Object_ptr resolve_initial_references (const char *name,
- ACE_Time_Value *timeout,
- CORBA_Environment &ACE_TRY_ENV =
- TAO_default_environment ());
- // This method acts as a mini-bootstrapping Naming Service, which is
- // provided by the ORB for certain well-known object references. TAO
- // supports the "NameService", "TradingService", "RootPOA", "ImplRepo",
- // and "POACurrent" via this method. The <timeout> value bounds the
- // amount of time the ORB blocks waiting to resolve the service.
- // This is most useful for bootstrapping remote services, such as
- // the "NameService" or "TradingService", that are commonly resolved
- // via multicast. By default, the value is 0, which means "use the
- // <TAO_DEFAULT_SERVICE_RESOLUTION_TIMEOUT> timeout period". Note
- // that by using a default value for the <timeout> parameter, TAO
- // will remains compliant with the CORBA
- // <resolve_initial_references> specification.
-
- // Unimplemented function - throws CORBA::NO_IMPLEMENT.
- CORBA_ORB_ObjectIdList_ptr list_initial_services (CORBA_Environment &ACE_TRY_ENV =
- TAO_default_environment ());
-
-#if defined(TAO_HAS_CORBA_MESSAGING)
- CORBA::Policy_ptr create_policy (CORBA::PolicyType type,
- const CORBA::Any& val,
- CORBA_Environment &ACE_TRY_ENV =
- TAO_default_environment ())
- ACE_THROW_SPEC ((CORBA::SystemException, CORBA::PolicyError));
-#endif /* TAO_HAS_CORBA_MESSAGING */
-
- // ----------------------------------------------------------------
- // = TAO-specific extensions to the CORBA specification.
- // ----------------------------------------------------------------
-
- virtual TAO_SERVANT_LOCATION _get_collocated_servant (TAO_Stub *p,
- TAO_ServantBase *&servant);
- // Return the object pointer of an collocated object it there is
- // one, otherwise, return 0. Each type of ORB, e. g., IIOP ORB,
- // must implement this and determine what is a collocated object
- // based on information provided in the TAO_Stub.
-
- virtual int _tao_add_to_IOR_table (const ACE_CString &object_id,
- CORBA::Object_ptr obj);
- // Add a mapping ObjectID->IOR to the table.
-
- virtual int _tao_find_in_IOR_table (const ACE_CString &object_id,
- CORBA::Object_ptr &obj);
- // Find the given ObjectID in the table.
-
- CORBA_Object_ptr resolve_root_poa (CORBA_Environment &ACE_TRY_ENV,
- const char *adapter_name = TAO_DEFAULT_ROOTPOA_NAME,
- TAO_POA_Manager *poa_manager = 0,
- const TAO_POA_Policies *policies = 0);
- // Resolve the POA.
-
- TAO_Stub *create_stub_object (const TAO_ObjectKey &key,
- const char *type_id,
- CORBA_Environment &ACE_TRY_ENV = TAO_default_environment ());
- // Makes sure that the ORB is open and then creates an IIOP object
- // based on the endpoint.
-
- CORBA_Object_ptr key_to_object (const TAO_ObjectKey &key,
- const char *type_id,
- TAO_ServantBase *servant = 0,
- CORBA::Boolean collocated = 1,
- CORBA_Environment &ACE_TRY_ENV = TAO_default_environment ());
- // Convert key into an object reference. Return Object_ptr as out
- // parameter. Errors will come through the environment.
- //
- // Object IDs are assigned and used by servers to identify objects.
- //
- // Type IDs are repository IDs, assigned as part of OMG-IDL
- // interface definition to identify specific interfaces and their
- // relationships to other OMG-IDL interfaces. It's OK to provide a
- // null type ID. Providing a null object key will result in an
- // INV_OBJREF exception.
- //
- // <servant> and <collocated> are used to created collocated object
- // references. All object references created by this function should
- // be collocated object.
- //
- // Clients which invoke operations using one of these references
- // when the server is not active (or after the last reference to the
- // POA is released) will normally see an OBJECT_NOT_EXIST exception
- // reported by the ORB. If the POA is a "Named POA" the client's
- // ORB will not normally return OBJECT_NOT_EXIST unless the POA
- // reports that fault.
-
- int open (void);
- // Set up the ORB Core's acceptor to listen on the
- // previously-specified port for requests. Returns -1 on failure,
- // else 0.
-
- static void init_orb_globals (CORBA_Environment &ACE_TRY_ENV = TAO_default_environment ());
- // Initialize the ORB globals correctly, i.e., only when they
- // haven't been initialized yet.
-
- static CORBA::Boolean orb_free_resources (void);
- // Indicates if we have reached a point where all ORB owned
- // resources will be deallocated.
-
- // The function used by tao to handle the "unexpected" exceptions,
- // It raises CORBA::UNKNOWN.
- static void _tao_unexpected_exception (void);
-
- // Reference counting...
- virtual CORBA::ULong _incr_refcnt (void);
- virtual CORBA::ULong _decr_refcnt (void);
-
- void should_shutdown (int value);
- // Set the shutdown flag to <value>.
-
- int should_shutdown (void);
- // Get the shutdown flag value
-
- void _use_omg_ior_format (CORBA::Boolean ior);
- // Set the IOR flag.
- CORBA::Boolean _use_omg_ior_format (void);
- // Get the IOR flag.
-
- void _optimize_collocation_objects (CORBA::Boolean opt);
- // Set collocation optimization status.
- CORBA::Boolean _optimize_collocation_objects (void) const;
- // Get collocation optimization status.
-
- TAO_ORB_Core *orb_core (void) const;
- // Get the ORB core.
-
-#if !defined(__GNUC__) || __GNUC__ > 2 || __GNUC_MINOR__ >= 8
- typedef CORBA_ORB_ptr _ptr_type;
- typedef CORBA_ORB_var _var_type;
-#endif /* __GNUC__ */
- // Useful for template programming.
-
-protected:
- // We must be created via the <ORB_init> call.
- CORBA_ORB (TAO_ORB_Core *orb_core);
- virtual ~CORBA_ORB (void);
-
- TAO_SERVANT_LOCATION _find_collocated_servant (TAO_Stub *sobj,
- TAO_ORB_Core *orb_core,
- TAO_ServantBase *& servant,
- const TAO_MProfile &mprofile);
- // Check if local servant exists for <mprofile> in <orb_core>.
-
- CORBA_Object_ptr resolve_poa_current (CORBA_Environment &ACE_TRY_ENV);
- // Resolve the POA current.
-
- CORBA_Object_ptr resolve_policy_manager (CORBA::Environment&);
- // Resolve the Policy Manager for this ORB.
- CORBA_Object_ptr resolve_policy_current (CORBA::Environment&);
- // Resolve the Policy Current for this thread.
-
- CORBA_Object_ptr resolve_ior_manipulation (CORBA::Environment&);
- // Resolve the IOR Manipulation reference for this ORB.
-
- int run (ACE_Time_Value *tv,
- int break_on_timeouts);
- // Implements the run routine
-
-private:
-
- CORBA_Object_ptr resolve_service (const char* service_name,
- ACE_Time_Value *timeout,
- CORBA::Environment& ACE_TRY_ENV);
- // Resolve the service name.
-
- CORBA_Object_ptr resolve_trading_service (ACE_Time_Value *timeout,
- CORBA::Environment& ACE_TRY_ENV);
- // Resolve the trading object reference.
-
- CORBA_Object_ptr resolve_implrepo_service (ACE_Time_Value *timeout,
- CORBA::Environment& ACE_TRY_ENV);
- // Resolve the Implementation Repository object reference.
-
- int multicast_query (char* &buf,
- const char *service_name,
- u_short port,
- ACE_Time_Value *timeout);
-
- // returns and IOR string, the client is responsible for freeing
- // memory!
-
- CORBA_Object_ptr multicast_to_service (const char *service_name,
- u_short port,
- ACE_Time_Value *timeout,
- CORBA::Environment& ACE_TRY_ENV);
- // Resolve the reference of a service of type <name>.
-
- CORBA::Object_ptr file_string_to_object (const char* filename,
- CORBA::Environment &ACE_TRY_ENV);
- // Read an IOR from a file and then parse it, returning the object
- // reference.
-
- CORBA::Object_ptr ior_string_to_object (const char* ior,
- CORBA::Environment &ACE_TRY_ENV);
- // Convert an OMG IOR into an object reference.
-
- CORBA::Object_ptr url_ior_string_to_object (const char* ior,
- CORBA::Environment &ACE_TRY_ENV);
- // Convert an URL style IOR into an object reference.
-
-private:
- ACE_SYNCH_MUTEX lock_;
- // lock required for mutual exclusion between multiple threads.
-
- u_int refcount_;
- // Maintains a reference count of number of instantiations of the
- // ORB.
-
- u_int open_called_;
- // Flag which denotes that the open method was called.
-
- ACE_SYNCH_MUTEX open_lock_;
- // Mutual exclusion for calling open.
-
- ACE_Lock *shutdown_lock_;
- // Pointer to our shutdown lock.
-
- int should_shutdown_;
- // Flag which denotes that the ORB should shut down and <run> should
- // return.
-
- CORBA_Object_ptr name_service_;
- // If this is non-_nil(), then this is the object reference to our
- // configured Naming Context.
-
- CORBA_Object_ptr schedule_service_;
- // If this is non-_nil(), then this is the object reference to our
- // configured RtecScheduler::Scheduler.
-
- CORBA_Object_ptr event_service_;
- // If this is non-_nil(), then this is the object reference to our
- // configured Event Channel.
-
- CORBA_Object_ptr trading_service_;
- // If this is non-_nil(), then this is the object reference to our
- // configured Trading.
-
- CORBA_Object_ptr implrepo_service_;
- // If this is non-_nil(), then this is the object reference to our
- // configured Implementation Repository.
-
- static int orb_init_count_;
- // Count of the number of times that <ORB_init> has been called.
- // This must be protected by <ACE_Static_Object_Lock>.
-
- TAO_ORB_Core *orb_core_;
- // The ORB_Core that created us....
-
-#ifdef TAO_HAS_VALUETYPE
- TAO_ValueFactory_Map *valuetype_factory_map_;
- // If non-0 then this is the Factory for OBV unmarshaling
-#endif /* TAO_HAS_VALUETYPE */
-
- TAO_IOR_LookupTable lookup_table_;
- // Table of ObjectID->IOR mappings.
-
- TAO_IOR_Manipulation_impl ior_manipulation_;
- // object used for manipulation profiles in an object reference, that
- // is an IOR.
-
- CORBA::Boolean use_omg_ior_format_;
- // Decides whether to use the URL notation or to use IOR notation.
-
- // = NON-PROVIDED METHODS
- CORBA_ORB (const CORBA_ORB &);
- CORBA_ORB &operator= (const CORBA_ORB &);
-};
-
-class TAO_Export CORBA_ORB_var
-{
-public:
- CORBA_ORB_var (void); // default constructor
- CORBA_ORB_var (CORBA::ORB_ptr);
- CORBA_ORB_var (const CORBA_ORB_var &); // copy constructor
- ~CORBA_ORB_var (void); // destructor
-
- CORBA_ORB_var &operator= (CORBA::ORB_ptr);
- CORBA_ORB_var &operator= (const CORBA_ORB_var &);
- CORBA::ORB_ptr operator-> (void) const;
-
- operator const CORBA::ORB_ptr &() const;
- operator CORBA::ORB_ptr &();
- // in, inout, out, _retn
- CORBA::ORB_ptr in (void) const;
- CORBA::ORB_ptr &inout (void);
- CORBA::ORB_ptr &out (void);
- CORBA::ORB_ptr _retn (void);
- CORBA::ORB_ptr ptr (void) const;
-
-private:
- CORBA::ORB_ptr ptr_;
-};
-
-class TAO_Export CORBA_ORB_out
-{
-public:
- CORBA_ORB_out (CORBA::ORB_ptr &);
- CORBA_ORB_out (CORBA_ORB_var &);
- CORBA_ORB_out (CORBA_ORB_out &);
- CORBA_ORB_out &operator= (CORBA_ORB_out &);
- CORBA_ORB_out &operator= (const CORBA_ORB_var &);
- CORBA_ORB_out &operator= (CORBA::ORB_ptr);
- operator CORBA::ORB_ptr &();
- CORBA::ORB_ptr &ptr (void);
- CORBA::ORB_ptr operator-> (void);
-
-private:
- CORBA::ORB_ptr &ptr_;
-};
-
-extern TAO_Export void
-operator<<= (CORBA::Any &, const CORBA::ORB::InvalidName &);
-extern TAO_Export void
-operator<<= (CORBA::Any &, CORBA::ORB::InvalidName*);
-extern TAO_Export CORBA::Boolean
-operator>>= (const CORBA::Any &, CORBA::ORB::InvalidName *&);
-extern TAO_Export CORBA::Boolean
-operator<< (TAO_OutputCDR &, const CORBA::ORB::InvalidName &);
-extern TAO_Export CORBA::Boolean
-operator>> (TAO_InputCDR &, CORBA::ORB::InvalidName &);
-
-#if defined (__ACE_INLINE__)
-# include "tao/ORB.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (_MSC_VER)
-// @@ NW: Disable messing with alignment for now.
-// VC++, goes back to other padding rules
-//# pragma pack (pop)
-#endif /* _MSV_VER */
-
-#endif /* TAO_ORB_H */