/* * 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; } 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; } 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 | 20722 | jdputsch | initial branch, prep for -Zapp= support | ||
//guest/michael_bishop/MacMenu/src/P4ObjectLayer/p4api-2010.1.251161/include/p4/strtable.h | |||||
#1 | 8331 | Matt Attaway |
Adding initial version of MacMenu for Perforce MacMenu is a helpful Perforce client that sits in your toolbar. It allows you to run standard Perforce operations on the document that is open the currently active editor/viewer. |