diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Interceptor.cpp')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Interceptor.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Interceptor.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Interceptor.cpp index bfbb85102a8..14cd1f6dbec 100644 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Interceptor.cpp +++ b/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Interceptor.cpp @@ -72,7 +72,21 @@ FTRT_ClientORB_Interceptor::send_request ( ACE_Message_Block mb; ACE_CDR::consolidate(&mb, cdr.begin()); +#if (TAO_NO_COPY_OCTET_SEQUENCES == 1) sc.context_data.replace(mb.length(), &mb); +#else + // If the replace method is not available, we will need + // to do the copy manually. First, set the octet sequence length. + CORBA::ULong length = mb.length (); + sc.context_data.length (length); + + // Now copy over each byte. + char* base = mb.data_block ()->base (); + for(CORBA::ULong i = 0; i < length; i++) + { + sc.context_data[i] = base[i]; + } +#endif /* TAO_NO_COPY_OCTET_SEQUENCES == 1 */ ri->add_request_service_context (sc, 0 ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; @@ -109,8 +123,7 @@ FTRT_ClientORB_Interceptor::receive_reply ( const char * buf = - ACE_reinterpret_cast (const char *, - service_context->context_data.get_buffer ()); + reinterpret_cast<const char *> (service_context->context_data.get_buffer ()); TAO_InputCDR cdr (buf, service_context->context_data.length ()); |