diff options
-rw-r--r-- | TAO/ChangeLog-99c | 7 | ||||
-rw-r--r-- | TAO/tao/Object.cpp | 27 | ||||
-rw-r--r-- | TAO/tao/Object.h | 60 |
3 files changed, 75 insertions, 19 deletions
diff --git a/TAO/ChangeLog-99c b/TAO/ChangeLog-99c index 596d1c41c5c..e5412854e9d 100644 --- a/TAO/ChangeLog-99c +++ b/TAO/ChangeLog-99c @@ -1,3 +1,10 @@ +Tue May 11 16:46:20 1999 Jeff Parsons <parsons@cs.wustl.edu> + + * tao/Object.{h,cpp}: + Added the second form of create_request(). It has two + additional args - an exception list and a context list, + which are both unused in this implementation. + Tue May 11 16:03:01 1999 Jeff Parsons <parsons@cs.wustl.edu> * tao/corbafwd.h: diff --git a/TAO/tao/Object.cpp b/TAO/tao/Object.cpp index e7e1d9c3c14..11e310b36ab 100644 --- a/TAO/tao/Object.cpp +++ b/TAO/tao/Object.cpp @@ -268,7 +268,32 @@ CORBA_Object::_create_request (CORBA::Context_ptr ctx, // is a no-no. if (ctx) { - TAO_THROW(CORBA::NO_IMPLEMENT ()); + TAO_THROW (CORBA::NO_IMPLEMENT ()); + } + request = new CORBA::Request (this, + operation, + arg_list, + result, + req_flags, + TAO_IN_ENV); +} + +void +CORBA_Object::_create_request2 (CORBA::Context_ptr ctx, + const CORBA::Char *operation, + CORBA::NVList_ptr arg_list, + CORBA::NamedValue_ptr result, + CORBA::ExceptionList_ptr, + CORBA::ContextList_ptr, + CORBA::Request_ptr &request, + CORBA::Flags req_flags, + CORBA::Environment &TAO_IN_ENV) +{ + // Since we don't really support Context, anything but a null pointer + // is a no-no. + if (ctx) + { + TAO_THROW (CORBA::NO_IMPLEMENT ()); } request = new CORBA::Request (this, operation, diff --git a/TAO/tao/Object.h b/TAO/tao/Object.h index 977838fd88b..7faea06e9cb 100644 --- a/TAO/tao/Object.h +++ b/TAO/tao/Object.h @@ -43,7 +43,8 @@ public: // return a NUL object static CORBA_Object_ptr _narrow (CORBA_Object_ptr obj, - CORBA_Environment &TAO_IN_ENV = CORBA::default_environment ()); + CORBA_Environment &TAO_IN_ENV = + CORBA::default_environment ()); // no-op it is just here to simplify some templates. // These calls correspond to over-the-wire operations, or at least @@ -53,7 +54,8 @@ public: // appropriate. virtual CORBA::Boolean _is_a (const CORBA::Char *logical_type_id, - CORBA_Environment &TAO_IN_ENV = CORBA::default_environment ()); + CORBA_Environment &TAO_IN_ENV = + CORBA::default_environment ()); // determine if we are of the type specified by the "logical_type_id" virtual const char* _interface_repository_id (void) const; @@ -66,17 +68,27 @@ public: virtual CORBA::Boolean _is_collocated (void) const; // are we collocated with the servant? - virtual CORBA::Boolean _non_existent (CORBA_Environment &TAO_IN_ENV = CORBA::default_environment ()); + virtual CORBA::Boolean _non_existent (CORBA_Environment &TAO_IN_ENV = + CORBA::default_environment ()); #if !defined (TAO_HAS_MINIMUM_CORBA) virtual CORBA::ImplementationDef_ptr - _get_implementation (CORBA_Environment &TAO_IN_ENV = CORBA::default_environment ()); + _get_implementation (CORBA_Environment &TAO_IN_ENV = + CORBA::default_environment ()); // This method is deprecated in the CORBA 2.2 spec, we just return 0 // every time. - virtual CORBA::InterfaceDef_ptr _get_interface (CORBA_Environment &TAO_IN_ENV = CORBA::default_environment ()); - // Interface repository related operation + virtual CORBA::InterfaceDef_ptr _get_interface (CORBA_Environment &TAO_IN_ENV = + CORBA::default_environment ()); + + // Interface repository related operations. + + // DII operations to create a request. + // + // The mapping for create_request is split into two forms, + // corresponding to the two usage styles described in CORBA section + // 6.2.1. virtual void _create_request (CORBA::Context_ptr ctx, const CORBA::Char *operation, @@ -84,19 +96,27 @@ public: CORBA::NamedValue_ptr result, CORBA::Request_ptr &request, CORBA::Flags req_flags, - CORBA_Environment &TAO_IN_ENV = CORBA::default_environment ()); - // DII operation to create a request. - // - // The mapping for create_request is split into two forms, - // corresponding to the two usage styles described in CORBA section - // 6.2.1. - // + CORBA_Environment &TAO_IN_ENV = + CORBA::default_environment ()); + + virtual void _create_request2 (CORBA::Context_ptr ctx, + const CORBA::Char *operation, + CORBA::NVList_ptr arg_list, + CORBA::NamedValue_ptr result, + CORBA::ExceptionList_ptr exclist, + CORBA::ContextList_ptr ctxtlist, + CORBA::Request_ptr &request, + CORBA::Flags req_flags, + CORBA_Environment &TAO_IN_ENV = + CORBA::default_environment ()); + // The default implementation of this method uses the same simple, // multi-protocol remote invocation interface as is assumed by the // calls above ... that's how it can have a default implementation. virtual CORBA::Request_ptr _request (const CORBA::Char *operation, - CORBA_Environment &TAO_IN_ENV = CORBA::default_environment ()); + CORBA_Environment &TAO_IN_ENV = + CORBA::default_environment ()); // DII operation to create a request. #endif /* TAO_HAS_MINIMUM_CORBA */ @@ -131,7 +151,8 @@ public: #endif /* TAO_HAS_CORBA_MESSAGING */ virtual CORBA::ULong _hash (CORBA::ULong maximum, - CORBA_Environment &TAO_IN_ENV = CORBA::default_environment ()); + CORBA_Environment &TAO_IN_ENV = + CORBA::default_environment ()); // Return a (potentially non-unique) hash value for this object. // This method relies on the representation of the object // reference's private state. Since that changes easily (when @@ -139,13 +160,15 @@ public: // implementation. virtual CORBA::Boolean _is_equivalent (CORBA::Object_ptr other_obj, - CORBA_Environment &TAO_IN_ENV = CORBA::default_environment ()); + CORBA_Environment &TAO_IN_ENV = + CORBA::default_environment ()); // Try to determine if this object is the same as <other_obj>. This // method relies on the representation of the object reference's // private state. Since that changes easily (when different ORB // protocols are in use) there is no default implementation. - virtual TAO_ObjectKey *_key (CORBA_Environment &TAO_IN_ENV = CORBA::default_environment ()); + virtual TAO_ObjectKey *_key (CORBA_Environment &TAO_IN_ENV = + CORBA::default_environment ()); // Return the object key as an out parameter. Caller should release // return value when finished with it. @@ -269,7 +292,8 @@ public: // destructor virtual void _downcast (CORBA_Object* base_ptr, - CORBA_Environment &TAO_IN_ENV = CORBA::default_environment ()) = 0; + CORBA_Environment &TAO_IN_ENV = + CORBA::default_environment ()) = 0; virtual CORBA_Object* _upcast (void) = 0; virtual void _release (void) = 0; }; |