Function definitions

Previous: Internal definitions ] [ Top:  ] [ Next: Dealing with processes ]

Our library will consist of the wftk_lib.c file, defined here, along with at least one file for each of the adaptors listed earlier. Most of the nitty-gritty will of course be in the various adaptor definitions, the most important content of this file being the procdef interpreter.

Each group of functions has its own page except for xml_info. There is also a page describing the interpreter state structure, which I've introduced to replace the prototype's global variables. My hope is that this will be thread-safer, even though I really don't know diddly about thread safety yet (except for what logic tells me, which is global variables are susceptible to being clobbered.)
 
#include "wftk.h"
#include "time.h"
#include "wftk_internals.h"

#ifndef WFTK_WITH_REPMGR
void repos_log(XML * session, int level, int type, XML * obj, const char * subsys, const char * message, ...)
{
   /* Do nothing with logging in wftk-bare.  TODO: if anybody ever cares about wftk-bare, do something about logging. */
}
#endif
void log_xml_object (XML * session, int level, int type, const char * subsys, const char * label, XML * obj)
{
   char * o = xml_string (obj);
   repos_log (session, level, type, NULL, subsys, "%s:\n%s\n", label, o);
   xml_strfree (o);
}


static int _status_set (XML * session, XML * datasheet, const char * status, int invoke_before);

See Definition of _state structure

See The interpreter: figuring out what to do next
See Dealing with processes
See Dealing with values
See Getting and setting process status
See Dealing with tasks
See Dealing with requests
See Working with roles
See Working with users
See Sending notifications
See Making decisions: wftk_decide
See Taking external action
See Working with the enactment history
The xml_info function returns an XML structure containing information about the version of the library, the variants of various pieces of it (like what config module is linked), and additional information about what actual adaptors are installed, their versions, where they are, and so on and so forth. Obviously this is something that will change a lot as things go on.
 
WFTK_EXPORT XML * wftk_info ()
{
   XML * ret = xml_create ("libinfo");
   xml_set (ret, "lib", "wftk");
   xml_set (ret, "ver", "1.0");
   xml_set (ret, "compiled", __TIME__ " " __DATE__);

   /*config_info (ret);  TODO: finish up the config info portion of this. Should reflect static and dynamic links. */

   return (ret);
}
Previous: Internal definitions ] [ Top:  ] [ Next: Dealing with processes ]


This code and documentation are released under the terms of the GNU license. They are copyright (c) 2000-2004, Vivtek. All rights reserved except those explicitly granted under the terms of the GNU license.