📄 accountrecord.hxx
字号:
/* ==================================================================== * 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/>. * */#ifndef ACCOUNTRECORD_HXX#define ACCOUNTRECORD_HXX#include "Record.hxx"#include <ctime>/** This class derives from 'Record' superclass to implement * 'Account Record'. * * AccountRecord.hxx version 1.0 -- 17 Mar 2003 * Suha Cubukcuoglu */ class AccountRecord : public Record{ private: // the groupname, e.g. edNET string groupName; // centrex ID to denote the group, e.g. 1 for nPlusOne int centrexID; // Authentication type, e.g. Digest string authType; // Ip address of the user (Access List Authentication) string IPAddr; // password that is set for the user string password; // 'true' if the user is permanently registered bool staticReg; // vector of features for the subscriber vector <string> feature_ids; public: /** Constructor */ AccountRecord(); /** Destructor */ ~AccountRecord(); /** * populates this object from the database. * key is the key used to retrieve information, dbcon is a connection * to the database (provided by the DBManager) */ virtual bool populateRecord(KeyType key, DBConnection* dbcon); /** * amends this object in the database, returns true if nothing * goes wrong */ virtual bool amendRecord(DBConnection* dbconn); /** * deletes this object from the database, * returns true if nothing goes wrong */ virtual bool deleteRecord(DBConnection* dbconn); /** * inserts this object in the database, * returns true if nothing goes wrong */ virtual bool insertRecord(DBConnection* dbconn); /** * This function queries the database and returns a * list of all the relavent keys that could be used * to retrieve records of this type */ virtual KeyList getAllKeys(DBConnection* dbconn); virtual void displayRecord(); /** sets the group name of this account */ void setGroupName(string gname) { groupName = gname; }; /** sets the Centrex ID for the group which the user is in*/ void setCentrexID(int c_id) { centrexID = c_id; }; /** sets the Auth type: None, Digest, Access List */ void setAuthType(string auth_type) { authType = auth_type; }; /** sets the IP address of the user. This is used for Access * List Authentication. */ void setIP(string ip) { IPAddr = ip; }; /** sets the password for this user */ void setPassword(string pwd) { password = pwd; }; /** if the user must be registered statically the this function * must be used to set a permanent IP address for the user */ void setStaticReg() { staticReg = true; }; void unsetStaticReg() { staticReg = false; }; void setStaticReg(bool newStaticReg) { staticReg = newStaticReg; }; /** accessor to userName */ string getUserName() { return key; }; /** accessor to groupName */ string getGroupName() { return groupName; }; /** accessor to centrexID */ int getCentrexID() { return centrexID; }; /** accessor to authType */ string getAuthType() { return authType; }; /** acessor to password */ string getPassword() { return password; }; /** accessor to the IP Address of the user */ string getIP() { return IPAddr; }; /** checks to see if the user has been registered permanently */ bool isStaticReg() { return staticReg; }; /** returns the vector of Features that are active for the user. * If the actual argument if 'false' then Called contacts are * returned, otherwise Calling contacts are returned. */ vector <string> getFeatures(bool f); /** sorts the vector of Features according to priority */ void sort_features(vector <string> &f, int n); virtual Record* clone(); };#endif /** ACCOUNTRECORD_HXX */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -