PLearn 0.1
Public Member Functions | Protected Attributes
PLearn::RemoteMethodDoc Class Reference

Documentation holder for a remote method. More...

#include <RemoteMethodDoc.h>

Collaboration diagram for PLearn::RemoteMethodDoc:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 RemoteMethodDoc ()
 Constructors.
 RemoteMethodDoc (const BodyDoc &doc)
 RemoteMethodDoc (const RetDoc &doc)
 RemoteMethodDoc (const ArgDoc &doc)
void setName (const string &methodname) const
const string & name () const
 Access documentation components.
void checkConsistency () const
 Will perform consistency checks (such as verifying if margs_doc and m_args_type have the same size) and launch an exception if inconsistencies are detected.
int nArgs () const
const string & bodyDoc () const
const string & returnDoc () const
const string & returnType () const
const list< ArgDoc > & argListDoc () const
const list< string > & argListType () const
const RemoteMethodDocoperator, (const BodyDoc &doc) const
 Set a body.
const RemoteMethodDocoperator, (const RetDoc &doc) const
 Set a return value.
const RemoteMethodDocoperator, (const RetTypeDoc &doc) const
 Set a return type.
const RemoteMethodDocoperator, (const ArgDoc &doc) const
 Add a new argument.
const RemoteMethodDocoperator, (const ArgTypeDoc &doc) const
 Add type information to the corresponding argument (must add type information in the same order and number as argument documentation)
string getPrototypeString (string argsep=", ") const
 Returns a string repretenting the "prototype" (signature) of the function in the doc.
string getFullHelpText () const
 return full help text for the function in the doc.

Protected Attributes

string m_name
 Function name.
string m_body_doc
 Function body documentation.
string m_return_doc
 Return value documentation.
string m_return_type
 Type string for return value.
list< ArgDocm_args_doc
 Arguments documentation.
list< string > m_args_type
 Type string for each argument.

Detailed Description

Documentation holder for a remote method.

Method documentation consists of the following:

(Added later by trampolines: type information for the return value and arguments)

Definition at line 132 of file RemoteMethodDoc.h.


Constructor & Destructor Documentation

PLearn::RemoteMethodDoc::RemoteMethodDoc ( ) [inline]

Constructors.

Definition at line 136 of file RemoteMethodDoc.h.

    { }
PLearn::RemoteMethodDoc::RemoteMethodDoc ( const BodyDoc doc) [inline]

Definition at line 139 of file RemoteMethodDoc.h.

        : m_body_doc(doc.m_doc)
    { }
PLearn::RemoteMethodDoc::RemoteMethodDoc ( const RetDoc doc) [inline]

Definition at line 143 of file RemoteMethodDoc.h.

        : m_return_doc(doc.m_doc)
    { }
PLearn::RemoteMethodDoc::RemoteMethodDoc ( const ArgDoc doc) [inline]

Definition at line 147 of file RemoteMethodDoc.h.

        : m_args_doc(1, doc)
    { }

Member Function Documentation

const list<ArgDoc>& PLearn::RemoteMethodDoc::argListDoc ( ) const [inline]

Definition at line 187 of file RemoteMethodDoc.h.

References m_args_doc.

Referenced by PLearn::HTMLHelpCommand::helpOnClass().

    {
        return m_args_doc;
    }

Here is the caller graph for this function:

const list<string>& PLearn::RemoteMethodDoc::argListType ( ) const [inline]

Definition at line 192 of file RemoteMethodDoc.h.

References m_args_type.

Referenced by PLearn::HTMLHelpCommand::helpOnClass().

    {
        return m_args_type;
    }

Here is the caller graph for this function:

const string& PLearn::RemoteMethodDoc::bodyDoc ( ) const [inline]

Definition at line 172 of file RemoteMethodDoc.h.

References m_body_doc.

Referenced by PLearn::HTMLHelpCommand::helpOnClass().

    {
        return m_body_doc;
    }

Here is the caller graph for this function:

void PLearn::RemoteMethodDoc::checkConsistency ( ) const

Will perform consistency checks (such as verifying if margs_doc and m_args_type have the same size) and launch an exception if inconsistencies are detected.

Definition at line 41 of file RemoteMethodDoc.cc.

References PLERROR.

Referenced by nArgs(), and PLearn::RemoteTrampoline::RemoteTrampoline().

{
    int argdocsize = m_args_doc.size();
    int argtypesize = m_args_type.size();
    if(argdocsize != argtypesize)
        PLERROR("For function '%s', number of ArgDoc (%d) inconsistent with number of arguments (%d)",
                m_name.c_str(), argdocsize, argtypesize);
}

Here is the caller graph for this function:

string PLearn::RemoteMethodDoc::getFullHelpText ( ) const

return full help text for the function in the doc.

Definition at line 69 of file RemoteMethodDoc.cc.

Referenced by PLearn::RemoteMethodMap::getMethodHelpText().

{
    int nargs = nArgs();
    string txt = getPrototypeString() + "\n";
    txt += bodyDoc() + "\n";
    if(nargs==0)
        txt += "TAKES NO ARGUMENTS.\n";
    else
    {
        list<ArgDoc>::const_iterator arg = argListDoc().begin();        
        list<ArgDoc>::const_iterator argend = argListDoc().end();
        list<string>::const_iterator argtype = argListType().begin();
        txt += "ARGUMENTS: \n";
        for(; arg!=argend; ++arg, ++argtype)
        {
            txt += arg->m_argument_name + " : " 
                +  *argtype + "\n"
                +  '\t' + arg->m_doc + "\n";
        }
    }
    txt += "RETURNS: ";
    txt += returnType() + "\n";
    txt += returnDoc() + "\n";
    return txt;
}

Here is the caller graph for this function:

string PLearn::RemoteMethodDoc::getPrototypeString ( string  argsep = ", ") const

Returns a string repretenting the "prototype" (signature) of the function in the doc.

Argsep is used a sthe separator between arguments (typically ", " or ",\n")

Definition at line 52 of file RemoteMethodDoc.cc.

{
    string txt = returnType()+" "+name()+"(";
    list<ArgDoc>::const_iterator arg;
    list<ArgDoc>::const_iterator argbegin = argListDoc().begin();        
    list<ArgDoc>::const_iterator argend = argListDoc().end();
    list<string>::const_iterator argtype = argListType().begin();
    for(arg=argbegin; arg!=argend; ++arg, ++argtype)
    {
        if(arg!=argbegin)
            txt += argsep;
        txt += *argtype+" "+arg->m_argument_name;
    }
    txt += ")";
    return txt;
}
const string& PLearn::RemoteMethodDoc::name ( ) const [inline]

Access documentation components.

Definition at line 156 of file RemoteMethodDoc.h.

References m_name.

    {
        return m_name;
    }
int PLearn::RemoteMethodDoc::nArgs ( ) const [inline]

Definition at line 166 of file RemoteMethodDoc.h.

References checkConsistency(), and m_args_type.

    {        
        checkConsistency();
        return m_args_type.size();
    }

Here is the call graph for this function:

const RemoteMethodDoc& PLearn::RemoteMethodDoc::operator, ( const BodyDoc doc) const [inline]

Set a body.

Definition at line 198 of file RemoteMethodDoc.h.

References m_body_doc, and PLearn::BodyDoc::m_doc.

    {
        m_body_doc += doc.m_doc;
        return *this;
    }
const RemoteMethodDoc& PLearn::RemoteMethodDoc::operator, ( const ArgTypeDoc doc) const [inline]

Add type information to the corresponding argument (must add type information in the same order and number as argument documentation)

Definition at line 227 of file RemoteMethodDoc.h.

References m_args_type, and PLearn::ArgTypeDoc::m_typestr.

    {
        m_args_type.push_back(doc.m_typestr);
        return *this;
    }
const RemoteMethodDoc& PLearn::RemoteMethodDoc::operator, ( const ArgDoc doc) const [inline]

Add a new argument.

Definition at line 219 of file RemoteMethodDoc.h.

References m_args_doc.

    {
        m_args_doc.push_back(doc);
        return *this;
    }
const RemoteMethodDoc& PLearn::RemoteMethodDoc::operator, ( const RetTypeDoc doc) const [inline]

Set a return type.

Definition at line 212 of file RemoteMethodDoc.h.

References m_return_type, and PLearn::RetTypeDoc::m_typestr.

    {
        m_return_type = doc.m_typestr;
        return *this;
    }
const RemoteMethodDoc& PLearn::RemoteMethodDoc::operator, ( const RetDoc doc) const [inline]

Set a return value.

Definition at line 205 of file RemoteMethodDoc.h.

References PLearn::RetDoc::m_doc, and m_return_doc.

    {
        m_return_doc += doc.m_doc;
        return *this;
    }
const string& PLearn::RemoteMethodDoc::returnDoc ( ) const [inline]

Definition at line 177 of file RemoteMethodDoc.h.

References m_return_doc.

Referenced by PLearn::HTMLHelpCommand::helpOnClass().

    {
        return m_return_doc;
    }

Here is the caller graph for this function:

const string& PLearn::RemoteMethodDoc::returnType ( ) const [inline]

Definition at line 182 of file RemoteMethodDoc.h.

References m_return_type.

Referenced by PLearn::HTMLHelpCommand::helpOnClass().

    {
        return m_return_type;
    }

Here is the caller graph for this function:

void PLearn::RemoteMethodDoc::setName ( const string &  methodname) const [inline]

Definition at line 151 of file RemoteMethodDoc.h.

References m_name.

Referenced by PLearn::RemoteTrampoline::RemoteTrampoline().

    { m_name = methodname; }

Here is the caller graph for this function:


Member Data Documentation

list<ArgDoc> PLearn::RemoteMethodDoc::m_args_doc [mutable, protected]

Arguments documentation.

Definition at line 246 of file RemoteMethodDoc.h.

Referenced by argListDoc(), and operator,().

list<string> PLearn::RemoteMethodDoc::m_args_type [mutable, protected]

Type string for each argument.

Definition at line 247 of file RemoteMethodDoc.h.

Referenced by argListType(), nArgs(), and operator,().

string PLearn::RemoteMethodDoc::m_body_doc [mutable, protected]

Function body documentation.

Definition at line 243 of file RemoteMethodDoc.h.

Referenced by bodyDoc(), and operator,().

string PLearn::RemoteMethodDoc::m_name [mutable, protected]

Function name.

Definition at line 242 of file RemoteMethodDoc.h.

Referenced by name(), and setName().

string PLearn::RemoteMethodDoc::m_return_doc [mutable, protected]

Return value documentation.

Definition at line 244 of file RemoteMethodDoc.h.

Referenced by operator,(), and returnDoc().

string PLearn::RemoteMethodDoc::m_return_type [mutable, protected]

Type string for return value.

Definition at line 245 of file RemoteMethodDoc.h.

Referenced by operator,(), and returnType().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines