/* * 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 | 10716 | Robert Cowham |
Populate //guest/robert_cowham/perforce/API/p4/p4api-main/... from //guest/robert_cowham/perforce/API/p4/p4api-2009.1.209442-vs2008_static/.... |
||
//guest/robert_cowham/perforce/API/p4/p4api-2009.1.209442-vs2008_static/include/p4/strtable.h | |||||
#1 | 10715 | Robert Cowham | Moving p4api files to a better location. | ||
//guest/robert_cowham/perforce/API/p4com/main/src/p4api-2009.1.209442-vs2008_static/include/p4/strtable.h | |||||
#1 | 7449 | Robert Cowham | New API version |