ulxr Namespace Reference


Classes

class  CachedResource
 Abstraction of a resource accessed via xmlrpc or http. More...
class  MethodCall
 Abstraction of a MethodCall on a remote server. More...
class  MethodCallParser
 An xml parser for a MethodCall. More...
class  MethodCallParserBase
 An xml parser for a MethodCall. More...
class  MethodCallParserWb
 An wbxml parser for a MethodCall. More...
class  ConnectorWrapperBase
 Internal helper class, not intended for public use. More...
class  ConnectorWrapper
 Internal helper class template, not intended for public use. More...
class  Connection
 Base class for connection between XML RPC client and server. More...
class  Dispatcher
 XML RPC Dispatcher (rpc server). More...
class  Exception
 Base class for XML RPC exceptions. More...
class  ConnectionException
 Exception due to connection or network problems. More...
class  RuntimeException
 Exception due to runtime errors. More...
class  XmlException
 XML RPC exception due to a faulty xml structure. More...
class  ParameterException
 XML RPC exception due to faulty rpc parameters. More...
class  MethodException
 XML RPC exception due to problems while executing the remote method. More...
class  ExpatWrapper
 A wrapper for expat. More...
class  FileResource
 A resource that caches a file. More...
class  HtmlFormData
 Helper class to deal with form data. More...
class  HtmlFormHandler
 Helper class to deal with html "post" and "get" requests. More...
class  StringProcessor
 Helper class to store the message body in a string. More...
class  FileProcessor
 Helper class to store the message body in a file. More...
class  BodyProcessor
 Helper class to process a chunk of the message body. More...
class  HttpClient
 A simple client for an http connection. More...
class  HttpProtocol
 Runs http as protocol for rpc transmition. More...
class  HttpServer
 A simple server for an http connection. More...
class  MethodHandler
 Wrapper class for the method handlers. More...
class  Log4JSender
 Simple logger support class based on log4j. More...
class  MethodAdder
 Define interface for adding rpc method to a dispatcher. More...
class  MultiThreadRpcServer
 A multi threaded xml rpc server. More...
class  Mutex
 Supporter class for mutual exclusion of processes/threads. More...
class  Protocol
 Base class for the protocol of the rpc transportation. More...
struct  DispatcherData
class  Requester
 XML RPC Requester (rpc client). More...
class  MethodResponse
 Abstraction of a response from a remote server. More...
class  MethodResponseParser
 An xml parser for a MethodResponse. More...
class  MethodResponseParserBase
 An xml parser for a MethodResponse. More...
class  MethodResponseParserWb
 An xml parser for a MethodResponse. More...
class  Signature
 Convenience class to generate larger signature strings for RPC methods: Usage examples:. More...
class  SSLConnection
 Class for ssl connections between XML RPC client and server. More...
class  TcpIpConnection
 Run a generic tcp/ip connection between a client and a server. More...
class  Value
 Abstraction of an XML RPC parameter. More...
class  ValueBase
 Base class of XML RPC parameters. More...
class  Void
 Implementation of a void value. More...
class  Boolean
 Implementation of a boolean value. More...
class  Integer
 Implementation of a integer value. More...
class  Double
 Implementation of a floating point value. More...
class  Array
 Implementation of a parameter collection. More...
class  Struct
 Implementation of a "named" collection. More...
class  RpcString
 Implementation of a string value. More...
class  DateTime
 Implementation of a date and time value. More...
class  Base64
 Implementation of a base64 value. More...
class  ValueParser
 Base class for XML RPC parsing. More...
class  ValueParserBase
 Base class for WBXML RPC parsing. More...
class  ValueParserWb
 Base class for WBXML RPC parsing. More...
class  VirtualResource
 A resource that only exists in memory. More...
class  WbXmlParser
 Base class for binary XML parsing. More...
class  XmlParser
 Base class for XML parsing with expat. More...
class  XmlParserBase
 Base class for XML parsing. More...

Namespaces

namespace  hidden

Typedefs

typedef std::basic_string<
wchar_t > 
Cpp16BitString
typedef std::string Cpp8BitString
typedef std::wostringstream CppOStringStream
typedef Cpp16BitString CppString
typedef wchar_t Char
typedef MethodAdder::StaticMethodCall_t MethodAdder_StaticMethodCall_t

Enumerations

enum  ValueType {
  RpcInteger, RpcDouble, RpcBoolean, RpcStrType,
  RpcDateTime, RpcBase64, RpcArray, RpcStruct,
  RpcVoid
}
enum  WbStates {
  stNone, stVersion, stPubId, stCharset,
  stStrTableLen, stBody, stStr_I
}

Functions

void getVersion (int &major, int &minor, int &patch, bool &debug, CppString &info)
 Gets the various parts of the version number.
Cpp16BitString getUnicode (const std::string &latin1)
 Converts a string from latin1 to unicode.
std::string getLatin1 (const Cpp16BitString &uni)
 Converts a string from unicode to latin1.
CppString stripWS (const CppString &s)
 Removes trailing and leading white space.
CppString encodeBase64 (const CppString &normstr, bool add_crlf=true)
 Converts binary data into base64 encoding.
CppString decodeBase64 (const CppString &b64str, bool errcheck=true)
 Converts a base64 encoded string into raw data.
CppString xmlEscape (const CppString &str, bool supp=false)
 Replaces dangerous sequences in xml strings.
CppString charRefDezCont (ULXR_PCHAR("0123456789"))
CppString charRefHexCont (ULXR_PCHAR("0123456789aAbBcCdDeEfF"))
static void resolveCharRef (const CppString &ins, unsigned &pos, CppString &outs)
CppString xmlUnEscape (const CppString &str)
 Re-converts strings after being parsed.
static unsigned decodeUtf8Group (const Cpp8BitString &val, unsigned &i)
Cpp8BitString utf8ToAscii (const Cpp8BitString &val)
 Returns a string in utf8 as 8bit ascii.
Cpp16BitString utf8ToUnicode (const Cpp8BitString &val)
 Returns a string in utf8 as 16bit Unicode.
Cpp8BitString unicodeToUtf8 (const Cpp16BitString &val)
 Returns a string in 16bit Unicode as utf8.
Cpp8BitString asciiToUtf8 (const Cpp8BitString &val)
 Returns a string in 8bit extended ascii as utf8.
Cpp8BitString unicodeToUtf8 (const unsigned c)
 Returns a character in 16bit Unicode as utf8.
Cpp8BitString convertEncoding (const Cpp8BitString &val, const char *to_encoding, const char *from_encoding)
Cpp8BitString convertEncoding (const Cpp8BitString &val, iconv_t con)
 Returns a string converted from and to a user encoding.
Cpp8BitString encodingToUtf8 (const Cpp8BitString &val, const char *encoding)
 Returns a string in a user encoding as utf8.
Cpp8BitString utf8ToEncoding (const Cpp8BitString &val, const char *encoding)
 Returns a string in utf8 as user encoding.
void makeLower (CppString &str)
 Converts string into lowercase.
void makeUpper (CppString &str)
 Converts string into uppercase.
std::string getWbXmlExtInt (long int i)
 Converts an integer in a wbxml multibyte uint32 sequence.
long int wbXmlToInt (std::string &inp)
 Converts a wbxml multibyte sequence to an integer.
std::string getWbXmlString (const CppString &inp)
 Converts a string in a wbxml inline string sequence.
CppString wbXmlToString (std::string &inp)
 Converts a wbxml inline string sequence to a CppString.
CppString binaryDebugOutput (const std::string &s)
 Converts a binary string into visible output in hex.
int getRand ()
 Returns a random number.
CppString getLastErrorString (unsigned errornum)
 Returns a readable string about the cause of the last system error.
Log4JSendergetLogger4J ()
 Gets a pointer to the global log4j object.
void intializeLog4J (const std::string &appname, const CppString &loghost=L"localhost")
 Initializes the global log4j object.
void enableXmlPrettyPrint (bool pretty)
 Enables pretty-print of xml repsponses for better readability.
CppString getXmlLinefeed ()
 Gets a string with the line feed for an xml response.
CppString getXmlIndent (unsigned indent)
 Gets a string with spaces for an indentation in an xml response.
Cpp16BitString getUnicode (const Cpp16BitString &uni)
 Converts a string from unicode to unicode.
std::string getLatin1 (const std::string &latin1)
 Converts a string from latin1 to latin1.
void free_dynamic_method (const Dispatcher::MethodCallMap::value_type &method)
template<class T>
MethodHandlermake_methodhandler (T &w, typename hidden::MethodHandlerWrapper< T >::PMF pmf)
 Specialisation of template to achive uniform look in handler creation.
MethodHandlermake_methodhandler (hidden::StaticMethodHandler ptr)
 Specialisation of template to achive uniform look in handler creation.
template<class T>
hidden::MethodWrapperBasemake_method (T &w, typename hidden::MethodWrapper< T >::PMF pmf)
 Creates a wrapper object to a method of a worker class.
MethodAdder_StaticMethodCall_t make_method (MethodAdder_StaticMethodCall_t ptr)
 Specialisation of template to achive uniform look in responder creation.
void * dispatchThreaded (DispatcherData *data)
template<class T>
hidden::ReceiverWrapperBasemake_receiver (T &w, typename hidden::ReceiverWrapper< T >::PMF pmf)
 Creates a wrapper object to a method of a worker class.
hidden::StaticReceiver_t make_receiver (hidden::StaticReceiver_t ptr)
 Specialisation of template to achive uniform look in receiver creation.
static int password_cb (char *buf, int num, int, void *userdata)
static CppString padded (unsigned num)
Struct::Member operator<< (const CppString &str, const Value &t)
Struct::Member make_member (const CppString &str, const Value &t)
Structoperator<< (Struct &st, const Struct::Member &k)
template<class T>
Arrayoperator<< (Array &array, const T &t)
 Helper function template to "stream" an item into an array.

Variables

static ulxr::Char b64_encodetable [64]
static int b64_decodetable [256]
Mutex randMutex
 help to protect non-reentrant std::rand()
Mutex strerrorMutex
 help to protect non-reentrant std::strerror()
Mutex ctimeMutex
 help to protect non-reentrant std::ctime()
Mutex localtimeMutex
 help to protect non-reentrant std::localtime()
Mutex gethostbynameMutex
 help to protect non-reentrant std::gethostbyname()
Mutex gethostbyaddrMutex
 help to protect non-reentrant std::gethostbyaddr()
std::auto_ptr< TcpIpConnectionl4jconn
std::auto_ptr< Log4JSenderl4j
bool pretty_xml = false
const int NotWellformedError = -32700
const int UnsupportedEncodingError = -32701
const int InvalidCharacterError = -32702
const int NotConformingError = -32600
const int MethodNotFoundError = -32601
const int InvalidMethodParameterError = -32602
const int InternalXmlRpcError = -32603
const int ApplicationError = -32500
const int SystemError = -32400
const int TransportError = -32300
Mutex strerrorMutex
 help to protect non-reentrant std::strerror()
Mutex ctimeMutex
 help to protect non-reentrant std::ctime()
Mutex localtimeMutex
 help to protect non-reentrant std::localtime()
Mutex gethostbynameMutex
 help to protect non-reentrant std::gethostbyname()
Mutex gethostbyaddrMutex
 help to protect non-reentrant std::gethostbyaddr()
Mutex randMutex
 help to protect non-reentrant std::rand()


Typedef Documentation

typedef wchar_t ulxr::Char

Definition at line 411 of file ulxmlrpcpp.h.

typedef std::basic_string<wchar_t> ulxr::Cpp16BitString

Definition at line 172 of file ulxmlrpcpp.h.

typedef std::string ulxr::Cpp8BitString

Definition at line 179 of file ulxmlrpcpp.h.

typedef std::wostringstream ulxr::CppOStringStream

Definition at line 409 of file ulxmlrpcpp.h.

typedef Cpp16BitString ulxr::CppString

Definition at line 410 of file ulxmlrpcpp.h.

typedef MethodAdder::StaticMethodCall_t ulxr::MethodAdder_StaticMethodCall_t

Definition at line 269 of file ulxr_method_adder.h.


Enumeration Type Documentation

enum ulxr::ValueType

Enumerator:
RpcInteger 
RpcDouble 
RpcBoolean 
RpcStrType 
RpcDateTime 
RpcBase64 
RpcArray 
RpcStruct 
RpcVoid 

Definition at line 46 of file ulxr_value.h.

enum ulxr::WbStates

Enumerator:
stNone 
stVersion 
stPubId 
stCharset 
stStrTableLen 
stBody 
stStr_I 

Definition at line 65 of file ulxr_wbxmlparse.cpp.


Function Documentation

CppString ulxr::binaryDebugOutput ( const std::string &  s  ) 

Converts a binary string into visible output in hex.

Parameters:
s input data in binary
Returns:
hex output

Definition at line 1115 of file ulxmlrpcpp.cpp.

References ulxr::HtmlFormHandler::makeHexNumber(), and ULXR_PCHAR.

Referenced by ulxr::HttpProtocol::sendRpcCall(), ulxr::HttpProtocol::sendRpcResponse(), and ulxr::Requester::waitForResponse().

CppString ulxr::charRefDezCont ( ULXR_PCHAR("0123456789")   ) 

Referenced by resolveCharRef().

CppString ulxr::charRefHexCont ( ULXR_PCHAR("0123456789aAbBcCdDeEfF")   ) 

Referenced by resolveCharRef().

Cpp8BitString ulxr::convertEncoding ( const Cpp8BitString &  val,
const char *  to_encoding,
const char *  from_encoding 
)

Definition at line 909 of file ulxmlrpcpp.cpp.

References ulxr_i18n, ULXR_PCHAR, and UnsupportedEncodingError.

Referenced by encodingToUtf8(), and utf8ToEncoding().

CppString ulxr::decodeBase64 ( const CppString &  b64str,
bool  errcheck = true 
)

Converts a base64 encoded string into raw data.

Parameters:
b64str encoded string
errcheck true: throw exception in cas of error
Returns:
the raw data

Definition at line 335 of file ulxmlrpcpp.cpp.

References ApplicationError, b64_decodetable, ULXR_CHAR, ULXR_GET_STRING, ulxr_i18n, ULXR_PCHAR, and ULXR_UNICODE.

Referenced by ulxr::Base64::getString(), and ulxr::HttpProtocol::getUserPass().

static unsigned ulxr::decodeUtf8Group ( const Cpp8BitString &  val,
unsigned &  i 
) [static]

Definition at line 663 of file ulxmlrpcpp.cpp.

References ApplicationError, ulxr_i18n, ULXR_I18N_NOOP, and ULXR_PCHAR.

Referenced by utf8ToAscii(), and utf8ToUnicode().

void* ulxr::dispatchThreaded ( DispatcherData *  data  ) 

Definition at line 296 of file ulxr_requester.cpp.

References ulxr::Requester::decPending(), ulxr::Requester::forwardException(), ulxr::hidden::Receiver_t::free(), ulxr::Requester::incPending(), ulxr::Requester::isWbXml(), ulxr::DispatcherData::prot, ulxr::hidden::Receiver_t::receive(), ulxr::DispatcherData::recv, ulxr::DispatcherData::requester, ULXR_PCHAR, ULXR_TRACE, and ulxr::Requester::waitForResponse().

void ulxr::enableXmlPrettyPrint ( bool  pretty  ) 

Enables pretty-print of xml repsponses for better readability.

Parameters:
pretty true: add spaces and linefeeds for better readability

Definition at line 1200 of file ulxmlrpcpp.cpp.

References pretty_xml.

Referenced by ulxr::Dispatcher::xml_pretty_print().

CppString ulxr::encodeBase64 ( const CppString &  normstr,
bool  add_crlf = true 
)

Converts binary data into base64 encoding.

Parameters:
normstr the raw data
add_crlf add cr/lf after each 78 characters to limit line length
Returns:
encoded string

Definition at line 202 of file ulxmlrpcpp.cpp.

References ApplicationError, b64_encodetable, ulxr_i18n, and ULXR_PCHAR.

Referenced by ulxr::HttpProtocol::sendRequestHeader(), ulxr::HttpProtocol::setMessageAuthentication(), ulxr::Base64::setString(), and ulxr::HttpProtocol::tryConnect().

void ulxr::free_dynamic_method ( const Dispatcher::MethodCallMap::value_type &  method  ) 

Definition at line 189 of file ulxr_dispatcher.cpp.

References ulxr::MethodAdder::CallDynamic, ULXR_PCHAR, and ULXR_TRACE.

Referenced by ulxr::Dispatcher::removeMethod().

CppString ulxr::getLastErrorString ( unsigned  errornum  ) 

Returns a readable string about the cause of the last system error.

Simply calls nonreentrant std::strerror() in a thread safe mode.

Parameters:
errornum error number taken from errno
Returns:
error message

Definition at line 1155 of file ulxmlrpcpp.cpp.

References ULXR_GET_STRING.

Referenced by funtik::MultiProcessRpcServer::blockSigchld(), ulxr::Connection::getErrorString(), funtik::SSLConnectionException::SSLConnectionException(), ulxr::Requester::startDispatch(), funtik::MultiProcessRpcServer::storeFuncResult(), funtik::MultiProcessRpcServer::unblockSigchld(), funtik::MultiProcessRpcServer::waitChildren(), and funtik::MultiProcessRpcServer::waitConnection().

Log4JSender * ulxr::getLogger4J (  ) 

Gets a pointer to the global log4j object.

Returns:
0 if not avaliable

!= 0 pointer to object

Definition at line 1173 of file ulxmlrpcpp.cpp.

References l4j.

int ulxr::getRand (  ) 

Returns a random number.

Simply calls nonreentrant std::rand() in a thread safe mode.

Returns:
random number

Definition at line 1145 of file ulxmlrpcpp.cpp.

References randMutex.

void ulxr::getVersion ( int &  major,
int &  minor,
int &  patch,
bool &  debug,
CppString &  info 
)

Gets the various parts of the version number.

Parameters:
major major part
minor minor part
patch patch counter
debug true: compiled with DEBUG
info some human readable information

Definition at line 98 of file ulxmlrpcpp.cpp.

References getLatin1(), ulxr_atoi, ULXR_CHAR, ULXR_GET_STRING, and ULXR_VERSION.

std::string ulxr::getWbXmlExtInt ( long int  i  ) 

Converts an integer in a wbxml multibyte uint32 sequence.

Parameters:
i value to convert
Returns:
wbxml sequence

Definition at line 997 of file ulxmlrpcpp.cpp.

References ulxr::WbXmlParser::wbxml_EXT_T_0.

std::string ulxr::getWbXmlString ( const CppString &  inp  ) 

Converts a string in a wbxml inline string sequence.

Parameters:
inp inline string
Returns:
wbxml sequence

Definition at line 1065 of file ulxmlrpcpp.cpp.

References unicodeToUtf8(), and ulxr::WbXmlParser::wbxml_STR_I.

Referenced by ulxr::Struct::getWbXml(), ulxr::DateTime::getWbXml(), ulxr::Base64::getWbXml(), ulxr::RpcString::getWbXml(), ulxr::Double::getWbXml(), ulxr::Integer::getWbXml(), ulxr::Boolean::getWbXml(), and ulxr::MethodCall::getWbXml().

CppString ulxr::getXmlIndent ( unsigned  indent  ) 

Gets a string with spaces for an indentation in an xml response.

Parameters:
indent number of spaces to indent
Returns:
empty if pretty-print disabled

string with indent spaces

Definition at line 1219 of file ulxmlrpcpp.cpp.

References pretty_xml, and ULXR_PCHAR.

Referenced by ulxr::Struct::getXml(), ulxr::Array::getXml(), ulxr::DateTime::getXml(), ulxr::Base64::getXml(), ulxr::RpcString::getXml(), ulxr::Double::getXml(), ulxr::Integer::getXml(), ulxr::Boolean::getXml(), ulxr::MethodResponse::getXml(), and ulxr::MethodCall::getXml().

CppString ulxr::getXmlLinefeed (  ) 

Gets a string with the line feed for an xml response.

Returns:
empty if pretty-print disabled

string for a regular line feed otherwise

Definition at line 1206 of file ulxmlrpcpp.cpp.

References pretty_xml, and ULXR_PCHAR.

Referenced by ulxr::Struct::getXml(), ulxr::Array::getXml(), ulxr::MethodResponse::getXml(), and ulxr::MethodCall::getXml().

void ulxr::intializeLog4J ( const std::string &  appname,
const CppString &  loghost = L"localhost" 
)

Initializes the global log4j object.

Parameters:
appname application name. May directly come from argv[0] with full path.
loghost Name of log host. Port is always 4448.

Definition at line 1179 of file ulxmlrpcpp.cpp.

References l4j, l4jconn, and ULXR_GET_STRING.

Struct::Member ulxr::make_member ( const CppString &  str,
const Value &  t 
)

Definition at line 1593 of file ulxr_value.cpp.

References ULXR_PCHAR, and ULXR_TRACE.

MethodAdder_StaticMethodCall_t ulxr::make_method ( MethodAdder_StaticMethodCall_t  ptr  )  [inline]

Specialisation of template to achive uniform look in responder creation.

Parameters:
ptr pointer to worker function
Returns:
pointer to the function

Definition at line 276 of file ulxr_method_adder.h.

template<class T>
hidden::MethodWrapperBase* ulxr::make_method ( T &  w,
typename hidden::MethodWrapper< T >::PMF  pmf 
) [inline]

Creates a wrapper object to a method of a worker class.

new ulxr::hidden::MethodWrapper<classname> (&obj, &classname::method),

Parameters:
w reference to worker class
pmf adress of member function in worker class
Returns:
pointer to wrapper object

Definition at line 253 of file ulxr_method_adder.h.

MethodHandler* ulxr::make_methodhandler ( hidden::StaticMethodHandler  ptr  )  [inline]

Specialisation of template to achive uniform look in handler creation.

Parameters:
ptr pointer to handler function
Returns:
handler object

Definition at line 572 of file ulxr_http_server.h.

template<class T>
MethodHandler* ulxr::make_methodhandler ( T &  w,
typename hidden::MethodHandlerWrapper< T >::PMF  pmf 
) [inline]

Specialisation of template to achive uniform look in handler creation.

Parameters:
w reference to handler object
pmf pointer to member function
Returns:
handler object

Definition at line 551 of file ulxr_http_server.h.

hidden::StaticReceiver_t ulxr::make_receiver ( hidden::StaticReceiver_t  ptr  )  [inline]

Specialisation of template to achive uniform look in receiver creation.

Parameters:
ptr pointer to receiver function
Returns:
pointer to the function

Definition at line 366 of file ulxr_requester.h.

template<class T>
hidden::ReceiverWrapperBase* ulxr::make_receiver ( T &  w,
typename hidden::ReceiverWrapper< T >::PMF  pmf 
) [inline]

Creates a wrapper object to a method of a worker class.

Parameters:
w reference to worker class
pmf adress of member function in worker class
Returns:
pointer to wrapper object

Definition at line 345 of file ulxr_requester.h.

void ulxr::makeLower ( CppString &  str  ) 

Converts string into lowercase.

Since the C-library is used this is only valid for ascii characters

Parameters:
str pointer to the string to convert

Definition at line 977 of file ulxmlrpcpp.cpp.

References ulxr_tolower, and ULXR_UNICODE.

Referenced by ulxr::HttpProtocol::determineClosing(), ulxr::HttpProtocol::getHttpProperty(), ulxr::HttpProtocol::getUserPass(), ulxr::HttpServer::guessMimeType(), ulxr::HttpProtocol::hasClosingProperty(), ulxr::HttpProtocol::hasHttpProperty(), and ulxr::HttpProtocol::parseHeaderLine().

void ulxr::makeUpper ( CppString &  str  ) 

Converts string into uppercase.

Since the C-library is used this is only valid for ascii characters

Parameters:
str pointer to the string to convert

Definition at line 987 of file ulxmlrpcpp.cpp.

References ulxr_toupper, and ULXR_UNICODE.

Referenced by ulxr::HttpServer::addHttpHandler(), and ulxr::HttpServer::interpreteHttpHeader().

template<class T>
Array& ulxr::operator<< ( Array &  array,
const T &  t 
)

Helper function template to "stream" an item into an array.

Definition at line 911 of file ulxr_value.h.

References ulxr::Array::addItem().

Struct & ulxr::operator<< ( Struct &  st,
const Struct::Member &  k 
)

Definition at line 1600 of file ulxr_value.cpp.

References ulxr::Struct::addMember(), ulxr::Struct::Member::getName(), ulxr::Struct::Member::getValue(), ULXR_PCHAR, and ULXR_TRACE.

Struct::Member ulxr::operator<< ( const CppString &  str,
const Value &  t 
)

Definition at line 1585 of file ulxr_value.cpp.

References ULXR_TRACE.

static CppString ulxr::@59::padded ( unsigned  num  )  [static]

Definition at line 1226 of file ulxr_value.cpp.

References ulxr::HtmlFormHandler::makeNumber().

Referenced by ulxr::DateTime::setDateTime().

static int ulxr::password_cb ( char *  buf,
int  num,
int  ,
void *  userdata 
) [static]

Definition at line 54 of file ulxr_ssl_connection.cpp.

References ulxr::SSLConnection::getPassword(), ULXR_PCHAR, and ULXR_TRACE.

Referenced by ulxr::SSLConnection::initializeCTX().

static void ulxr::resolveCharRef ( const CppString &  ins,
unsigned &  pos,
CppString &  outs 
) [static]

Definition at line 502 of file ulxmlrpcpp.cpp.

References charRefDezCont(), charRefHexCont(), InvalidCharacterError, ULXR_CHAR, ulxr_i18n, ulxr_isdigit, ULXR_PCHAR, ulxr_toupper, ULXR_UNICODE, and unicodeToUtf8().

Referenced by xmlUnEscape().

CppString ulxr::stripWS ( const CppString &  s  ) 

Removes trailing and leading white space.

Parameters:
s input string
Returns:
output string

Definition at line 175 of file ulxmlrpcpp.cpp.

References ulxr_isspace.

Referenced by ulxr::Protocol::addAuthentication(), ulxr::HttpProtocol::addOneTimeHttpField(), ulxr::HttpProtocol::getUserPass(), ulxr::HttpServer::interpreteHttpHeader(), ulxr::HttpProtocol::parseHeaderLine(), ulxr::HttpProtocol::responseStatus(), ulxr::HttpProtocol::setCookie(), and ulxr::HttpProtocol::splitHeaderLine().

long int ulxr::wbXmlToInt ( std::string &  inp  ) 

Converts a wbxml multibyte sequence to an integer.

The start of an inline multibyte sequence is expected in the input. This sequence is transformed and removed from the input.

Parameters:
inp reference to multibyte sequnce
Returns:
wbxml sequence

Definition at line 1033 of file ulxmlrpcpp.cpp.

References ApplicationError, ulxr_i18n, ULXR_PCHAR, and ulxr::WbXmlParser::wbxml_EXT_T_0.

CppString ulxr::wbXmlToString ( std::string &  inp  ) 

Converts a wbxml inline string sequence to a CppString.

The start of an inline string sequence is expected in the input. This sequence is transformed and removed from the input.

Parameters:
inp reference to inline string
Returns:
wbxml sequence

Definition at line 1079 of file ulxmlrpcpp.cpp.

References ApplicationError, ulxr_i18n, ULXR_PCHAR, utf8ToUnicode(), and ulxr::WbXmlParser::wbxml_STR_I.

CppString ulxr::xmlEscape ( const CppString &  str,
bool  supp = false 
)

Replaces dangerous sequences in xml strings.

Several characters have a special meaning in xml and must be converted to not disturb parsing.

Parameters:
str the string to escape
supp supress non-unicode characterss like #0 or 0x0c
Returns:
the converted string

Definition at line 429 of file ulxmlrpcpp.cpp.

References ULXR_CHAR, and ULXR_PCHAR.

Referenced by ulxr::RpcString::getXml(), ulxr::HtmlFormHandler::makeText(), and ulxr::Log4JSender::send().

CppString ulxr::xmlUnEscape ( const CppString &  str  ) 

Re-converts strings after being parsed.

Parameters:
str the string to escape
Returns:
the converted string

Definition at line 574 of file ulxmlrpcpp.cpp.

References InvalidCharacterError, resolveCharRef(), STRNCMP, ULXR_CHAR, ulxr_i18n, and ULXR_PCHAR.


Variable Documentation

const int ulxr::ApplicationError = -32500

Definition at line 403 of file ulxmlrpcpp.h.

Referenced by ulxr::TcpIpConnection::accept(), ulxr::HttpServer::addHttpHandler(), ulxr::Dispatcher::addMethodDescriptor(), ulxr::HtmlFormHandler::addSubResource(), ulxr::HttpServer::checkValidPath(), decodeBase64(), decodeUtf8Group(), ulxr::Dispatcher::dispatchCall(), encodeBase64(), ulxr::HttpServer::executeHttpPOST(), ulxr::HtmlFormData::getElement(), ulxr::Struct::getMember(), ulxr::Dispatcher::getMethod(), ulxr::Double::getWbXml(), ulxr::Integer::getWbXml(), ulxr::Double::getXml(), ulxr::Integer::getXml(), ulxr::TcpIpConnection::open(), ulxr::Connection::read(), ulxr::HttpServer::runPicoHttpd(), ulxr::MultiThreadRpcServer::serverLoop(), ulxr::ValueParserWb::testEndElement(), ulxr::ValueParser::testEndElement(), ulxr::MethodResponseParserWb::testEndElement(), ulxr::MethodResponseParser::testEndElement(), ulxr::MethodCallParserWb::testEndElement(), ulxr::MethodCallParser::testEndElement(), unicodeToUtf8(), utf8ToAscii(), utf8ToUnicode(), wbXmlToInt(), wbXmlToString(), and ulxr::Connection::write().

int ulxr::b64_decodetable[256] [static]

Definition at line 298 of file ulxmlrpcpp.cpp.

Referenced by decodeBase64().

ulxr::Char ulxr::b64_encodetable[64] [static]

Initial value:

{
 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
 'w', 'x', 'y', 'z', '0', '1', '2', '3',
 '4', '5', '6', '7', '8', '9', '+', '/'
}

Definition at line 189 of file ulxmlrpcpp.cpp.

Referenced by encodeBase64().

Mutex ulxr::ctimeMutex

help to protect non-reentrant std::ctime()

Definition at line 1138 of file ulxmlrpcpp.cpp.

Referenced by ulxr::HttpProtocol::getDateStr().

Mutex ulxr::ctimeMutex

help to protect non-reentrant std::ctime()

Definition at line 1138 of file ulxmlrpcpp.cpp.

Referenced by ulxr::HttpProtocol::getDateStr().

Mutex ulxr::gethostbyaddrMutex

help to protect non-reentrant std::gethostbyaddr()

Definition at line 1141 of file ulxmlrpcpp.cpp.

Referenced by ulxr::TcpIpConnection::accept(), and ulxr::TcpIpConnection::open().

Mutex ulxr::gethostbyaddrMutex

help to protect non-reentrant std::gethostbyaddr()

Definition at line 1141 of file ulxmlrpcpp.cpp.

Referenced by ulxr::TcpIpConnection::accept(), and ulxr::TcpIpConnection::open().

Mutex ulxr::gethostbynameMutex

help to protect non-reentrant std::gethostbyname()

Definition at line 1140 of file ulxmlrpcpp.cpp.

Referenced by ulxr::TcpIpConnection::asciiToInAddr(), ulxr::TcpIpConnection::getHostAdress(), and ulxr::TcpIpConnection::init().

Mutex ulxr::gethostbynameMutex

help to protect non-reentrant std::gethostbyname()

Definition at line 1140 of file ulxmlrpcpp.cpp.

Referenced by ulxr::TcpIpConnection::asciiToInAddr(), ulxr::TcpIpConnection::getHostAdress(), and ulxr::TcpIpConnection::init().

const int ulxr::InternalXmlRpcError = -32603

Definition at line 400 of file ulxmlrpcpp.h.

const int ulxr::InvalidCharacterError = -32702

Definition at line 394 of file ulxmlrpcpp.h.

Referenced by ulxr::ExpatWrapper::mapToFaultCode(), resolveCharRef(), and xmlUnEscape().

const int ulxr::InvalidMethodParameterError = -32602

Definition at line 399 of file ulxmlrpcpp.h.

Referenced by ulxr::MethodCall::getParam(), ulxr::Dispatcher::system_getCapabilities(), ulxr::Dispatcher::system_listMethods(), ulxr::Dispatcher::system_methodHelp(), ulxr::Dispatcher::system_methodSignature(), and ulxr::Dispatcher::xml_pretty_print().

std::auto_ptr<Log4JSender> ulxr::l4j [static]

Definition at line 1168 of file ulxmlrpcpp.cpp.

Referenced by getLogger4J(), and intializeLog4J().

std::auto_ptr<TcpIpConnection> ulxr::l4jconn [static]

Definition at line 1167 of file ulxmlrpcpp.cpp.

Referenced by intializeLog4J().

Mutex ulxr::localtimeMutex

help to protect non-reentrant std::localtime()

Definition at line 1139 of file ulxmlrpcpp.cpp.

Referenced by ulxr::DateTime::setDateTime().

Mutex ulxr::localtimeMutex

help to protect non-reentrant std::localtime()

Definition at line 1139 of file ulxmlrpcpp.cpp.

Referenced by ulxr::DateTime::setDateTime().

const int ulxr::MethodNotFoundError = -32601

Definition at line 398 of file ulxmlrpcpp.h.

Referenced by ulxr::Dispatcher::dispatchCallLoc().

const int ulxr::NotConformingError = -32600

Definition at line 397 of file ulxmlrpcpp.h.

Referenced by ulxr::HttpProtocol::determineContentLength(), ulxr::HttpServer::executeHttpRPC(), ulxr::HttpServer::executeUnknownHttpMethod(), ulxr::HttpProtocol::getHttpProperty(), funtik::MultiProcessRpcServer::handleXmlRequest(), ulxr::Dispatcher::waitForCall(), ulxr::Requester::waitForResponse(), and ulxr::HttpProtocol::writeChunk().

const int ulxr::NotWellformedError = -32700

Definition at line 392 of file ulxmlrpcpp.h.

Referenced by ulxr::XmlParser::assertEndElement(), ulxr::ExpatWrapper::mapToFaultCode(), ulxr::WbXmlParser::parse(), ulxr::XmlParser::testEndElement(), ulxr::WbXmlParser::testEndElement(), ulxr::XmlParser::testStartElement(), and ulxr::WbXmlParser::testStartElement().

bool ulxr::pretty_xml = false [static]

Definition at line 1196 of file ulxmlrpcpp.cpp.

Referenced by enableXmlPrettyPrint(), getXmlIndent(), and getXmlLinefeed().

Mutex ulxr::randMutex

help to protect non-reentrant std::rand()

Definition at line 1136 of file ulxmlrpcpp.cpp.

Referenced by getRand().

Mutex ulxr::randMutex

help to protect non-reentrant std::rand()

Definition at line 1136 of file ulxmlrpcpp.cpp.

Referenced by getRand().

Mutex ulxr::strerrorMutex

help to protect non-reentrant std::strerror()

Definition at line 1137 of file ulxmlrpcpp.cpp.

Mutex ulxr::strerrorMutex

help to protect non-reentrant std::strerror()

Definition at line 1137 of file ulxmlrpcpp.cpp.

const int ulxr::SystemError = -32400

Definition at line 404 of file ulxmlrpcpp.h.

Referenced by ulxr::TcpIpConnection::accept(), ulxr::SSLConnection::accept(), ulxr::TcpIpConnection::asciiToInAddr(), ulxr::HttpProtocol::connectionMachine(), convertEncoding(), ulxr::SSLConnection::createSSL(), ulxr::Dispatcher::dispatchCall(), ulxr::HttpServer::executeHttpDELETE(), ulxr::HttpServer::executeHttpGET(), ulxr::HttpServer::executeHttpPUT(), ulxr::HttpClient::fileGET(), ulxr::HttpClient::filePUT(), funtik::MultiProcessRpcServer::handleRequest(), ulxr::TcpIpConnection::init(), ulxr::Mutex::lock(), ulxr::SSLConnection::low_level_read(), ulxr::SSLConnection::low_level_write(), ulxr::Mutex::Mutex(), ulxr::TcpIpConnection::open(), ulxr::SSLConnection::open(), ulxr::FileProcessor::process(), ulxr::Connection::read(), ulxr::HttpServer::runPicoHttpd(), ulxr::MultiThreadRpcServer::serverLoop(), ulxr::TcpIpConnection::setProxy(), ulxr::Requester::startDispatch(), ulxr::TcpIpConnection::TcpIpConnection(), ulxr::Mutex::unlock(), funtik::MultiProcessRpcServer::waitConnection(), and ulxr::Connection::write().

const int ulxr::TransportError = -32300

Definition at line 405 of file ulxmlrpcpp.h.

Referenced by ulxr::HttpProtocol::awaitConnect(), ulxr::TcpIpConnection::ServerSocketData::close(), ulxr::Connection::close(), ulxr::HttpClient::doDELETE(), ulxr::HttpClient::fileGET(), ulxr::HttpClient::filePUT(), funtik::MultiProcessRpcServer::handleXmlRequest(), ulxr::HttpClient::msgGET(), ulxr::HttpClient::msgPOST(), ulxr::HttpClient::msgPUT(), ulxr::HttpServer::performHttpTransaction(), ulxr::Connection::read(), ulxr::HttpClient::receiveResponse(), ulxr::TcpIpConnection::shutdown(), ulxr::TcpIpConnection::ServerSocketData::shutdown(), ulxr::Dispatcher::waitForCall(), ulxr::Requester::waitForResponse(), and ulxr::Connection::write().

const int ulxr::UnsupportedEncodingError = -32701

Definition at line 393 of file ulxmlrpcpp.h.

Referenced by convertEncoding(), and ulxr::ExpatWrapper::mapToFaultCode().


Generated on Sun Aug 19 20:09:01 2007 for ulxmlrpcpp by  doxygen 1.5.1