📄 ruleidsource.cc
字号:
/*!\file RuleIdSource.cc Copyright 2003-2004 Fraunhofer Institute for Open Communication Systems (FOKUS), Berlin, Germany This file is part of Network Measurement and Accounting System (NETMATE). NETMATE is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. NETMATE is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this software; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USADescription:manage unique numeric rule id space $Id: RuleIdSource.cc,v 1.2 2005/03/24 23:58:46 s_zander Exp $*/#include "RuleIdSource.h"RuleIdSource::RuleIdSource(int _unique) : num(0), unique(_unique){ }RuleIdSource::~RuleIdSource(){ // nothing to do}unsigned long long RuleIdSource::newId(void){ unsigned long long id; if (freeIds.empty()) { return num++; } // else use id from free list id = freeIds.front(); freeIds.pop_front(); return id;}void RuleIdSource::freeId(unsigned long long id){ if (!unique) { freeIds.push_back(id); num--; }}void RuleIdSource::dump( ostream &os ){ os << "RuleIdSource dump:" << endl << "Number of used ids is : " << num - freeIds.size() << endl;}ostream& operator<< ( ostream &os, RuleIdSource &rim ){ rim.dump(os); return os;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -