/* * Copyright 1995, 1996 Perforce Software. All rights reserved. * * This file is part of Perforce - the FAST SCM System. */ /* * strtable.h - a string table, using StrDict interface * * Classes defined: * * StrPtrDict - a dictionary whose values we don't own * StrBufDict - a dictionary whose values we do own * BufferDict - a dictionary stuffed into a StrBuf. * * Public methods: * * Clear() - reset table, making all variables unset * GetVar() - look up variable, return value (or 0 if not set) * SetVar() - set variable/value pair * * XXX Total dumb duplication of StrPtrDict into StrBufDict. */ struct StrPtrEntry; struct StrBufEntry; class VarArray; class StrPtrDict : public StrDict { public: StrPtrDict(); ~StrPtrDict(); // virtuals of StrDict StrPtr * VGetVar( const StrPtr &var ); void VSetVar( const StrPtr &var, const StrPtr &val ); void VRemoveVar( const StrPtr &var ); int VGetVarX( int x, StrRef &var, StrRef &val ); void VClear() { tabLength = 0; } private: VarArray *elems; int tabSize; int tabLength; } ; class StrBufDict : public StrDict { public: StrBufDict(); StrBufDict( StrDict & dict ); StrBufDict & operator =( StrDict & dict ); ~StrBufDict(); int GetCount() { return tabLength; } // virtuals of StrDict StrPtr * VGetVar( const StrPtr &var ); void VSetVar( const StrPtr &var, const StrPtr &val ); void VRemoveVar( const StrPtr &var ); int VGetVarX( int x, StrRef &var, StrRef &val ); void VClear() { tabLength = 0; } StrPtr * GetVarN( const StrPtr &var ); StrBuf * KeepOne( const StrPtr &var ); private: VarArray *elems; int tabSize; int tabLength; } ; const int BufferDictMax = 20; class BufferDict : public StrDict { public: BufferDict() {} ~BufferDict() {} BufferDict & operator =( const BufferDict &s ); // virtuals of StrDict StrPtr * VGetVar( const StrPtr &var ); int VGetVarX( int x, StrRef &var, StrRef &val ); void VSetVar( const StrPtr &var, const StrPtr &val ); void VClear() { buf.Clear(); count = 0; } void VRemoveVar( const StrPtr &var ); private: StrRef varRef; // temp for VGetVar int count; struct Var { int varOff; // into buf.Text() int varLen; int valOff; // into buf.Text() int valLen; } vars[ BufferDictMax ]; StrBuf buf; // hold var/values } ;
# | 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/strtable.h | |||||
#1 | 16119 | tjuricek | Rename/move to meet workshop project conventions. | ||
//guest/tjuricek/fsclient/vendor/p4api-15.1/macosx105x86_64/include/p4/strtable.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. |