record.cxx
来自「vovida的软交换」· CXX 代码 · 共 178 行
CXX
178 行
/* ====================================================================
* The Vovida Software License, Version 1.0
*
* Copyright (c) 2000 Vovida Networks, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The names "VOCAL", "Vovida Open Communication Application Library",
* and "Vovida Open Communication Application Library (VOCAL)" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact vocal@vovida.org.
*
* 4. Products derived from this software may not be called "VOCAL", nor
* may "VOCAL" appear in their name, without prior written
* permission of Vovida Networks, Inc.
*
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
* NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL VOVIDA
* NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES
* IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*
* ====================================================================
*
* This software consists of voluntary contributions made by Vovida
* Networks, Inc. and many individuals on behalf of Vovida Networks,
* Inc. For more information on Vovida Networks, Inc., please see
* <http://www.vovida.org/>.
*
*/
#include "Record.hxx" // class's header file
#include "AccountRecord.hxx"
#include "AliasRecord.hxx"
#include "UpdateRegInfoRec.hxx"
#include "TestRecord.hxx"
#include "FeatureRecord.hxx"
#include "Plan.hxx"
#include <iostream>
#include <cstdlib>
// class constructor
Record::Record() {
setRecordType(GENERIC_RECORD);
setKey("");
}
// class destructor
Record::~Record() {}
void Record::displayRecord(string prefix) {
cout << prefix << ": Key:" << key << "\n"
<< prefix << ": TimeStamp:" << ctime(&lastAccessed)
<< prefix << ": RecordType:" << stringRecordType(recordType)
<< " (" << recordType << ")" << "\n";
}
Record* Record::createNewRecord(RecordType rec) {
switch (rec) {
case ACCOUNT_RECORD:
return new AccountRecord();
break;
case ALIAS_RECORD:
return new AliasRecord();
break;
case UPDATE_REG_INFO_RECORD:
return new UpdateRegInfoRec();
break;
case TEST_RECORD:
return new TestRecord();
break;
case FEATURE_RECORD:
return new FeatureRecord();
break;
case PLAN_RECORD:
return new Plan();
break;
default:;
}
return NULL;
}
const string Record::TEST_RECORD_STR("TEST_RECORD");
const string Record::GENERIC_RECORD_STR("GENERIC_RECORD");
const string Record::UPDATE_REG_INFO_RECORD_STR("UPDATE_REG_INFO_RECORD");
const string Record::ACCOUNT_RECORD_STR("ACCOUNT_RECORD");
const string Record::ALIAS_RECORD_STR("ALIAS_RECORD");
const string Record::FEATURE_RECORD_STR("FEATURE_RECORD");
const string Record::PLAN_RECORD_STR("PLAN_RECORD");
string Record::stringRecordType(RecordType rType) {
switch (rType) {
case GENERIC_RECORD:
return GENERIC_RECORD_STR; break;
case UPDATE_REG_INFO_RECORD:
return UPDATE_REG_INFO_RECORD_STR; break;
case ACCOUNT_RECORD:
return ACCOUNT_RECORD_STR; break;
case ALIAS_RECORD:
return ALIAS_RECORD_STR; break;
case PLAN_RECORD:
return PLAN_RECORD_STR; break;
case FEATURE_RECORD:
return FEATURE_RECORD_STR; break;
case TEST_RECORD:
return TEST_RECORD_STR; break;
default:;
}
return "UNKNOWN RECORD";
}
RecordType Record::convertStrRType(string s) {
if (s.compare(ACCOUNT_RECORD_STR) == 0) return ACCOUNT_RECORD;
if (s.compare(ALIAS_RECORD_STR) == 0) return ALIAS_RECORD;
if (s.compare(PLAN_RECORD_STR) == 0) return PLAN_RECORD;
if (s.compare(FEATURE_RECORD_STR) == 0) return FEATURE_RECORD;
if (s.compare(UPDATE_REG_INFO_RECORD_STR) == 0)
return UPDATE_REG_INFO_RECORD;
if (s.compare(TEST_RECORD_STR) == 0){
return TEST_RECORD;
}
return GENERIC_RECORD;
}
void Record::copyData(Record* rec) {
rec->setKey(key);
rec->setLastAccessed(lastAccessed);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?