summaryrefslogtreecommitdiff
path: root/TAO/tao/svrrqst.h
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>1998-03-22 06:16:20 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>1998-03-22 06:16:20 +0000
commit3dcad1e906d4453b09891ee7bc55ae7932fe604f (patch)
tree013cd1db3d6a3ad7fc6a076ee28eddde0f43544e /TAO/tao/svrrqst.h
parentaf1e2e53f6381dba517ad4d3d832083dcbff0e73 (diff)
downloadATCD-3dcad1e906d4453b09891ee7bc55ae7932fe604f.tar.gz
*** empty log message ***
Diffstat (limited to 'TAO/tao/svrrqst.h')
-rw-r--r--TAO/tao/svrrqst.h238
1 files changed, 0 insertions, 238 deletions
diff --git a/TAO/tao/svrrqst.h b/TAO/tao/svrrqst.h
deleted file mode 100644
index 901fbd948fe..00000000000
--- a/TAO/tao/svrrqst.h
+++ /dev/null
@@ -1,238 +0,0 @@
-// This may look like C, but it's really -*- C++ -*-
-
-// ============================================================================
-//
-// = LIBRARY
-// TAO
-//
-// = FILENAME
-// svrrqst.h
-//
-// = DESCRIPTION
-//
-// Header file for Win32 C/C++/COM interface to CORBA's Dynamic
-// Server Skeleton Interface's "Server Request" type.
-//
-// = AUTHOR
-// Copyright 1994-1995 by Sun Microsystems, Inc.
-//
-// = VERSION
-// $Id$
-//
-// ============================================================================
-
-#if !defined (TAO_SVRRQST_H)
-#define TAO_SVRRQST_H
-
-class TAO_POA;
-
-struct TAO_Param_Data_Skel
- // = TITLE
- // Description of a single parameter.
- //
- // = DESCRIPTION
- //
- // If value_size is nonzero for OUT, INOUT, or RETURN parameters,
- // it's (a) an indicator that the ORB returns a pointer-to-value
- // for this parameter, and also (b) is the size of the top-level
- // of the value that's returned (e.g. ignoring nested sequence
- // buffers). That is, it moves CPU cycles from runtime -- some
- // calls to tc->size() -- to compile time where they're
- // cheap/free.
- //
- // It _must_ only be set for cases where the ORB allocates the
- // return value, which must then be ORB::free()d ... e.g. where
- // the value is a pointer to data such as a struct, sequence, or
- // union. (The CORBA C++ mapping doesn't require that for all
- // "out" structs; only those of "variable size".) If this value
- // is nonzero, the value passed to do_static_call() must be the address
- // of a pointer.
-
-{
- CORBA::TypeCode_ptr tc;
- // Type of param.
-
- CORBA::ULong mode;
- // Its mode.
-
- CORBA::Boolean own;
- // whether we own it or not
-};
-
-struct TAO_Call_Data_Skel
- // = TITLE
- // Descriptions of operations, as used by the stub interpreter.
- // Only interpretive marshaling/unmarshaling is used, and the
- // stubs don't know what particular on-the-wire protocol is being
- // used.
- //
- // = DESCRIPTION
- // When using C++ exceptions, many C++ compilers will require the
- // use of compiled code throw the exception. As binary standards
- // for exception throwing evolve, it may become practical to
- // interpretively throw exceptions.
-{
- const char *opname;
- // Operation name.
-
- CORBA::Boolean is_roundtrip;
- // !oneway
-
- // When constructing tables of parameters, put them in the same
- // order they appear in the IDL spec: return value, then parameters
- // left to right. Other orders may produce illegal IIOP protocol
- // messages.
-
- CORBA::ULong param_count;
- // # parameters.
-
- const TAO_Param_Data_Skel *params;
- // Their descriptions.
-
-};
-
-class TAO_Export CORBA_ServerRequest : public TAO_IUnknown
- // = TITLE
- // XXX this is currently in an intermediate state; this is not
- // supposed to be IIOP-specific, or to expose quite so many
- // implementation details, but right now it is.
-{
-public:
- virtual void params (CORBA::NVList_ptr list,
- CORBA::Environment &env) = 0;
- // Implementation uses this to provide the ORB with the operation's
- // parameter list ... on return, their values are available; the
- // list fed in has typecodes and (perhap) memory assigned.
-
- virtual void result (CORBA::Any_ptr value,
- CORBA::Environment &env) = 0;
- // Implementation uses this to provide the operation result
- // ... illegal if exception() was called or params() was not called.
- //
- // XXX Implementation should be able to assume response has been
- // sent when this returns, and reclaim memory it allocated.
-
- virtual void exception (CORBA::ExceptionType type,
- CORBA::Any_ptr value,
- CORBA::Environment &env) = 0;
- // Implementation uses this to provide the exception value which is
- // the only result of this particular invocation.
- //
- // XXX Implementation should be able to assume response has been
- // sent when this returns, and reclaim memory it allocated.
-
- // = Get various universal call attributes.
-
- // e.g., who made the call, the target of the call, what ORB and OA
- // that target object uses.
- //
- // NOTE: none of these report exceptions; unavailability of any of
- // this stuff is a catastrophic error since this is all part of the
- // basic CORBA Object Model.
- //
- // XXX should not be not assuming all OAs implement the POA API !!
- virtual CORBA::Principal_ptr caller (void) = 0;
- virtual CORBA::Object_ptr target (void) = 0;
- virtual CORBA::String op_name (void) = 0;
- virtual TAO_POA *oa (void) = 0;
- virtual CORBA::ORB_ptr orb (void) = 0;
-
- // Extensions
- virtual void demarshal (CORBA::Environment &env,
- const TAO_Call_Data_Skel *info,
- ...) = 0;
- virtual void marshal (CORBA::Environment &env,
- const TAO_Call_Data_Skel *info,
- ...) = 0;
- virtual void init_reply (CORBA::Environment &env) = 0;
- // start a Reply message
-
- virtual CDR &incoming (void) = 0;
- // retrieve the incoming stream
-
- virtual CDR &outgoing (void) = 0;
- // retrieve the outgoing stream
-};
-
-class TAO_Export IIOP_ServerRequest : public CORBA_ServerRequest
- // = TITLE
- // Class representing an IIOP ServerRequest object.
-{
-public:
- // Constructor, destructor
-
- IIOP_ServerRequest (CDR *req,
- CDR *resp,
- CORBA::ULong reqid,
- CORBA::ORB_ptr the_orb,
- TAO_POA *the_poa);
-
- virtual ~IIOP_ServerRequest (void);
-
- // = General ServerRequest operations
- void params (CORBA::NVList_ptr list,
- CORBA::Environment &env);
-
- void result (CORBA::Any_ptr value,
- CORBA::Environment &env);
-
- void exception (CORBA::ExceptionType type,
- CORBA::Any_ptr value,
- CORBA::Environment &env);
-
- // = Request attributes
-
- CORBA::String op_name (void);
- CORBA::Principal_ptr caller (void);
- CORBA::Object_ptr target (void);
- CORBA::ORB_ptr orb (void);
- TAO_POA *oa (void);
-
- // Stuff required for COM IUnknown support
-
- ULONG AddRef (void);
- ULONG Release (void);
- TAO_HRESULT QueryInterface (REFIID riid,
- void **ppv);
-
- virtual void demarshal (CORBA::Environment &env,
- const TAO_Call_Data_Skel *info,
- ...);
- virtual void marshal (CORBA::Environment &env,
- const TAO_Call_Data_Skel *info,
- ...);
- virtual void init_reply (CORBA::Environment &env);
- // start a Reply message
-
- virtual CDR &incoming (void);
- // retrieve the incoming stream
-
- virtual CDR &outgoing (void);
- // retrieve the outgoing stream
-
- // private:
- CORBA::String opname_; // Operation name.
- CDR *incoming_; // Incoming stream.
- CDR *outgoing_; // Outgoing stream.
- CORBA::ULong reqid_; // request ID
- CORBA::NVList_ptr params_; // Incoming parameters.
- CORBA::Any_ptr retval_; // Return value.
- CORBA::Any_ptr exception_; // Any exception which might be raised.
- CORBA::ExceptionType ex_type_; // The type of <exception_>.
-
- void release (void) { refcount_--; }
- // Just drop the refcount, don't destroy the object; most of these
- // are stack-allocated.
-
-private:
- u_int refcount_;
- // Number of things hold references to here.
-
- CORBA::ORB_ptr orb_;
- // The ORB with which this server request is associated.
-
- TAO_POA *poa_;
- // The object adapter with whicih this server request is associated.
-};
-
-#endif /* TAO_SVRRQST_H */