Hi all...
can anyone explain how i can read from a config file and retrieve its value in a cpp file...
I am writing down the cfg file...

<APM>

[APM_SAYHELLO]
Formatter.Type = String
Formatter.Val = AtlLogPlainTextFormatter
Filter.Type = String
Filter.Val = LEVEL_DDEBUG
ComponentLevelFilter.Type = String
ComponentLevelFilter.Val = true 
ComponentsEnabled.Type = NumList
ComponentsEnabled.Val = {1,2}
SizeLimit.Type = Number
SizeLimit.Val = 10000
CentralLoggerCompo.Type = StringList
CentralLoggerCompo.Val = {CMP1, CMP3, CMP5} 


[APM_SAYHOWRU]
Formatter.Type = String
Formatter.Val = AtlLogPlainTextFormatter
Filter.Type = String
Filter.Val = LEVEL_DDEBUG
ComponentLevelFilter.Type = String
ComponentLevelFilter.Val = true 
ComponentsEnabled.Type = NumList
ComponentsEnabled.Val = {1,2}
SizeLimit.Type = Number
SizeLimit.Val = 10000
CentralLoggerCompo.Type = StringList
CentralLoggerCompo.Val = {CMP2, CMP4, CMP6} 


<XR>
[XR_ONE]
EventId_0.Type = Number
EventId_0.Val = 0
EventName_0.Type = String
EventName_0.Val = RTB0_RECP_RDY_LO
EventChannel_0.Type = String
EventChannel_0.Val = RT
EventOwners_0.Type = StringList 
EventOwners_0.Val = {XRVxActor1, XREngDbg}
EventDataType_0.Type = String
EventDataType_0.Val = null


[XR_TWO]
EventId_1.Type = Number
EventId_1.Val = 1
EventName_1.Type = String
EventName_1.Val = RTB0_RECP_RDY_HI
EventChannel_1.Type = String
EventChannel_1.Val = RT
EventOwners_1.Type = StringList
EventOwners_1.Val = {XRVxActor1, XREngDbg}
EventDataType_1.Type = String
EventDataType_1.Val = null

<MGR>
[MGR_SYS]
BootTimeout.Type = String
BootTimeout.Val = 200.0
ResetTimeout.Type = String
ResetTimeout.Val = 200.0
ShutdownTimeout.Type = String
ShutdownTimeout.Val = 300.0
ShutdownCompleteTimeout.Type = String
ShutdownCompleteTimeout.Val = 300.0


[MGR_SUBSYS]
BootTimeout.Type = String
BootTimeout.Val = 300.0
ResetTimeout.Type = String
ResetTimeout.Val = 300.0
ShutdownTimeout.Type = String
ShutdownTimeout.Val = 30.0
ShutdownCompleteTimeout.Type = String
ShutdownCompleteTimeout.Val = 300.0

--------------------------------------------------------------------------------

and the cpp file, in which i need to read it is...

#include "ConfigInterface.h"

CI(string file, string comp)	//constructor
{
_file_name = file;
_comp_name = comp;
init();
}

void * CI::getval(string event, string event_data)
{ 
setresult(event, event_data);
return result ;
}

// processing to read the config file here.


void CI::init()
{
//need to work on.......

}

void CI::setresult(string event, string event_data)
{

// need to work on.......

}

int main()
{

CI MGRConfig("MyConfigData.cfg", "MGR"); 
// creating object of CI class and providing config file name and //section name i wnat to read.
int *sysMgrTimeOut = (int*)MGRConfig.getval("MGR_SYS", "ResetTimeout"); 
// i have type casted the value bcoz getval will return void*, in fact //that's why it is returning void*, so that we can convert it in any //type.
cout<<*sysMgrTimeOut;
	// Now it should print 200.0 as per the confg file.

// same way it can get read any value from config file for any events //fo any component.

return 0;
}

-------------------------------------------------------------------------------

and the header file is:

//ConfigInterface.h

//i can add any function/varibale/member in private section for my //processing. 


class CI
{

private:
// the config file i need to read.
string _file_name;	

// component i need to read from config file. e.g <XR>string _comp_name	

// requested events in getval. e.g [XR_ONE]
string _events;	
// requested events_data getval. e.g EventId_0
string _events_data;
// function to set the requested value.
void setval(string event, string event_data);

void * result;
void init();	
// in this function i need to do all processing to read the config 
//file and set the value for diffrent events data of diffrent //components

public:
CI(string file, string comp);	//constructor
void * getval(string event, string event_data); 
// should be return void pointer on the value so that it can be //convert into any data type later.

};

Please stop putting your questions in quote tags -- it just makes your posts confusing to read/understand.

I am so sorry, i'll keep that in mind...

This article has been dead for over six months. Start a new discussion instead.