summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2005-02-18 20:01:30 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2005-02-18 20:01:30 +0000
commit0388ca8727386627ea6088590d0dbba4a13d1ae9 (patch)
tree2ce7c02968756fbb405e1575706b78c13435acaf
parentf5949bc8e80484bc0ff39aca4a1daf6953a361a1 (diff)
downloadATCD-0388ca8727386627ea6088590d0dbba4a13d1ae9.tar.gz
*** empty log message ***
-rw-r--r--TAO/TAO_IDL/be/be_interface.cpp7
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp3
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp3
-rw-r--r--TAO/tao/GIOP_Message_Generator_Parser_10.cpp2
-rw-r--r--TAO/tao/GIOP_Message_Generator_Parser_12.cpp2
-rw-r--r--TAO/tao/GIOP_Message_Lite.cpp2
-rw-r--r--TAO/tao/PortableServer/Operation_Table.cpp88
-rw-r--r--TAO/tao/PortableServer/Operation_Table.h19
-rw-r--r--TAO/tao/PortableServer/Servant_Base.cpp21
-rw-r--r--TAO/tao/PortableServer/Servant_Base.h10
-rw-r--r--TAO/tao/PortableServer/Upcall_Wrapper.cpp26
-rw-r--r--TAO/tao/PortableServer/Upcall_Wrapper.h1
-rw-r--r--TAO/tao/TAO_Server_Request.cpp3
-rw-r--r--TAO/tao/TAO_Server_Request.h6
-rw-r--r--TAO/tao/TAO_Server_Request.i14
15 files changed, 96 insertions, 111 deletions
diff --git a/TAO/TAO_IDL/be/be_interface.cpp b/TAO/TAO_IDL/be/be_interface.cpp
index 1b0be022336..98bff7d2364 100644
--- a/TAO/TAO_IDL/be/be_interface.cpp
+++ b/TAO/TAO_IDL/be/be_interface.cpp
@@ -1017,10 +1017,9 @@ be_interface::convert_parent_ops (be_visitor *visitor)
void
be_interface::gen_gperf_input_header (TAO_OutStream *os)
{
- *os << "class TAO_operation_db_entry {\n"
- << "public:\n"
- << "\tchar *opname_;" << "\n"
- << "\tTAO_Skeleton skel_ptr_;" << "\n"
+ *os << "struct TAO_operation_db_entry {\n"
+ << "\tchar * opname;" << "\n"
+ << "\tTAO_Skeleton skel_ptr;" << "\n"
<< "};" << "\n"
<< "%%"
<< "\n";
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp
index d9dbdbb0bc0..a78dfe51113 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp
@@ -143,8 +143,7 @@ be_visitor_amh_interface_ss::dispatch_method (be_interface *node)
<< "{" << be_idt_nl
<< "this->asynchronous_upcall_dispatch (" << be_idt << be_idt_nl
<< "req," << be_nl
- << "context," << be_nl
- << "this" << be_nl
+ << "context" << be_nl
<< "ACE_ENV_ARG_PARAMETER" << be_uidt_nl
<< ");" << be_uidt << be_uidt_nl
<< "}";
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp
index 02112fccbc8..352d327cbeb 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp
@@ -608,8 +608,7 @@ be_visitor_interface_ss::dispatch_method (be_interface *node)
<< ")" << be_uidt_nl;
*os << "{" << be_idt_nl;
*os << "this->synchronous_upcall_dispatch (req," << be_nl
- << " servant_upcall," << be_nl
- << " this" << be_nl
+ << " servant_upcall" << be_nl
<< " ACE_ENV_ARG_PARAMETER);"
<< be_uidt_nl;
*os << "}";
diff --git a/TAO/tao/GIOP_Message_Generator_Parser_10.cpp b/TAO/tao/GIOP_Message_Generator_Parser_10.cpp
index dad464a724c..f0c5808e8d4 100644
--- a/TAO/tao/GIOP_Message_Generator_Parser_10.cpp
+++ b/TAO/tao/GIOP_Message_Generator_Parser_10.cpp
@@ -322,7 +322,7 @@ TAO_GIOP_Message_Generator_Parser_10::parse_request_header (
// infrastructure.
// Get the input CDR in the request class
- TAO_InputCDR& input = request.incoming ();
+ TAO_InputCDR& input = *request.incoming ();
IOP::ServiceContextList &service_info =
request.request_service_info ();
diff --git a/TAO/tao/GIOP_Message_Generator_Parser_12.cpp b/TAO/tao/GIOP_Message_Generator_Parser_12.cpp
index 04daba08086..31f4568f7c4 100644
--- a/TAO/tao/GIOP_Message_Generator_Parser_12.cpp
+++ b/TAO/tao/GIOP_Message_Generator_Parser_12.cpp
@@ -253,7 +253,7 @@ TAO_GIOP_Message_Generator_Parser_12::parse_request_header (
)
{
// Get the input CDR in the request class
- TAO_InputCDR& input = request.incoming ();
+ TAO_InputCDR& input = *request.incoming ();
CORBA::Boolean hdr_status = (CORBA::Boolean) input.good_bit ();
diff --git a/TAO/tao/GIOP_Message_Lite.cpp b/TAO/tao/GIOP_Message_Lite.cpp
index 96135ffeaa4..36a5cca76f1 100644
--- a/TAO/tao/GIOP_Message_Lite.cpp
+++ b/TAO/tao/GIOP_Message_Lite.cpp
@@ -1298,7 +1298,7 @@ int
TAO_GIOP_Message_Lite::parse_request_header (TAO_ServerRequest &request)
{
// Get the input CDR in the request class
- TAO_InputCDR& input = request.incoming ();
+ TAO_InputCDR& input = *request.incoming ();
CORBA::Boolean hdr_status = (CORBA::Boolean) input.good_bit ();
diff --git a/TAO/tao/PortableServer/Operation_Table.cpp b/TAO/tao/PortableServer/Operation_Table.cpp
index ac0828652ea..613d26a39d9 100644
--- a/TAO/tao/PortableServer/Operation_Table.cpp
+++ b/TAO/tao/PortableServer/Operation_Table.cpp
@@ -59,10 +59,11 @@ TAO_Operation_Table::~TAO_Operation_Table (void)
}
// constructor
-TAO_Dynamic_Hash_OpTable::TAO_Dynamic_Hash_OpTable (const TAO_operation_db_entry *db,
- CORBA::ULong dbsize,
- CORBA::ULong hashtblsize,
- ACE_Allocator *alloc)
+TAO_Dynamic_Hash_OpTable::TAO_Dynamic_Hash_OpTable (
+ TAO_operation_db_entry const * db,
+ CORBA::ULong dbsize,
+ CORBA::ULong hashtblsize,
+ ACE_Allocator *alloc)
: hash_ (hashtblsize, alloc)
{
// Iterate thru each entry in the database and bind the operation
@@ -70,12 +71,12 @@ TAO_Dynamic_Hash_OpTable::TAO_Dynamic_Hash_OpTable (const TAO_operation_db_entry
for (CORBA::ULong i = 0; i < dbsize; ++i)
{
TAO::Operation_Skeletons s;
- s.skel_ptr_ = db[i].skel_ptr_;
- s.thruPOA_skel_ptr_ = db[i].thruPOA_skel_ptr_;
- s.direct_skel_ptr_ = db[i].direct_skel_ptr_;
+ s.skel_ptr = db[i].skel_ptr;
+ s.thruPOA_skel_ptr = db[i].skel_ptr;
+ s.direct_skel_ptr = db[i].direct_skel_ptr;
// @@ (ASG): what happens if bind fails ???
- if (this->bind (db[i].opname_, s) == -1)
+ if (this->bind (db[i].opname, s) == -1)
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("(%P|%t) %p\n"),
ACE_TEXT ("bind failed")));
@@ -122,7 +123,7 @@ TAO_Dynamic_Hash_OpTable::find (const char *opname,
if (retval != -1)
{
- skel_ptr = s.skel_ptr_;
+ skel_ptr = s.skel_ptr;
}
return retval;
@@ -145,11 +146,8 @@ TAO_Dynamic_Hash_OpTable::find (const char *opname,
{
switch (s)
{
- case TAO::TAO_CS_THRU_POA_STRATEGY:
- skel_ptr = skel.thruPOA_skel_ptr_;
- break;
case TAO::TAO_CS_DIRECT_STRATEGY:
- skel_ptr = skel.direct_skel_ptr_;
+ skel_ptr = skel.direct_skel_ptr;
break;
default:
return -1;
@@ -183,14 +181,14 @@ TAO_Linear_Search_OpTable::find (const char *opname,
{
ACE_FUNCTION_TIMEPROBE (TAO_LINEAR_SEARCH_OPTABLE_FIND_START);
- const TAO_operation_db_entry *entry = lookup (opname);
+ TAO_operation_db_entry const * const entry = lookup (opname);
if (entry == 0)
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("TAO_Linear_Search_Table:find failed\n")),
-1);
// Valid entry. Figure out the skel_ptr.
- skelfunc = entry->skel_ptr_;
+ skelfunc = entry->skel_ptr;
return 0;
}
@@ -204,7 +202,7 @@ TAO_Linear_Search_OpTable::find (const char *opname,
{
ACE_FUNCTION_TIMEPROBE (TAO_LINEAR_SEARCH_OPTABLE_FIND_START);
- const TAO_operation_db_entry *entry = lookup (opname);
+ TAO_operation_db_entry const * const entry = lookup (opname);
if (entry == 0)
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("TAO_Linear_Search_Table:find failed\n")),
@@ -212,11 +210,8 @@ TAO_Linear_Search_OpTable::find (const char *opname,
switch (st)
{
- case TAO::TAO_CS_THRU_POA_STRATEGY:
- skelfunc = entry->thruPOA_skel_ptr_;
- break;
case TAO::TAO_CS_DIRECT_STRATEGY:
- skelfunc = entry->direct_skel_ptr_;
+ skelfunc = entry->direct_skel_ptr;
break;
default:
return -1;
@@ -242,12 +237,12 @@ TAO_Active_Demux_OpTable::TAO_Active_Demux_OpTable (const
for (CORBA::ULong i=0; i < dbsize; i++)
{
TAO::Operation_Skeletons s;
- s.skel_ptr_ = db[i].skel_ptr_;
- s.thruPOA_skel_ptr_ = db[i].thruPOA_skel_ptr_;
- s.direct_skel_ptr_ = db[i].direct_skel_ptr_;
+ s.skel_ptr = db[i].skel_ptr;
+ s.thruPOA_skel_ptr = db[i].skel_ptr;
+ s.direct_skel_ptr = db[i].direct_skel_ptr;
// @@ (ASG): what happens if bind fails ???
- (void) this->bind (db[i].opname_, s);
+ (void) this->bind (db[i].opname, s);
}
}
@@ -257,14 +252,14 @@ TAO_Active_Demux_OpTable::~TAO_Active_Demux_OpTable (void)
}
int
-TAO_Active_Demux_OpTable::bind (const char *opname,
+TAO_Active_Demux_OpTable::bind (const char * opname,
const TAO::Operation_Skeletons skel_ptr)
{
CORBA::ULong i = ACE_OS::atoi (opname);
if (i < this->tablesize_)
{
- if (this->tbl_[i].op_skel_ptr_.skel_ptr_ != 0)
+ if (this->tbl_[i].op_skel_ptr_.skel_ptr != 0)
// overwriting previous one
return 1;
else
@@ -286,7 +281,7 @@ TAO_Active_Demux_OpTable::find (const char *opname,
CORBA::ULong i = ACE_OS::atoi (opname);
ACE_ASSERT (i < this->tablesize_);
- skel_ptr = this->tbl_[i].op_skel_ptr_.skel_ptr_;
+ skel_ptr = this->tbl_[i].op_skel_ptr_.skel_ptr;
return 0; //success
}
@@ -305,11 +300,8 @@ TAO_Active_Demux_OpTable::find (const char *opname,
switch (st)
{
- case TAO::TAO_CS_THRU_POA_STRATEGY:
- skel_ptr = this->tbl_[i].op_skel_ptr_.thruPOA_skel_ptr_;
- break;
case TAO::TAO_CS_DIRECT_STRATEGY:
- skel_ptr = this->tbl_[i].op_skel_ptr_.direct_skel_ptr_;
+ skel_ptr = this->tbl_[i].op_skel_ptr_.direct_skel_ptr;
break;
default:
return -1;
@@ -343,8 +335,8 @@ TAO_Perfect_Hash_OpTable::find (const char *opname,
{
ACE_FUNCTION_TIMEPROBE (TAO_PERFECT_HASH_OPTABLE_FIND_START);
- const TAO_operation_db_entry *entry = lookup (opname,
- length);
+ TAO_operation_db_entry const * const entry = lookup (opname,
+ length);
if (entry == 0)
{
skelfunc = 0; // insure that somebody can't call a wrong function!
@@ -356,7 +348,7 @@ TAO_Perfect_Hash_OpTable::find (const char *opname,
}
// Valid entry. Figure out the skel_ptr.
- skelfunc = entry->skel_ptr_;
+ skelfunc = entry->skel_ptr;
return 0;
}
@@ -369,8 +361,8 @@ TAO_Perfect_Hash_OpTable::find (const char *opname,
{
ACE_FUNCTION_TIMEPROBE (TAO_PERFECT_HASH_OPTABLE_FIND_START);
- const TAO_operation_db_entry *entry = lookup (opname,
- length);
+ TAO_operation_db_entry const * const entry = lookup (opname,
+ length);
if (entry == 0)
{
skelfunc = 0; // insure that somebody can't call a wrong function!
@@ -383,11 +375,8 @@ TAO_Perfect_Hash_OpTable::find (const char *opname,
switch (st)
{
- case TAO::TAO_CS_THRU_POA_STRATEGY:
- skelfunc = entry->thruPOA_skel_ptr_;
- break;
case TAO::TAO_CS_DIRECT_STRATEGY:
- skelfunc = entry->direct_skel_ptr_;
+ skelfunc = entry->direct_skel_ptr;
break;
default:
return -1;
@@ -419,14 +408,14 @@ TAO_Binary_Search_OpTable::find (const char *opname,
{
ACE_FUNCTION_TIMEPROBE (TAO_BINARY_SEARCH_OPTABLE_FIND_START);
- const TAO_operation_db_entry *entry = lookup (opname);
+ TAO_operation_db_entry const * const entry = lookup (opname);
if (entry == 0)
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("TAO_Binary_Search_Table:find failed\n")),
-1);
// Valid entry. Figure out the skel_ptr.
- skelfunc = entry->skel_ptr_;
+ skelfunc = entry->skel_ptr;
return 0;
}
@@ -440,7 +429,7 @@ TAO_Binary_Search_OpTable::find (const char *opname,
{
ACE_FUNCTION_TIMEPROBE (TAO_BINARY_SEARCH_OPTABLE_FIND_START);
- const TAO_operation_db_entry *entry = lookup (opname);
+ TAO_operation_db_entry const * const entry = lookup (opname);
if (entry == 0)
ACE_ERROR_RETURN ((LM_ERROR,
@@ -449,11 +438,8 @@ TAO_Binary_Search_OpTable::find (const char *opname,
switch (st)
{
- case TAO::TAO_CS_THRU_POA_STRATEGY:
- skelfunc = entry->thruPOA_skel_ptr_;
- break;
case TAO::TAO_CS_DIRECT_STRATEGY:
- skelfunc = entry->direct_skel_ptr_;
+ skelfunc = entry->direct_skel_ptr;
break;
default:
return -1;
@@ -518,7 +504,7 @@ TAO_Operation_Table_Factory::~TAO_Operation_Table_Factory (void)
TAO_Operation_Table *
TAO_Operation_Table_Factory::opname_lookup_strategy (void)
{
- TAO_Operation_Table_Parameters *p =
+ TAO_Operation_Table_Parameters * const p =
TAO_OP_TABLE_PARAMETERS::instance ();
return p->concrete_strategy ();
@@ -526,9 +512,9 @@ TAO_Operation_Table_Factory::opname_lookup_strategy (void)
/**************************************************************/
TAO::Operation_Skeletons::Operation_Skeletons (void)
- : skel_ptr_ (0)
- , thruPOA_skel_ptr_ (0)
- , direct_skel_ptr_ (0)
+ : skel_ptr (0)
+ , thruPOA_skel_ptr (0)
+ , direct_skel_ptr (0)
{
}
diff --git a/TAO/tao/PortableServer/Operation_Table.h b/TAO/tao/PortableServer/Operation_Table.h
index 34022c768dd..40e13d5e63a 100644
--- a/TAO/tao/PortableServer/Operation_Table.h
+++ b/TAO/tao/PortableServer/Operation_Table.h
@@ -38,7 +38,6 @@ namespace CORBA
typedef void (*TAO_Skeleton)(
TAO_ServerRequest &,
- void *,
void *
#if !defined (TAO_HAS_EXCEPTIONS) || defined (ACE_ENV_BKWD_COMPAT)
, CORBA::Environment &
@@ -61,18 +60,16 @@ typedef void (*TAO_Collocated_Skeleton)(
* corresponding skeleton. A table of such entries is used to
* initialize the different lookup strategies.
*/
-class TAO_operation_db_entry
+struct TAO_operation_db_entry
{
-public:
/// Operation name
- const char* opname_;
+ char const * const opname;
- /// Remote skeleton pointer
- TAO_Skeleton skel_ptr_;
+ /// Remote/thru-POA skeleton pointer
+ TAO_Skeleton skel_ptr;
/// Collocated skeleton pointers.
- TAO_Collocated_Skeleton thruPOA_skel_ptr_;
- TAO_Collocated_Skeleton direct_skel_ptr_;
+ TAO_Collocated_Skeleton direct_skel_ptr;
};
@@ -92,11 +89,11 @@ namespace TAO
Operation_Skeletons (void);
/// Remote skeleton pointer
- TAO_Skeleton skel_ptr_;
+ TAO_Skeleton skel_ptr;
/// Collocated skeleton pointers.
- TAO_Collocated_Skeleton thruPOA_skel_ptr_;
- TAO_Collocated_Skeleton direct_skel_ptr_;
+ TAO_Skeleton thruPOA_skel_ptr;
+ TAO_Collocated_Skeleton direct_skel_ptr;
};
}
diff --git a/TAO/tao/PortableServer/Servant_Base.cpp b/TAO/tao/PortableServer/Servant_Base.cpp
index 4cb8946e355..3e1448bf165 100644
--- a/TAO/tao/PortableServer/Servant_Base.cpp
+++ b/TAO/tao/PortableServer/Servant_Base.cpp
@@ -189,8 +189,7 @@ TAO_ServantBase::_create_stub (ACE_ENV_SINGLE_ARG_DECL)
}
void TAO_ServantBase::synchronous_upcall_dispatch (TAO_ServerRequest &req,
- void *servant_upcall,
- void *derived_this
+ void *servant_upcall
ACE_ENV_ARG_DECL)
{
TAO_Skeleton skel;
@@ -219,9 +218,10 @@ void TAO_ServantBase::synchronous_upcall_dispatch (TAO_ServerRequest &req,
ACE_TRY
{
- // Invoke the skeleton, it will demarshal the arguments,
- // invoke the right operation on the skeleton class
- // (<derived_this>), and marshal any results.
+ // Invoke the skeleton, it will demarshal the arguments, invoke
+ // the right operation on the skeleton class, and marshal any
+ // results. De/marshaling will only occur in the uncollocated
+ // case.
skel (req,
servant_upcall
ACE_ENV_ARG_PARAMETER);
@@ -254,8 +254,7 @@ void TAO_ServantBase::synchronous_upcall_dispatch (TAO_ServerRequest &req,
}
void TAO_ServantBase::asynchronous_upcall_dispatch (TAO_ServerRequest &req,
- void *servant_upcall,
- void *derived_this
+ void *servant_upcall
ACE_ENV_ARG_DECL)
{
TAO_Skeleton skel;
@@ -281,11 +280,11 @@ void TAO_ServantBase::asynchronous_upcall_dispatch (TAO_ServerRequest &req,
ACE_TRY
{
- // Invoke the skeleton, it will demarshal the arguments,
- // invoke the right operation on the skeleton class
- // (<derived_this>), and marshal any results.
+ // Invoke the skeleton, it will demarshal the arguments, invoke
+ // the right operation on the skeleton class, and marshal any
+ // results. De/marshaling will only occur in the uncollocated
+ // case.
skel (req,
- derived_this,
servant_upcall
ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
diff --git a/TAO/tao/PortableServer/Servant_Base.h b/TAO/tao/PortableServer/Servant_Base.h
index 1c9f555704f..ef84a6f9850 100644
--- a/TAO/tao/PortableServer/Servant_Base.h
+++ b/TAO/tao/PortableServer/Servant_Base.h
@@ -96,11 +96,11 @@ public:
TAO::Collocation_Strategy st,
const unsigned int length = 0);
-protected:
-
/// Get this interface's repository id (TAO specific).
virtual const char *_interface_repository_id (void) const = 0;
+protected:
+
/// Default constructor, only derived classes can be created.
TAO_ServantBase (TAO_Operation_Table * optable = 0);
@@ -111,13 +111,11 @@ protected:
TAO_ServantBase &operator= (const TAO_ServantBase &);
virtual void synchronous_upcall_dispatch (TAO_ServerRequest &req,
- void *servant_upcall,
- void *derived_this
+ void *servant_upcall
ACE_ENV_ARG_DECL);
virtual void asynchronous_upcall_dispatch (TAO_ServerRequest &req,
- void *servant_upcall,
- void *derived_this
+ void *servant_upcall
ACE_ENV_ARG_DECL);
protected:
diff --git a/TAO/tao/PortableServer/Upcall_Wrapper.cpp b/TAO/tao/PortableServer/Upcall_Wrapper.cpp
index f9e496bf89c..ddd627ea913 100644
--- a/TAO/tao/PortableServer/Upcall_Wrapper.cpp
+++ b/TAO/tao/PortableServer/Upcall_Wrapper.cpp
@@ -37,11 +37,14 @@ TAO::Upcall_Wrapper::upcall (TAO_ServerRequest & server_request,
ACE_ENV_ARG_DECL
)
{
- this->pre_upcall (server_request.incoming (),
- args,
- nargs
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
+ if (server_request.incoming ())
+ {
+ this->pre_upcall (*server_request.incoming (),
+ args,
+ nargs
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+ }
#if TAO_HAS_INTERCEPTORS == 1
@@ -149,11 +152,14 @@ TAO::Upcall_Wrapper::upcall (TAO_ServerRequest & server_request,
if (!interceptor_adapter.location_forwarded ())
#endif /* TAO_HAS_INTERCEPTORS == 1 */
{
- this->post_upcall (server_request.outgoing (),
- args,
- nargs
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
+ if (server_request.outgoing ())
+ {
+ this->post_upcall (*server_request.outgoing (),
+ args,
+ nargs
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+ }
}
}
diff --git a/TAO/tao/PortableServer/Upcall_Wrapper.h b/TAO/tao/PortableServer/Upcall_Wrapper.h
index dbdfc801472..19c22bbc3d3 100644
--- a/TAO/tao/PortableServer/Upcall_Wrapper.h
+++ b/TAO/tao/PortableServer/Upcall_Wrapper.h
@@ -82,7 +82,6 @@ namespace TAO
#if TAO_HAS_INTERCEPTORS == 1
, void * servant_upcall
- , PortableServer::ServantBase * servant
, CORBA::TypeCode_ptr const exceptions[]
, size_t nexceptions
#endif /* TAO_HAS_INTERCEPTORS == 1 */
diff --git a/TAO/tao/TAO_Server_Request.cpp b/TAO/tao/TAO_Server_Request.cpp
index 752f079a2c1..3e71c0f4f14 100644
--- a/TAO/tao/TAO_Server_Request.cpp
+++ b/TAO/tao/TAO_Server_Request.cpp
@@ -160,6 +160,9 @@ TAO_ServerRequest::orb (void)
void
TAO_ServerRequest::init_reply (void)
{
+ if (!this->outgoing_)
+ return; // Collocated
+
// Construct our reply generator.
TAO_Pluggable_Reply_Params_Base reply_params;
diff --git a/TAO/tao/TAO_Server_Request.h b/TAO/tao/TAO_Server_Request.h
index 2d2add2adf5..61988689946 100644
--- a/TAO/tao/TAO_Server_Request.h
+++ b/TAO/tao/TAO_Server_Request.h
@@ -118,16 +118,16 @@ public:
CORBA::ORB_ptr orb (void);
/// Return the ORB core pointer member.
- TAO_ORB_Core *orb_core (void);
+ TAO_ORB_Core *orb_core (void) const;
/// Start a Reply message.
void init_reply (void);
/// Retrieve the incoming stream.
- TAO_InputCDR &incoming (void);
+ TAO_InputCDR * incoming (void) const;
/// Retrieve the outgoing stream.
- TAO_OutputCDR &outgoing (void);
+ TAO_OutputCDR * outgoing (void) const;
/// Is the response expected?
CORBA::Boolean response_expected (void) const;
diff --git a/TAO/tao/TAO_Server_Request.i b/TAO/tao/TAO_Server_Request.i
index f87daa86d7b..a3b922fce91 100644
--- a/TAO/tao/TAO_Server_Request.i
+++ b/TAO/tao/TAO_Server_Request.i
@@ -3,21 +3,21 @@
// $Id$
ACE_INLINE TAO_ORB_Core *
-TAO_ServerRequest::orb_core (void)
+TAO_ServerRequest::orb_core (void) const
{
return this->orb_core_;
}
-ACE_INLINE TAO_InputCDR &
-TAO_ServerRequest::incoming (void)
+ACE_INLINE TAO_InputCDR *
+TAO_ServerRequest::incoming (void) const
{
- return *this->incoming_;
+ return this->incoming_;
}
-ACE_INLINE TAO_OutputCDR &
-TAO_ServerRequest::outgoing (void)
+ACE_INLINE TAO_OutputCDR *
+TAO_ServerRequest::outgoing (void) const
{
- return *this->outgoing_;
+ return this->outgoing_;
}
ACE_INLINE const char *