【 colorado 】
按:摘编自DPWI第30章
通过配置文件可以设置Ice应用程序的各个方面,Ice运行时能够识别配置文件中规定的属性集。Ice只会在创建通信器时读入属性配置。也就是说,若要设置属性的话,必须在创建通讯器以前设置,否则不起作用。
1、配置文件:
以#开头部分为注释。属性单词之间可以有空格。属性前、后空格自动清除,中间的空格会保留。
属性格式:<应用程序名>.<类别名>[.<子类别名>]。
以Ice,IceBox,IceGrid,IcePatch2,IceSSL,IceStorm,Freeze,Glacier2 为前缀的属性专用于Ice运行时,不能用于用户程序和配置。
配置文件可通过环境变量ICE_CONFIG指定,也可以在命令行指定:
server --Ice.Config=/usr/local/server.config, ./server.config
属性也可以在命令行上指定:
server --Ice.MessageSizeMax=4096 --Ice.Config=/usr/local/server.config
无论命令行指定的属性在前,还是在后,命令行指定的属性总是会覆盖配置文件中的同名属性。
2、命令行分析、初始化
$ ./server --myoption --Ice.Config=server.config -x --Ice.Trace.Network=3 -y
当通讯器执行初始化语句:
// ...
Ice::CommunicatorPtr ic;
// ...
ic = Ice::initialize(argc, argv);
// ...
initialize返回时,argv中包含的形参向量为:--myoption –x –y;与Ice相关参数均被传给Ice运行时,并从形参向量中删除,留给应用程序的只是应用程序特定的参数向量。Ice:Application的run函数具有类似功能,传入run函数的参数向量只含有应用程序特定的形参向量。Ice相关形参
向量已在调用run函数前,由Ice:Application处理,并传给了Ice运行时。
Ice.ProgramName属性(argv[0])为应用程序名称。
3、编程操作属性
可以通过通讯器的属性方法操作属性。
3.1、读取属性
getProperty:返回指定属性的字符串值,属性未定义,返回空串。
getPropertyWithDefault:返回指定属性的字符串值,属性未定义,返回提供的缺省值。
getPropertyAsInt:类似getProperty,返回整数,若非有效数值,则返回0。
getPropertyAsIntWithDefault:类似getPropertyAsInt,若非有效数值,则返回缺省值。
getPropertiesForPrefix:返回指定前缀的属性集合,类型为PropertyDict。
// ...
Ice::CommunicatorPtr ic;
// ...
ic = Ice::initialize(argc, argv);
//
Ice::PropertiesPtr props = ic->getProperties();
Ice::Int maxSize
= props->getPropertyAsIntWithDefault("Filesystem.MaxFileSize",1024);
// ...
3.2、设置属性
setProperty可将属性设置为指定值。由于通讯器在调用Ice:initialize(argc,argv);时就会读取配置文件,之后不再重新读配置。因此本函数应该在初始化之前调用,初始化之后设置属性,在重启应用程序前是不起作用的。
设置属性集:
Ice::PropertiesPtr props = Ice::createProperties(argc, argv);
props->setProperty("Ice.Trace.Network", "0");
props->setProperty("Ice.Trace.Protocol", "0");
// ...
Ice::InitializationData id;
id.properties = props;
Ice::CommunicatorPtr ic = Ice::initialize(id);
// ...
3.3、分析属性
• getCommandLineOptions: 把属性集转换为命令行选项。
• parseCommandLineOptions:把命令行选项转换为属性集。
使用范例:
int main(int argc, char* argv[])
{
// 创建一个空属性集。
Ice::PropertiesPtr props = Ice::createProperties();
// 将argc/argv转换为字符串序列。
Ice::StringSeq args = Ice::argsToStringSeq(argc, argv);
//析出所有以 --Filesystem 开始的选项。
args = props->parseCommandLineOptions("Filesystem", args);
// args 现在只包含未析出的选项。所有以--Filesystem开头的选项被转换为属性,
// 存放在props对象中。现在,把剩余的参数转换回arg/argv向量。
Ice::stringSeqToArgs(args, argc, argv);
// 初始化通讯器。
Ice::InitializationData id;
id.properties = props;
Ice::CommunicatorPtr ic = Ice::initialize(argc, argv, id);
// 创建通讯器之后,argc/argv只包括与Ice属性和Filesystem属性无关的选项。
// ...
}
3.4、实用操作
.clone 创建一份属性集副本。
.load 从指定配置文件中装载属性集。
4、未用属性
Ice.Warn.UnusedProperties 设置为非零。若属性设置但未读过其值,在通讯器销毁时,会发出警告,用于检查拼写负荆请罪。缺省为零,表示禁用。
相关推荐
JtagIce自制资料, 包括电路图和Firmware。经过亲自验证测试OK的。 其中电路图貌似支持JtagIce和STK500, 我验证过JtagIce没有问题,但是STK500的功能却不管用。不过我们也是主要使用JtagIce来仿真和通过Jtag口烧录...
添加了mybatis-plus和Lombok 测试使用Guava 添加了JWT认证方式 升级springboot 2.1.6.RELEASE 添加了mq的入门 添加了redis的入门 记忆快取 添加了email的入门 添加了数据库连接池 添加了作动器(系统监控) 添加了...
5、Hadoop生态圈的学习笔记,主要记录HDFS、MapReduce、Yarn相关读书笔记及源码分析等 5.1 HDFS Hadoop快速入门 HDFSOverView Hadoop广义生态系统 Hadoop高可用配置 HadoopCommon分析 HDFS集群相关管理 HDFS Shell ...
Icecream Password Manager功能介绍 1、主密码 唯一需要记住的密码。 2、安全笔记 在密码管理器的安全笔记中保护您的想法。 3、安全 领先的加密标准,保护您的隐私。 4、浏览器插件 从您最喜爱的浏览器即时...
已经在WIN8系统的笔记本上装过,是可以使用的。 双龙JUNGO-Atmel-Corp-JTAGICE-mkII驱动安。
有关介绍和使用说明,请参见。 问题 Windows兼容性-目前没有。 也许这可以在cygwin下工作,但是我还没有尝试过。 HTML生成速度-我已经尝试使其加快速度,并且距我的第一个蛮力方法还有很长的路要走。 但是,在具有...
摘要:ICE1QS01是一种支持低功率待机和功率因数校正(PFC)的开关电源准谐振控制器。介绍了ICE1QS01的基本结构、工作原理及其应用电路与设计。 关键词:准谐振控制器;ICE1QS01;反激变换器;设计引言ICE1QS01是...
Agata Maria的Ruby笔记 :gem_stone:这是什么我从个人笔记以及其他一些资源。这不是什么全面的Ruby指南! 我是新手,我会在学习过程中完成这些笔记,因此它们会不断发展。 我希望将来能够将它们用作快速参考,也欢迎...
一个跨平台的笔记记录和目标跟踪应用程序,用于基于ElectronJS的渗透测试人员。 下载 内容 报告 报告错误 报告一个安全漏洞 即将来临 当前目标 如何贡献? 学分 检查清单 我们的目标是在v0.3版本中发布许多清单。...
使用OpenCV和灰度图像转换对PolSAR图像中的冰山进行检测。 灰度级txn是主代码文件。 复制冰山提供了另一种方法。 将Polsar位图图像保存在与笔记本相同的文件夹中。 默认图像名称是img1.bmp,可以在代码中手动更改...
离线版电子笔记 Office 电子日记是一款写日记和收集文档资料的软件,界面效仿Office Word ,同时支持Word中常用的文字编辑排版功能,可以作为Microsoft Office产品系列的强力补充。
该控制器IC工作在准谐振模式,典型应用包括TV,VCR,DVD播放机,卫星接收机和笔记本电脑适配器等。 为了在轻载下降低功率消耗,ICE1QS01随着负载的减小,其开关频率逐步数字式地降至20kHz的最低值。同时,随频率...
css笔记整理(精简) 初识CSS CSS语法 CSS样式引入 css选择器 CSS中的块级元素与行内元素 background 背景(集合样式) font 文字(集合样式) border 边框(复合样式,集合样式) CSS 框模型概述
古地理 收集笔记本以将PISM仿真数据转换为更奇怪的格式并绘制数据 ...gs://ldeo-glaciology/paleo_ensemble/timeseries-2.zarr : 366M : 'slvol' and 'ice_volume_glacierized' every year since 125
:ice_skate: 如果可以的话赶上我 :skateboard: 适用于Sonic Riders PC的所有模块。 也称为“ Netplay Mod”。 笔记 该项目是一项“进行中的工作”; 尽管它可以使用/播放,但我的个人素质很高,因此目前还不认为该...
该存储库包含 Robin Schaufler 为 TechGirlz 开发的课程材料和教师课程笔记。 可以在上找到幻灯片。 到目前为止,唯一提供的课程是: JS介绍 JS介绍 JavaScript 简介重新开发,从 Trevor Geise 的笔记和幻灯片开始...
Pelee: A Real-Time Object Detection System on Mobile Devices(一)论文地址:(二)核心思想:(三)Two-Way Dense Layer:(四)Stem Block:(五)Dynamic number of channels in bottleneck layer:(六)...
ICE和PDP描述本笔记本的目的是研究什么是部分依赖图(PDP)和个别条件期望(ICE)以及如何对其进行评估。 此外,它旨在阐明该方法的假设和局限性。作者Laurent Lava(laurentlava04 [at] gmail.com)版本记录0.2 ...
笔记 为Proxmark3 RDV4构建 请参阅上表中的说明链接,以为Proxmark3 RDV4设备构建,刷新和运行。 为通用Proxmark3平台构建 为了为通用Proxmark3平台构建此存储库,我们敦促您阅读“ 对于通用的Proxmark3平台,我们...
此外,还使用react和electronic创建了一个GUI,以创建一个macOS应用。该应用位于名为sudoku的根文件夹中。 笔记: 我显然应该创建一个清除按钮,因为如果您已经输入了错误的输入,请单击Solve