diff options
Diffstat (limited to 'TAO/tao/operation_details.h')
-rw-r--r-- | TAO/tao/operation_details.h | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/TAO/tao/operation_details.h b/TAO/tao/operation_details.h new file mode 100644 index 00000000000..64ffba59d3a --- /dev/null +++ b/TAO/tao/operation_details.h @@ -0,0 +1,87 @@ +// This may look like C, but it's really -*- C++ -*- +// $Id$ +// ============================================================================ +// +// = LIBRARY +// TAO +// +// = FILENAME +// operation_details.h +// +// = AUTHOR +// Bala Natarajan <bala@cs.wustl.edu> +// ============================================================================ + +#ifndef TAO_OPERATION_DETAILS_H +#define TAO_OPERATION_DETAILS_H + +#include "tao/corbafwd.h" +#include "tao/IOPC.h" + +class TAO_Operation_Details +{ + // = TITLE + // Class with operation details + // + // = DESCRIPTION + // This class stores some of the "operation" details that would be + // required by the invocation classes. this class is in its + // infancy now but I expect this one to grow as we come with + // different varieties of use cases. +public: + TAO_Operation_Details (const char *name, + CORBA::ULong len); + //Ctor + + const char* opname (void) const; + // Operation name + + CORBA::ULong opname_len (void) const; + // Length of the operation name + + void response_flags (CORBA::Octet flags); + // Set the response flags + + CORBA::Octet response_flags (void); + CORBA::Octet response_flags (void) const; + // Get the response flags + + IOP::ServiceContextList &service_info (void); + const IOP::ServiceContextList &service_info (void) const; + // Get the service context list + + void request_id (CORBA::ULong id); + + CORBA::ULong request_id (void); + CORBA::ULong request_id (void) const; + // Get and set for request id + +private: + const char *opname_; + // Name of the operation being invoked. + + CORBA::ULong opname_len_; + // Precalculated length of opname_. + + CORBA::ULong request_id_; + // Request ID of this operation. + + CORBA::Octet response_flags_; + // Response flags + + IOP::ServiceContextList service_info_; + // The ServiceContextList sent to the server side. Only valid + // when sending a request. + + // The first element of header is service context list; + // transactional context would be acquired here using the + // transaction service APIs. Other kinds of context are as yet + // undefined. + // +}; + +#if defined (__ACE_INLINE__) +# include "tao/operation_details.i" +#endif /* __ACE_INLINE__ */ + +#endif /*TAO_OPERATION_DETAILS_H*/ |