Rogue Wave banner
Previous fileTop of DocumentContentsIndex pageNext file
HydraExpress Web Service Reference Guide
Rogue Wave web site:  Home Page  |  Main Documentation Page

rwsf::TransportImp

Group:  Transport


rwsf::TransportImprwsf::MessageHandlerImp rwsf::BodyBase

Local Index

Members

Non-Members

Header File

#include <rw/rwsf/soapworx/transport/TransportImp.h>

Description

rwsf::TransportImp is an abstract base class and the body of the handle represented by rwsf::Transport.

All rwsf transports derive from this class. This class may be used to create a customized transport. To create your own transport, you must derive from this class and implement at least the following four pure virtual functions.

For an example on creating a custom transport, see Section 11.6, "Creating a Transport," in the HydraExpress Web Service Development Guide.

Multithread Safety

To support multithread safety, rwsf::TransportImp provides the invoke implementation for all transports. The method invoke() creates a multithread guard and then calls doInvoke(), which is implemented in the derived classes. This design provides thread safety for all derived classes during asynchronous processing, and allows your application to share transports safely.

If you are not using asynchronous processing and want to avoid using the mutex guard, you may want to reimplement invoke() in your derived classes.

Global Macro

#define rwsf_DEFINE_MESSAGE_HANDLER(NAME) 

Note: This handler macro must be defined if you are creating a customized transport.

Public Constructors

TransportImp();

Public Destructor

virtual 
~TransportImp();

Public Member Functions

virtual void 
doInit(const rwsf::Config& initParams);
rwsf::CString 
getProperty(const rwsf::CString& key) const;
void 
invoke(rwsf::CallInfo& callInfo);
void 
log(const rwsf::CString& message, 
    rwsf::CallInfo::LogLevel l = rwsf::CallInfo::Info);
void 
log(rwsf::CallInfo& callInfo, 
    rwsf::CallInfo::LogLevel l = rwsf::CallInfo::Info);
void 
SetInitParams(const rwsf::Config& initParams);
void 
setProperty(const rwsf::CString& key, 
            const rwsf::CString& value);

Pure Virtual Functions

virtual TransportImp* 
clone() const = 0;
virtual void 
doConnect() = 0;
virtual void 
doDisconnect() = 0;
virtual void 
doInvoke(rwsf::CallInfo& callInfo) = 0;
virtual void 
doSetProperty(const rwsf::CString& key, 
              const rwsf::CString& value);
virtual bool 
isConnected() const = 0;

Protected Members

rwsf::Config initParams_;


Previous fileTop of DocumentContentsIndex pageNext file

©2004-2007 Copyright Quovadx, Inc. All Rights Reserved.
Quovadx and Rogue Wave are registered trademarks of Quovadx, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.