[cvsnt] CVS Server Side Reporting Tools?
Tony Hoyle
tony.hoyle at march-hare.com
Mon Nov 17 00:02:54 GMT 2008
Arthur Barrett wrote:
> Wheras if you wanted to call audit.dll the sequence would be something
> like this:
> // This creates the SessionLog entry
> initaudit(NULL, "commit", "2000-11-01 10:42:15", "localhost",
> "fred", "/cvsrepo", "d:\cvsrepo", "000001234", NULL, 0, NULL, NULL,
> '2.5.04', NULL);
Nice idea but those functions aren't exported.. in fact they're defined
within a c++ anonymous namespace so they're not even called that..
they'll have some mangled name internally (not sure why at some point
they got 'audit' stuck in their name).
To call it you need to go via the api (CLibraryAccess) or you can do it
manually starting with get_plugin_interface in audit.dll - something like:
plugin_interface *p = get_plugin_interface();
p->init(p);
trigger_interface *t = p->get_interface(p, pitTrigger, NULL);
Then you call as before:
t->init(NULL, "commit", "2000-11-01 10:42:15", "localhost", "fred",
"/cvsrepo", "d:\cvsrepo", "000001234", NULL, 0, NULL, NULL, '2.5.04', NULL);
t->pretag(NULL, "", "/module/directory", 2, {"file1.txt","file2.txt"},
{"1.2","1.3"}, 'T', "", "Rel_1_2_0");
And to close down:
t->close(t);
p->destroy(p)
As that's entirely a C interface it should be possible to reproduce in
delphi.
Cross platform note.. get_plugin_interface may be renamed by libtool,
since on some platforms (eg. HPUX) you can't export functions with the
same name from two different ibraries. This won't be an issue provided
you use the libtool functions to find the name.
Tony
More information about the cvsnt
mailing list