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

📄 params.h

📁 这是一个著名的应用层组播中间件的源码
💻 H
字号:
//Copyright (c) 2004, Charles Killian, Adolfo Rodriguez, Dejan Kostic, Sooraj Bhat, and Amin Vahdat//All rights reserved.////Redistribution and use in source and binary forms, with or without//modification, are permitted provided that the following conditions are met:////   * Redistributions of source code must retain the above copyright//     notice, this list of conditions and the following disclaimer.//   * 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.//   * Neither the names of Duke University nor The University of//     California, San Diego, nor the names of its contributors//     may be used to endorse or promote products derived from//     this software without specific prior written permission.////THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"//AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE//IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE//DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE//FOR ANY DIRECT, 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.#ifndef params_h#define params_h#include <stdio.h>//For internal use from within params.  See params below.class param {  char* key;  char* strvalue;  int* intvalue;  double* doublevalue;  public:    param(char* key, char* value) { this->key = key; this->strvalue = value; intvalue=NULL; doublevalue=NULL; }    param() { key=NULL; strvalue=NULL; intvalue=NULL; doublevalue=NULL; }    ~param() { }    char* getkey() {return key;}    char* set(char* value) { char* old = strvalue; strvalue=value; delete intvalue; intvalue=NULL;                             delete doublevalue; doublevalue=NULL; return old;}    int getint();    double getdouble();    char* getstr() { return strvalue; }    int print(FILE* ostream);};class params {  public:    bool isset(char* key); //returns true if the parameter is set.    int getint(char* key); //returns the value of the parameter as an int.    double getdouble(char* key); //returns the value of the parameter as a double.    char* getstr(char* key); //returns the value of the parameter as a string.        char* set(char* key, char* value); //returns the old value of the param.    /**      * Loads the parameters as though from the command line.  Follows this method:     * 1 - Ignores argv[0], as this is the program executable     * 2 - If no option file is specified, defaults are read in from params.default     * 3 - If argv[1] is a file -- parameters are read in from it     * 4 - Remaining arguments are read and parsed as command-line [potentially] overriding values.     * 5 - Returns the number of parameters set.     */    int loadparams(int argc, char** argv);    /**     * Files are read in as follows:     * # is the comment delimiter.  Lines beginning with it are ignored.       *   The remainder of any line containing it, unless a quoted string are ignored.     * parameters are set by parameter = value, or parameter = "value"       */    int loadfile(char* filename);        int print(FILE* ostream); // Prints the parameters to the FILE specified.        params();    private:      param* data;    int max_data;    int cur_data;    param* find(char* key);};#endif

⌨️ 快捷键说明

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