- add comments

This commit is contained in:
zolliker
2005-11-17 07:53:28 +00:00
parent 4ea807d8de
commit a183bdafb7

View File

@ -13,21 +13,51 @@ Markus Zolliker, March 2005
typedef void (*Initializer)(void);
void MakeInitializer(const char *type, const char *name, Initializer maker, int startupOnly);
/*
install an initializer
type: the type of the initializer
name: the name of the initalizer
maker: an initalizer function. The prototype does normally not match,
a cast (Initializer) is needed on the call. But: all initializers
with the same type must have the same prototype.
startupOnly: put 1, if the initializer should only be available during
startup
*/
Initializer GetInitializer(const char *type, const char *name);
/*
Get back an initializer with given type and name.
The result must be casted to the proper prototype for the given
type.
*/
static int MakeObject(SConnection *con, SicsInterp *sics,
void *data, int argc, char *argv[]);
/*
MakeObject has the following syntax:
MakeObject objectName driver [ args ... ]
It executes the initializer with the type "Object" and and the
driver given as name. The found initalizer should use the given arguments
to create a driver.
*/
typedef int (*CmdInitializer) (SConnection *pCon, int argc, char *argv[], int dynamic);
/*
make a driver with the initializer function maker
when the dynamic argument is not 0, the command was created after startup,
i.e. the SaveStatus routine has also to write command creation code.
/*
The initalizer prototype for the type "Object".
- pCon: the sics connection calling this initializer
- argc: the total number of args
- argv: the args (argv[0]: "MakeObject", argv[1]: object name, argv[3]: driver ...)
- dynamic: the initializer was called _after_ startup
*/
void MakeDriver(const char *driver, CmdInitializer maker, int startupOnly);
/*
Install a driver of type "Object" with the initializer function maker.
- startupOnly: the driver creation should only be possible at startup
*/
#endif