📄 attrpairfields.cpp
字号:
#include "AttrPairFields.h"#include "Logger.h"//debug#include <stdio.h>AttrPairFields::AttrPairFields(){ _attrPairFields=(AttrPairsMap*) NULL; //_attrPairFields = new AttrPairsMap;}AttrPairFields::~AttrPairFields(){ if(_attrPairFields == NULL) return; //NOTE: have to delete //cout<<"Destruction of AttrPairFields.\n" ; AttrPairsMap::iterator iter = _attrPairFields->begin(); while(iter != _attrPairFields->end()) { delete iter->second;// iter->second=NULL; iter++; } _attrPairFields->clear(); delete _attrPairFields;// _attrPairFields=NULL;}AttrValuePair* AttrPairFields::getPairByAttr(Octet attr){ /* if(_attrPairFields == (AttrPairFields*)NULL) return (AttrValuePair*)NULL; */ AttrPairsMap::iterator iter = _attrPairFields->find(attr); if(iter != _attrPairFields->end()) return iter->second; return (AttrValuePair*)NULL;}int AttrPairFields::addPairField(AttrValuePair* pair){ if(_attrPairFields == (AttrPairsMap*)NULL) _attrPairFields = new AttrPairsMap; //NOTE:if have element, begin() return the first element,if not, begin() // equal end(), and end() is allways return a NULL poiter/* if(_attrPairFields.begin() == _attrPairFields.end()) { // if _attrPairFields is a poiter _attrPairFields = new AttrPairsMap; _attrPairFields->insert(make_pair(pair->getAttr(), pair)); return 0; }*/ if(_attrPairFields->find(pair->getAttr()) != _attrPairFields->end()) { return -1; } //debug //printf("pair: attr=%d,name=%s\n",pair->getAttr(), (pair->getNameAttr()).c_str()); _attrPairFields->insert(make_pair(pair->getAttr(), pair)); return 0;}int AttrPairFields::removePairByAttr(Octet attr){ //the latter has involve this condiction //if(_attrPairFields == (AttrPairsMap*)NULL) //have no elements or _attrPairFields is NULL if(_attrPairFields->begin() == _attrPairFields->end()) { return -2; } //if not found , find() will point to end(); if(_attrPairFields->find(attr) == _attrPairFields->end()) { return -1; } //NOTE: have to delete the element delete (*_attrPairFields)[attr]; // (*_attrPairFields)[attr]=NULL; _attrPairFields->erase(attr); return 0;}AttrPairsMap* AttrPairFields::getAllFields(){ return _attrPairFields;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -