ICE的属性设置

原创 2012年03月24日 22:38:34
1、ICE的属性即"name=value"值,具体的name范畴可以见后续描述。可以在程序中设置属性值到ICE的运行环境中
   但一定要注意在Communicator::Initialize方法调用之前设置好值,在之后设置的值会被ICE的运行环境忽略
2、属性名不能包含如下前缀:Ice、IceBox、IceGrid、IcePatch2、IceSSL、IceStorm、Freeze、Glacier2
3、属性名称和属性值中开始和结束的空格或者tab字符会被忽略
4、有一个特殊的属性Ice.Warn.UnusedProperties,将其设置为非零值,那么在communicator析构时会检测是否有
   属性从未读取过,则会报告异常,可用来检测是否有哪些属性因为名字拼写错误从未读取
5、设置属性的方式有如下几种
   A、通过简单的命令行参数指定:./server --Ice.Trace.Protocol=1
   B、通过配置文件指定: ./server --Ice.Config=/data/home/server.conf
   C、通过程序实现属性设置:setProperty("Ice.Trace.Protocol", "1");
6、ice的属性配置文件需要遵循以下规则:
   A、配置文件中以#开始的行为注释行
   B、配置文件中的特殊字符'#'、'\'、'='可以通过转移字符'\'来标示
   C、缺省配置文件通过环境变量ICE_CONFIG指定
   D、可以通过命令行参数--Ice.Config特殊指定配置文件路径
   E、命令行上的参数优先级高于配置文件中的优先级
   F、可以通过--Ice.Config指定多个属性配置文件,文件路径间以','分割
   G、不管输属性配置文件还是命令参数,后面的属性值会覆盖前面定义的属性值
7、在命令行上设置属性有如下几种格式:
   A、--Ice.Trace.Protocol=1               //将属性设置为1
   B、--Ice.Trace.Protocol                 //未标示值的属性值为1
   C、--Ice.Trace.Protocol=                //清除默认属性
8、应用程序中可以通过设置Ice.ProgramName来修改运行程序的名称
9、ICE的运行时环境维护一个程序的属性集合PropertiesPtr,可以通过如下方式获取一个属性集合:
   A、调用Ice::createProperties创建一个属性集合
   B、调用Ice::CommunicatorI::getProperties获取系统当前环境的属性集合
   C、调用
10、属性集合Properties提供如下方法用于属性的读写操作:
   A、std::string getProperty(const std::string&);
   B、std::string getPropertyWithDefault(const std::string&, const std::string&);
   C、Ice::Int getPropertyAsInt(const std::string&);
   D、Ice::Int getPropertyAsIntWithDefault(const std::string&, Ice::Int);
   E、PropertyDict getPropertiesForPrefix(const std::string&);
   F、void setProperty(const std::string&, const std::string&);
   G、PropertiesPtr clone();                   // 深度拷贝属性集合
   H、void load(const std::string&);           // 从配置文件中加载属性集合
   I、StringSeq getCommandLineOptions();       // 将属性解析成命令行格式
   J、StringSeq parseCommandLineOptions(const std::string&, const StringSeq&); // 从StringSeq中匹配前缀的参数解析成属性,并移除对应值
   K、StringSeq parseIceCommandLineOptions(const StringSeq&); // 从StringSeq中解析ICE运行环境属性,并移除对应值
11、setProperty方法一般需要在调用Communicator::initialize之前调用,常用的调用格式如下:
    Ice::InitializationData id;
    id.properties = Ice::createProperties(args);
    id.properties->setProperty("MyProperties", "abcdefg");
    _communicator = Ice::initialize(id);
12、属性集合对象提供的方法好多是基于StringSeq的,但是有些时候我们需要的是argc、argv这样的参数,那么ICE提供方法在其间进行转换:
    StringSeq Ice::argsToStringSeq(int argc, char* argv[]);
void Ice::stringSeqToArgs(const StringSeq& args, int& argc, char* argv[]);

相关文章推荐

Ice笔记---Ice属性与配置

1.      概述 Ice使用了一种配置机制,允许我们控制自己的Ice应用在运行时的许多行为,比如最大消息尺寸、线程数,是否产生网络跟踪消息。这种机制不仅能用于配置Ice,还可以用它来给自己的应用...

ICE的属性配置

本文介绍了如何通过命令行参数或配置文件设置ICE的行为 在前一篇 文章中,大家可能都注意到了一个细节,Ice的初始化函数initialize 的输入参数正好是主函数的输入参数,也就是命令行参数(...

ICE 学习进阶4-配置属性

Ice Config

java.util.Properties.getProperty()方法实例

java.util.Properties.getProperty(String key) 方法将搜索此属性列表中指定键的属性值。如果在属性列表中,默认属性列表及其默认值找到了键,然后检查递归。如果未找...

ice安装以及简单使用

ICE(Internet Communications Engine)是一个中间件平台。作为一个高性能的互联网通信平台,ICE包含了很多分层的服务和插件(Plug-ins),并且简单、高效和强大。 ...

ICE的属性配置 C++版

(2011-09-13 20:57:05) 转载 标签: 杂谈   Ice的初始化函数initialize的输入参数正好是主函数的输入参数,也就是...

ICE笔记(07):Ice属性和配置

【colorado】 按:摘编自DPWI第30章 通过配置文件可以设置Ice应用程序的各个方面,Ice运行时能够识别配置文件中规定的属性集。Ice只会在创建通信器时读入属性配置。也就是说,若要设置属性...

Centos6 下安装Ice

1 打开Ice官网https://zeroc.com/distributions/ice    找到Linux ----Red Hat选中 2 按如下命令进行安装:   cd...
  • lsb2002
  • lsb2002
  • 2017年01月05日 19:45
  • 419

Ubuntu装中文输入法

1. 安装中文System(系统)—— Administration(系统管理)——Language Support(语言支持)里面。找到并勾选: Chinese(汉语),自动下载 、安装2.安...
  • whuqin
  • whuqin
  • 2010年07月14日 21:12
  • 1376

VS 宏目录配置(ICE项目属性配置)

1.在vs2013的“菜单”-“视图”-“其他窗口”-“属性管理器”可以添加用户自定义宏 2.添加目录的时候可以添加注册表目录,这样就不用到每台机器上面具体配置了。 注册表目录添加如下:IceHo...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ICE的属性设置
举报原因:
原因补充:

(最多只允许输入30个字)