Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members  

SoapSlave Class Reference

#include <SoapSlave.h>

List of all members.

Public Methods

void process_request ()
bool parseHeader (char *header, BinaryAction *binaction)
void soapError (string message)
void soapCoreError (CoreError err)
void createSession ()
void useSession (const char *cookie_ptr)
bool login (string response)
void logout ()
string annotate (string username)
string getDocumentInfo (long docid)
string queryUpdates (long first, long maxlen)
void deleteRevision (long docid, long revid)
void deleteDocument (long docid)
void changeDocInfo (long docid, string metadata)
long changeDocument (long docid, long fileid, string mimetype)
void addRendition (long docid, long revid, long fileid, string mimetype)
long createDocument (string metadata)


Detailed Description

A Slave is an object that deals with one client for the duration of one request-response cycle. This makes sence since HTTP and SOAP are burst (stateless) protocols


Member Function Documentation

void SoapSlave::addRendition long    docid,
long    revid,
long    fileid,
string    mimetype
 

addRendition note that the document was already stored in dime_write_open. All parameters are from struct BinaryAction

string SoapSlave::annotate string    username
 

We got a username from the client. Now we present him/her with a challenge. We store a local copy for when the users asks us to log him/her in.

void SoapSlave::changeDocInfo long    docid,
string    metadata
 

change doc info, accepts an XML string

long SoapSlave::changeDocument long    docid,
long    fileid,
string    mimetype
 

change document Note that all these parameters come from the binaction struct and dime_write_open

long SoapSlave::createDocument string    metadata
 

create a document, return its number

void SoapSlave::createSession  
 

create a new usersession

void SoapSlave::deleteDocument long    docid
 

delete a document

void SoapSlave::deleteRevision long    docid,
long    revid
 

delete a revision

string SoapSlave::getDocumentInfo long    docid
 

return the document info in xml format

bool SoapSlave::login string    response
 

challenge was previously fetched by the client. A local copy of this challenge was saved in the users session information. Now we combine these in an login attempt

void SoapSlave::logout  
 

delete the usersession related to our secret

bool SoapSlave::parseHeader char *    header,
BinaryAction *    binaction
 

since DIME headers are broken across different SOAP libraries we cant use them to transport details about the datastream. Fortunately soapheaders are available by the time attachments are processed. In these headers we store the relevant info on the binary data. This method parses the header and stores the information in the binacion struct

void SoapSlave::process_request  
 

This method is the start of SOAP Processing in soap_serve we dispatch controll to one of the namespaced methods in SoapServer, this then returns controll to an instance of slave.

When we are done, we clean up after ourselves and free our slot.

string SoapSlave::queryUpdates long    first,
long    maxlen
 

return a string with a list of updated files

void SoapSlave::soapCoreError CoreError    err
 

sets a message according to CoreError

void SoapSlave::soapError string    message
 

sets a soap error message

void SoapSlave::useSession const char *    cookie_ptr
 

get current session or new if none exits


The documentation for this class was generated from the following files:
Generated on Wed Feb 18 13:45:57 2004 for strongroom by doxygen1.2.18