⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vjtapiserverdata.hxx

📁 SIP(Session Initiation Protocol)是由IETF定义
💻 HXX
字号:
#ifndef VJTAPI_SERVER_DATA_H#define VJTAPI_SERVER_DATA_H/* ==================================================================== * 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/>. * */static const char* const VJtapiServerData_hxx_Version =    "$Id$";#include <stdio.h>#include <string>#include "VXmlParser.hxx"#include "VException.hxx"/// JTAPI server data containerclass VJtapiServerData{    public:    ///    VJtapiServerData ()        {}    /// Constructor from XML input string        VJtapiServerData(string &xmlData) throw (VException&)        {            parse(xmlData);        }    /// Copy constructor        VJtapiServerData (const VJtapiServerData& copy)        {            deepCopy(copy);        }    /// Assignment operator        VJtapiServerData operator= (const VJtapiServerData& copy)        {            if (this != &copy)            {                deepCopy(copy);            }            return *this;        }    /// Parse the XML input string        void parse (string &xmlData) throw (VException&)        {            VXmlParser parser(xmlData);            xmlNode *theNode = parser.findNode(NULL, "jtapiServer");            _host = parser.getAttribute(theNode, "host");            _callingPort =                atoi(parser.getAttribute(theNode, "callingPort").c_str());            _calledPort =                atoi(parser.getAttribute(theNode, "calledPort").c_str());            _name = _host + ":" + (parser.getAttribute(theNode, "callingPort")) +                    ":" + (parser.getAttribute(theNode, "calledPort"));            theNode = parser.findNode(NULL, "clientPort");            _clientPort =                atoi(parser.getAttribute(theNode, "value").c_str());            theNode = parser.findNode(NULL, "multiGroup");            _multiGroup = parser.getAttribute(theNode, "value");            list < xmlNodePtr > listOfMultiGroups;            parser.findNode(theNode, "group", listOfMultiGroups);            _groups.clear();            for (list < xmlNodePtr > ::iterator itr = listOfMultiGroups.begin();                    itr != listOfMultiGroups.end(); itr++)            {                xmlNodePtr serverNode = (*itr);                // get value attribute from node                string val = parser.getAttribute(serverNode, "value");                _groups.push_back(val);            }        }    ///        friend ostream& operator<< (ostream &os, const VJtapiServerData &elem);    ///        const string& getName() const        {            return _name;        }    ///        const string& getHost() const        {            return _host;        }    ///        int getCallingPort() const        {            return _callingPort;        }    ///        int getCalledPort() const        {            return _calledPort;        }    ///        int getClientPort() const        {            return _clientPort;        }    ///        const string& getMultiGroup() const        {            return _multiGroup;        }    ///        void getGroups(list < string > &retVal) const        {            retVal.clear();            for (list < string > ::const_iterator itr = _groups.begin();                    itr != _groups.end(); itr++)            {                retVal.push_back(*itr);            }        }    private:    /// copy operation to copy all elements (used by copy constructor and assign)    void deepCopy(const VJtapiServerData &copy)        {            _name = copy._name;            _host = copy._host;            _callingPort = copy._callingPort;            _calledPort = copy._calledPort;            _clientPort = copy._clientPort;            _multiGroup = copy._multiGroup;            _groups = copy._groups;        };            string _name;        string _host;        int _callingPort;        int _calledPort;        int _clientPort;        string _multiGroup;        list < string > _groups;};///inline ostream& operator<<(ostream &os, const VJtapiServerData &elem){    os << "Name:          " << elem._name << endl;    os << "Host:          " << elem._host << endl;    os << "Calling Port:  " << elem._callingPort << endl;    os << "Called Port:   " << elem._calledPort << endl;    os << "Client Port:   " << elem._clientPort << endl;    os << "Multi Group:   " << elem._multiGroup << endl;    os << " Groups:   " << endl;    list < string > grpList;    elem.getGroups(grpList);    for (list < string > ::const_iterator itr = grpList.begin();            itr != grpList.end(); itr++)    {        os << "  " << *itr << endl;    }    return os;}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -