cNEDFunction Class Reference
[Internal classes]

Registration class for extending NED with new functions. More...

#include <cnedfunction.h>

Inheritance diagram for cNEDFunction:
cNoncopyableOwnedObject cOwnedObject noncopyable cNamedObject cObject

List of all members.

Public Member Functions

Constructors, destructor, assignment

 cNEDFunction (NEDFunction f, const char *signature, const char *category=NULL, const char *description=NULL)
virtual ~cNEDFunction ()
Redefined cObject member functions.

virtual std::string info () const
Member access.

cNEDValue invoke (cComponent *context, cNEDValue argv[], int argc)
NEDFunction getFunctionPointer () const
const char * getSignature () const
char getReturnType () const
char getArgType (int k) const
int getMinArgs () const
int getMaxArgs () const
bool hasVarArgs () const
const char * getCategory () const
const char * getDescription () const

Static Public Member Functions

static cNEDFunctionfind (const char *name)
static cNEDFunctionget (const char *name)
static cNEDFunctionfindByPointer (NEDFunction f)

Detailed Description

Registration class for extending NED with new functions.

Objects of this class are usually created via the Define_NED_Function() macro.


Constructor & Destructor Documentation

cNEDFunction::cNEDFunction ( NEDFunction  f,
const char *  signature,
const char *  category = NULL,
const char *  description = NULL 
)

Constructor.

Signature is expected in the following syntax: returntype name(argtype argname,...), where types can be bool, long, double, quantity, string, xml, any; names of optional arguments end in '?'. The object name will be the function name, as extracted from the signature string. The signature may end in an ellipsis, i.e. "...", to mean that any number of extra args of unspecified types should be accepted. (When there are both optional args and an ellipsis, then extra arguments can only be passed when all optional arguments are all supplied.)

Examples: "quantity uniform(quantity a, quantity b, long rng?)" "string sprintf(format, ...)" "any max(...)"


Member Function Documentation

static cNEDFunction* cNEDFunction::find ( const char *  name  )  [static]

Finds a registered function by name.

Returns NULL if not found.

static cNEDFunction* cNEDFunction::get ( const char *  name  )  [static]

Finds a registered function by name.

Throws an error if not found.

const char* cNEDFunction::getCategory (  )  const [inline]

Returns a string that can be useful in classifying NED functions, e.g.

"trigonometric".

NEDFunction cNEDFunction::getFunctionPointer (  )  const [inline]

Returns the function pointer.

Do not call the function directly, because that would bypass argument type validation.

int cNEDFunction::getMaxArgs (  )  const [inline]

Returns the maximum number of typed arguments (i.e.

the last max-min args are optional). If hasVarArgs() is true, the function actually accepts more than getMaxArgs() arguments.

int cNEDFunction::getMinArgs (  )  const [inline]

Returns the minimum number of arguments (i.e.

the number of mandatory arguments).


The documentation for this class was generated from the following file:
Generated on Tue Dec 2 11:16:29 2014 for OMNeT++ Simulation Library by  doxygen 1.6.3