Repository management library

Previous: #include file for interface (links to code sections, so it's a good place to start understanding the API) ] [ Top: Repository manager ] [ Next: Working with repository objects ]

So let's get down to business. First, some of the tools we'll be using are defined in separate files. For instance, the XML template application procedure is separate. The Wiki processor is separate. This is simply because I think these chunks will be useful even without the full repository to work with. I may, of course, end up being wrong.

In general, the repository library operates in two modes, local or remote. The local mode works in the current filesystem directory, whereas the remote mode passes all commands through to a remote server. The remote server listens on a given TCP port and presents the same command-line interface that the local command-line interpreter does. There are other modes of interaction between local and remote repositories as well -- for instance, a list may be mirrored, meaning that changes to it are communicated to a remote repository, and the remote repository may be queried for changes made elsewhere.

This is still pretty new stuff and I'll attempt to revisit it as it firms up.

Here's the layout of the file. It's broken into pieces for your reading pleasure; just follow the links.
 
#include "repmgr.h"
#include "xml_template.h"
#include "wiki.h"
#include "time.h"
#ifdef WINDOWS
#include "windows.h"
#include "winsock.h"
#else
#include "sys/socket.h"
#include "netinet/in.h"
#include "netdb.h"
#include "fcntl.h"
#endif
#include "../wftk/wftk.h"   /* 2003-05-26 - Look, Ma!  Workflow integration! */
#include "../wftk/wftk_session.h"
#include "stdarg.h"

static FILE * _repos_fopen (XML * repos, const char * filename, const char * mode)
{
   XML * scratch = xml_create ("s");
   FILE * ret;

   xml_setf (scratch, "f", "%s%s", xml_attrval (repos, "basedir"), filename);
   ret = fopen (xml_attrval (scratch, "f"), mode);
   xml_free (scratch);
   return (ret);
}

See Working with repository objects
See Publishing objects: internals
See Macro processing
See Creating and administering lists
See Iterating across list contents
See Working with individual objects
See Working with object field values
See Data retrieval and display
See User authentication and group membership
See Context/user session handling
See Repository queries
See Synching data with remote data sources
See Working with attachments
See Working with individual objects as reports
See Actions and synchronous processing
See Workflow
See Notifications
Previous: #include file for interface (links to code sections, so it's a good place to start understanding the API) ] [ Top: Repository manager ] [ Next: Working with repository objects ]


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