配置文件操作相关类:
1、ACE_Configuration_Heap:它可以用在几乎所有的平台上,在内存中保存所有配置信息.可以对内存的分配进行定制,使用持久的后备存储,但是最常用的是动态分配的堆内存,所以这个类的名字里面含有一个Heap;
2、ACE_Configuration_Win32Registry:它只能用在Windows平台上,它实现了ACE_Configuration类的接口,可以访问合操纵注册表中的数据;
3、ACE_Registry_ImpExp:这个类使用了一种文本格式,其中的每个值都有类型信息.
4、ACE_Ini_ImpExp:这个类使用的是较老的Windows"INI"文件的格式,其中的值没有相关联的类型信息,因此,不管原来的类型是什么,使用ACE_Ini_ImpExp导出的配置数据总是作为字符串数据导入;
5.ACE_Configuration_Section_Key 指定到某个Section的类
下面的例子是ACE_Configuration_Heap类的使用样例,用于从配置文件中读取配置信息;配置文件的格式如下:
[SECTION]
count=5
例子代码:
ACE_Configuration_Heap config;
config.open();
ACE_Ini_ImpExp imp(config);
if (imp.import_config(ACE_TEXT("configIniFilePath")))
{
ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT("%C not found!\n"), "configIniFilePath"), 0);
}
ACE_Configuration_Section_Key section;
if (config.open_section(config.root_section(), ACE_TEXT("SECTION"), 0, section))
{
ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT("%C Format Error when get SECTIONsection!\n")), 0);
}
ACE_INT32 nCount = 0;
ACE_TString value;
if (config.get_string_value(section, ACE_TEXT("count"), value))
{
ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT("%C Format Error when get decoder count!")), 0);
}
nCount = ACE_OS::atoi(value.c_str());