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