PLearn 0.1
Public Types | Public Member Functions | Protected Attributes
PLearn::FRemoteTrampoline_2< R, A1, A2 > Struct Template Reference

Trampoline for a non-void 2-argument function. More...

#include <RemoteTrampoline.h>

Inheritance diagram for PLearn::FRemoteTrampoline_2< R, A1, A2 >:
Inheritance graph
[legend]
Collaboration diagram for PLearn::FRemoteTrampoline_2< R, A1, A2 >:
Collaboration graph
[legend]

List of all members.

Public Types

enum  { expected_nargs = 2 }
typedef RemoteTrampoline inherited
typedef R(* FunctionType )(A1, A2)

Public Member Functions

 FRemoteTrampoline_2 (const string &functionname, const RemoteMethodDoc &doc, FunctionType m, const flag_t &flgs=0)
virtual void call (Object *nullinstance, int nargs, PStream &io) const
 Perform the act of binding arguments on a stream with an object instance.

Protected Attributes

FunctionType m_function

Detailed Description

template<class R, class A1, class A2>
struct PLearn::FRemoteTrampoline_2< R, A1, A2 >

Trampoline for a non-void 2-argument function.

Definition at line 1077 of file RemoteTrampoline.h.


Member Typedef Documentation

template<class R , class A1 , class A2 >
typedef R(* PLearn::FRemoteTrampoline_2< R, A1, A2 >::FunctionType)(A1, A2)

Definition at line 1081 of file RemoteTrampoline.h.

template<class R , class A1 , class A2 >
typedef RemoteTrampoline PLearn::FRemoteTrampoline_2< R, A1, A2 >::inherited

Definition at line 1079 of file RemoteTrampoline.h.


Member Enumeration Documentation

template<class R , class A1 , class A2 >
anonymous enum
Enumerator:
expected_nargs 

Definition at line 1080 of file RemoteTrampoline.h.

{ expected_nargs = 2 };

Constructor & Destructor Documentation

template<class R , class A1 , class A2 >
PLearn::FRemoteTrampoline_2< R, A1, A2 >::FRemoteTrampoline_2 ( const string &  functionname,
const RemoteMethodDoc doc,
FunctionType  m,
const flag_t flgs = 0 
) [inline]

Definition at line 1083 of file RemoteTrampoline.h.

        : inherited(functionname, (doc,
                                 RTYPE_DOC(R),
                                 ATYPE_DOC(A1), ATYPE_DOC(A2)),
                    flgs),
          m_function(m)
    { }

Member Function Documentation

template<class R , class A1 , class A2 >
virtual void PLearn::FRemoteTrampoline_2< R, A1, A2 >::call ( Object instance,
int  nargs,
PStream io 
) const [inline, virtual]

Perform the act of binding arguments on a stream with an object instance.

The actual number of arguments is passed only for error-checking, since the trampoline knows the number of arguments that it is expecting. If this is used to call a global function or a static method that was declared with declareFunction, instead of a regular method declared with declareMethod, then the instance argument is ignored (and should be passed 0 by convention).

Implements PLearn::RemoteTrampoline.

Definition at line 1092 of file RemoteTrampoline.h.

References PLearn::RemoteTrampoline::checkNargs(), PLearn::RemoteTrampoline_0< T, R >::expected_nargs, PLearn::RemoteTrampoline::sendRemoteMethodResult(), and TRAMPOLINE_TYPE.

    {
        checkNargs(nargs, expected_nargs);
        TRAMPOLINE_TYPE(A1) a1;  io >> a1;
        TRAMPOLINE_TYPE(A2) a2;  io >> a2;
        TRAMPOLINE_TYPE(R) r = (*m_function)(a1,a2);
        sendRemoteMethodResult(io, r);
    }

Here is the call graph for this function:


Member Data Documentation

template<class R , class A1 , class A2 >
FunctionType PLearn::FRemoteTrampoline_2< R, A1, A2 >::m_function [protected]

Definition at line 1114 of file RemoteTrampoline.h.


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