summaryrefslogtreecommitdiff
path: root/TAO/tao/orbobj.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/orbobj.h')
-rw-r--r--TAO/tao/orbobj.h276
1 files changed, 0 insertions, 276 deletions
diff --git a/TAO/tao/orbobj.h b/TAO/tao/orbobj.h
deleted file mode 100644
index 5a5cf8fed46..00000000000
--- a/TAO/tao/orbobj.h
+++ /dev/null
@@ -1,276 +0,0 @@
-// This may look like C, but it's really -*- C++ -*-
-
-// ============================================================================
-//
-// = LIBRARY
-// TAO
-//
-// = FILENAME
-// orbobj.h
-//
-// = DESCRIPTION
-// Header file for Win32 interface to CORBA's "ORB" type.
-//
-// The "ORB" pseudo-object is used in bootstrapping, such as to
-// create object references from strings. It's also used to
-// create strings from object references.
-//
-// = AUTHOR
-// Copyright 1994-1995 by Sun Microsystems Inc.
-//
-// ============================================================================
-
-#if !defined (TAO_ORBOBJ_H)
-# define TAO_ORBOBJ_H
-
-#include "tao/corba.h"
-
-// ObjectIds recognized by CORBA_ORB::resolve_initial_references ()...
-// of course, no guarantees are made that the call will return something
-// useful.
-#define TAO_OBJID_NAMESERVICE "NameService"
-#define TAO_OBJID_TRADINGSERVICE "TradingService"
-#define TAO_OBJID_ROOTPOA "RootPOA"
-#define TAO_OBJID_POACURRENT "POACurrent"
-#define TAO_OBJID_INTERFACEREP "InterfaceRepository"
-
-typedef enum
-{
- TAO_SERVICEID_NAMESERVICE,
- TAO_SERVICEID_TRADINGSERVICE
-} TAO_Service_ID;
-
-class TAO_Export CORBA_ORB : public TAO_IUnknown
- // = TITLE
- // ORB pseudo-objref.
-{
-public:
- /*
- TAO_POA *POA_init (int &argc,
- char **argv,
- const char *poa_identifier = 0);
- // Initialize the Portable Object Adapter (POA).
- */
-
- 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 (CORBA::String str,
- CORBA::Environment &env) = 0;
- // Turn a string-ified object reference back into an object pointer.
- // Each type of ORB, e.g. an IIOP ORB, must implement this.
- // Typically these strings are created using <object_to_string()>.
- virtual CORBA::String object_to_string (CORBA::Object_ptr obj,
- CORBA::Environment &env) = 0;
- // 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.
-
- void create_list (CORBA::Long count,
- CORBA::NVList_ptr &retval);
-
- // = New Things from the POA Specification
- //
- // Of all of these operations, only <run> is currently implemented.
- // Others require clarification of design or more implementation
- // than is currently available.
-
- CORBA::Boolean work_pending (void);
- // Returns an indication of whether the ORB needs the <{main thread}> to
- // perform some work.
-
- int perform_work (ACE_Time_Value * = 0);
- // If called by the <{main thread}>, this operation performs an
- // implementation-defined unit of work. Otherwise, it does nothing.
- //
- // It is platform-specific how the application and ORB arrange to
- // use compatible threading primitives.
-
- int run (ACE_Time_Value *tv = 0);
- // 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.
- //
- // <{Note that this interface differs from the POA specification,
- // which is reproduced below:}>
- //
- // Returns when the ORB has shut down. If called by the main
- // thread, it enables the ORB to perform work using the main
- // thread. Otherwise, it simply waits until the ORB has shut down.
- //
- // This operation can be used instead of perform_work() to give the
- // main thread to the ORB if there are no other activities that need
- // to share the main thread. Even in a pure multi-threaded server,
- // calling run() in the main thread is useful to ensure that the
- // process does not exit until the ORB has been shut down.
-
- void shutdown (CORBA::Boolean wait_for_completion = CORBA::B_FALSE);
- // 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. <[NOTE]> <wait_for_completion>=TRUE is not
- // currently supported.
-
- CORBA_Object_ptr resolve_initial_references (CORBA::String name);
- // This method acts as a miniature name service provided by the ORB
- // for certain well-known object references. TAO supports the
- // "NameService" and "RootPOA" via this method.
-
-
- // = TAO-specific Extensions
-
- CORBA_Object_ptr key_to_object (const TAO_ObjectKey &key,
- const char *type_id,
- CORBA::Environment &env);
- // 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.
- //
- // 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.
-
- // = <IUnknown> Support
- //
- // Stuff required for COM IUnknown support ... this class is
- // intended to be inherited by others, which will provide some more
- // of the CORBA/COM 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 ... as well
- // as provide their own QueryInterface.
-
- int run (const ACE_Time_Value &tv);
- // This is the same as the more "standard" <run> method, except that
- // you don't need to put the & in front of <tv>.
-
- int preconnect (CORBA::String connections);
- // Establish connectsion to each of the comma-separated
- // <{host}>:<{port}> combinations specified in <connections>.
-
- ULONG AddRef (void);
- ULONG Release (void);
-
- 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.
-
-protected:
- // We must be created via the <ORB_init> call.
- CORBA_ORB (void);
- virtual ~CORBA_ORB (void);
-
-private:
- CORBA_Object_ptr resolve_name_service (void);
- // Resolve the name service object reference.
-
- CORBA_Object_ptr resolve_trading_service (void);
- // Resolve the trading object reference.
-
- CORBA_Object_ptr multicast_to_service (TAO_Service_ID service_id,
- u_short port);
- // Resolve the refernce of a service of type <name>.
-
- CORBA_Object_ptr resolve_poa (void);
- // Resolve the POA.
-
- CORBA_Object_ptr resolve_poa_current (void);
- // Resolve the POA current.
-
- ACE_SYNCH_MUTEX lock_;
- u_int refcount_;
- ACE_Atomic_Op<ACE_SYNCH_MUTEX, CORBA::Boolean> open_called_;
- // Flag which denotes that the open method was called.
-
- ACE_Atomic_Op<ACE_SYNCH_MUTEX, CORBA::Boolean> 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.
-
- // = NON-PROVIDED METHODS
- CORBA_ORB (const CORBA_ORB &);
- CORBA_ORB &operator= (const CORBA_ORB &);
-};
-
-class 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_;
-};
-
-#endif /* TAO_ORBOBJ_H */