dictionary.cpp
来自「这是VCF框架的代码」· C++ 代码 · 共 173 行
CPP
173 行
//Dictionary.cpp/*Copyright 2000-2004 The VCF Project.Please see License.txt in the top level directorywhere you installed the VCF.*/#include "vcf/FoundationKit/FoundationKit.h"#include "vcf/FoundationKit/Dictionary.h"using namespace VCF;Dictionary::Dictionary(): ownsObjectValues_(false){ dataContainer_.initContainer( data_ );}Dictionary::~Dictionary(){}Dictionary::Dictionary( const Dictionary& rhs ): Object(rhs), ownsObjectValues_(false){ dataContainer_.initContainer( data_ ); *this = rhs;}Dictionary& Dictionary::operator=( const Dictionary& rhs ){ data_ = rhs.data_; ownsObjectValues_ = rhs.ownsObjectValues_; return *this;}Dictionary::size_type Dictionary::size() const{ return data_.size();}Dictionary::size_type Dictionary::max_size() const{ return data_.max_size();}bool Dictionary::empty() const{ return data_.empty();}void Dictionary::clear(){ if ( ownsObjectValues_ ) { DictionaryMap::iterator it = data_.begin(); while ( it != data_.end() ) { Dictionary::pair& item = *it; if ( pdObject == item.second.type ) { Object* o = item.second; if ( NULL != o ) { o->free(); } } it ++; } } data_.clear();}void Dictionary::loadFromStream( InputStream* stream ){ int dictSize = 0; stream->read( dictSize ); for ( int i=0;i<dictSize;i++ ) { String name; stream->read( name ); VariantData vd; VariantDataInputStream vdis(stream); vdis.readVariantData( &vd ); data_[name] = vd; }}void Dictionary::saveToStream( OutputStream* stream ){ DictionaryMap::iterator it = data_.begin(); stream->write( (int)data_.size() ); while ( it != data_.end() ) { Dictionary::pair& item = *it; stream->write( item.first ); VariantDataOutputStream vdos(stream); vdos.writeVariantData( &item.second ); it ++; }}Dictionary::Value& Dictionary::operator[](const Dictionary::Key& key){ return data_[key];}Dictionary::Value Dictionary::operator[](const Key& key) const{ Dictionary::Value result; DictionaryMap::const_iterator found = data_.find( key ); if ( found != data_.end() ) { result = found->second; } return result;}void Dictionary::insert( const Dictionary::Key& key, const Dictionary::Value& value ){ data_[key] = value;}void Dictionary::remove( const Dictionary::Key& key ){ DictionaryMap::iterator found = data_.find(key); if ( found != data_.end() ) { data_.erase( found ); }}Dictionary::Enumerator* Dictionary::getEnumerator(){ return dataContainer_.getEnumerator();}/***CVS Log info*$Log$*Revision 1.3 2006/04/07 02:35:34 ddiego*initial checkin of merge from 0.6.9 dev branch.**Revision 1.2.6.1 2005/09/13 01:58:07 ddiego*minor changes to dictionary class.**Revision 1.2 2004/08/07 02:49:13 ddiego*merged in the devmain-0-6-5 branch to stable**Revision 1.1.2.2 2004/04/29 04:07:07 marcelloptr*reformatting of source files: macros and csvlog and copyright sections**/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?