/* * Copyright 1995, 1996 Perforce Software. All rights reserved. * * This file is part of Perforce - the FAST SCM System. */ /* * handler.h - last chance handlers to keep track of loose objects * * Handlers provide a way of associating an object with a string so * context can be retained across RPC dispatched function calls. * This is used for file transfers, which are carried out in a series * of RPC calls. The sender picks a handle name and then uses that * consistenly during the transfer. The receiver uses the provided handle * name to stash and retrieve the object the represents the open file. * * Handlers also provide a means of tracking across objects. If any * object encounters an error, it can mark the handle so that a subsequent * call to AnyErrors() can report so. * * Public classes: * * Handlers - a list of LastChance objects * LastChance - a virtual base class that gets deleted with the * handlers. */ class LastChance; struct Handler { StrBuf name; int anyErrors; LastChance *lastChance; } ; class LastChance { public: LastChance() { handler = 0; isError = 0; } virtual ~LastChance(); void Install( Handler *h ) { handler = h; handler->lastChance = this; } void SetError() { isError = 1; } void SetError( Error *e ) { if( e->Test() ) isError = 1; } int IsError() { return isError; } private: Handler *handler; int isError; } ; const int maxHandlers = 10; class Handlers { public: Handlers(); ~Handlers(); void Install( const StrPtr *name, LastChance *lastChance, Error *e ); LastChance * Get( const StrPtr *name, Error *e = 0 ); int AnyErrors( const StrPtr *nane ); void SetError( const StrPtr *name, Error *e ); private: int numHandlers; Handler table[maxHandlers]; Handler *Find( const StrPtr *handle, Error *e = 0 ); } ;
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 16129 | tjuricek |
Rename/move files again... this time to the hyphenated-approach. |
||
//guest/tjuricek/file_system_client/main/vendor/p4api-15.1/macosx105x86_64/include/p4/handler.h | |||||
#1 | 16119 | tjuricek | Rename/move to meet workshop project conventions. | ||
//guest/tjuricek/fsclient/vendor/p4api-15.1/macosx105x86_64/include/p4/handler.h | |||||
#1 | 16118 | tjuricek |
FSClient initial version: handles add, edit This is a proof-of-concept app that mirrors an existing Perforce workspace to handle running commands like "p4 add" and "p4 edit" automatically when your apps add and write files. See the readme for more information. |