/* * Copyright 1995, 1998 Perforce Software. * * This file is part of WebKeeper, a perforce client apache module. * * License is hereby granted to use this software and distribute it * freely, as long as this copyright notice is retained and modifications * are clearly marked. * * ALL WARRANTIES ARE HEREBY DISCLAIMED. * * $Id: //guest/perforce_software/webkeeper/mod_webkeep2.cc#1 $ */ /* * mod_webkeep2.cc -- C++ glue between webkeeper and Perforce Client API * * ClientUserWK sits upon the Perforce ClientApi, and webKeepPrint() * makes use of ClientUserWK. The web server Apache module mod_webkeep.c * interfaces to webKeepPrint() through webkeep.h. */ # include <clientapi.h> extern "C" { # include "mod_webkeep.h" } class ClientUserWK : public ClientUser { public: void OutputInfo( char level, char *data ) { int l = strlen( data ); int isBinary = l > 5 && strcmp( data + l - 5, "text)" ); (*printer->data)( printer, isBinary ); } void OutputError( char *errBuf ) { (*printer->error)( printer, errBuf ); } void OutputText( char *data, int length ) { (*printer->text)( printer, data, length ); } void OutputBinary( char *data, int length ) { (*printer->text)( printer, data, length ); } WebKeepPrinter *printer; } ; extern "C" void webKeepPrint( WebKeepConnect *p4, char *path, WebKeepPrinter *printer ) { Error e[1]; ClientUserWK ui; ClientApi client( &ui ); // Plug in API extentions: user's closure parameter and // dispatch table. ui.printer = printer; if( p4->port ) client.SetPort( p4->port ); if( p4->user ) client.SetUser( p4->user ); if( p4->pass ) client.SetPassword( p4->pass ); if( p4->client ) client.SetClient( p4->client ); // Connect. client.Init( e ); if( !e->Test() ) { client.SetArgv( 1, &path ); client.Run( "print" ); client.Final( e ); } if( e->Test() ) { char buffer[ 256 ]; e->Fmt( buffer, sizeof( buffer ) ); (*printer->error)( printer, buffer ); } }
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#4 | 9973 | laurette | Obsolete, deleting. | ||
#3 | 805 | Stephen Vance |
Integrated changes from guest depot. Includes APACI build, static and DSO build, Apache 1.3 API, WebKeepSync, WebKeepDirectoryIndex. Also updated index page to reflect new functionality. |
||
#2 | 98 | Laura Wingerd | Pull in WebKeeper change from Perforce (@9037: new error format) | ||
#1 | 46 | Perforce maintenance | Add WebKeeper source. |