Blame view

src/Info/ParamInfo.cc 6.01 KB
fbe3c2bb   Benjamin Renard   First commit
1
2
3
4
5
6
7
8
/*
 * ParamInfo.cc
 *
 *  Created on: Oct 8, 2014
 *      Author: m.mazel
 */

#include "ParamInfo.hh"
a11fb6d3   Hacene SI HADJ MOHAND   lol
9
#include "Parameter.hh"
dc01b853   Hacene SI HADJ MOHAND   il reste get cali...
10
#include "Process.hh"
a11fb6d3   Hacene SI HADJ MOHAND   lol
11
12
13
14
15
16
#include <vector>
#include <string>
#include <algorithm>
#include <sstream>
#include <iterator>
#include <iostream>
fbe3c2bb   Benjamin Renard   First commit
17
18
19

namespace AMDA {
namespace Info {
65414a1c   Hacene SI HADJ MOHAND   working for mav
20
21
22
    
LoggerPtr ParamInfo::_logger(Logger::getLogger("AMDA-Kernel.ParamInfo"));
    
fbe3c2bb   Benjamin Renard   First commit
23
24
25
26
std::ostream& operator<<(std::ostream& out, const ParamInfo& pi){

	out << "[ParamInfo]" << std::endl;
	out << "{"<<std::endl;
6d3dba6e   Benjamin Renard   Fix bug with fill...
27
28
29
30
31
32
33
34
35
36
37
38
	out << "  _id                  = " << pi._id << std::endl;
	out << "  _name                = " << pi._name << std::endl;
	out << "  _short_name          = " << pi._short_name << std::endl;
	out << "  _components          = " << pi._components << std::endl;
	out << "  _units               = " << pi._units << std::endl;
	out << "  _coordinates_system  = " << pi._coordinates_system << std::endl;
	out << "  _tensor_order        = " << pi._tensor_order << std::endl;
	out << "  _si_conversion       = " << pi._si_conversion << std::endl;
	out << "  _original_fill_value = " << pi._original_fill_value << std::endl;
	out << "  _fill_value          = " << pi._fill_value << std::endl;
	out << "  _ucd                 = " << pi._ucd << std::endl;
	out << "  _statusDef           = ";
fbe3c2bb   Benjamin Renard   First commit
39
40
41
42
	for (auto status : pi._statusDef)
		out  << "[" << status.getMinValue() <<
		", " << status.getMaxValue() <<
		", " << status.getName() << "]," << std::endl;
6d3dba6e   Benjamin Renard   Fix bug with fill...
43
44
45
	out << "  _processInfo         = " << pi._processInfo << std::endl;
	out << "  _processDesc         = " << pi._processDesc << std::endl;
	out << "  _linkedParamList     = ";
fbe3c2bb   Benjamin Renard   First commit
46
47
48
	for (auto linkedParam : pi._linkedParamList)
		out << linkedParam << ", ";
	out << std::endl;
6d3dba6e   Benjamin Renard   Fix bug with fill...
49
50
	out << "  _dataset_id          = " << pi._dataset_id << std::endl;
	out << "  _instrument_id       = " << pi._dataset_id << std::endl;
fbe3c2bb   Benjamin Renard   First commit
51
52
53
54
55
56
	out << "}" << std::endl;
	return out;
}

#define PUSHINFO(infoMap, key, value) if(!value.empty())infoMap.push_back(std::pair<std::string,std::string>(key,value))

a5ce87d1   Benjamin Renard   Cleanup to remove...
57
std::vector<std::pair<std::string,std::string>> ParamInfo::getInfoMap(ParameterManager * /*parameterManager*/)
fbe3c2bb   Benjamin Renard   First commit
58
59
60
61
62
63
64
{
	std::vector<std::pair<std::string,std::string>> infoMap;

	PUSHINFO(infoMap, PARAMETER_ID, getId());
	PUSHINFO(infoMap, PARAMETER_NAME,getName());
	PUSHINFO(infoMap, PARAMETER_SHORT_NAME,getShortName());

0051287c   Hacene SI HADJ MOHAND   starting us
65
	if (getProcessInfo().empty() )
fbe3c2bb   Benjamin Renard   First commit
66
67
68
	{
		//not a processed param
		PUSHINFO(infoMap, PARAMETER_COMPONENTS, getComponents());
c7f96386   Hacene SI HADJ MOHAND   6036
69
70
71
72
73
                                        if (getUnits() ==""){
                                            PUSHINFO(infoMap, PARAMETER_UNITS, std::string(UNSPECIFIED_UNIT));
                                        }else{
                                            PUSHINFO(infoMap, PARAMETER_UNITS, getUnits());
                                        }
fbe3c2bb   Benjamin Renard   First commit
74
75
76
77
78
79
		PUSHINFO(infoMap, PARAMETER_COORDSYS, getCoordinatesSystem());
		std::stringstream tensorOrder;
		tensorOrder << getTensorOrder();
		PUSHINFO(infoMap, PARAMETER_TENSOR, tensorOrder.str());
		PUSHINFO(infoMap, PARAMETER_SICONV, getSiConversion());

fbe3c2bb   Benjamin Renard   First commit
80

fbe3c2bb   Benjamin Renard   First commit
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
		std::stringstream fillVal;
		fillVal << getFillValue();
		PUSHINFO(infoMap, PARAMETER_FILLVALUE, fillVal.str());
		PUSHINFO(infoMap, PARAMETER_UCD, getUcd());

		//push status if defined
		if (!_statusDef.empty())
		{
			for (int i = 0; i < (int)_statusDef.size(); ++i)
			{
				std::stringstream statusIndex;
				statusIndex << i;

				std::stringstream crtVal;

				std::stringstream infoKey;
				infoKey.str("");
				infoKey << PARAMETER_STATUS_NAME << "[" << statusIndex.str() << "]";
				PUSHINFO(infoMap, infoKey.str(),_statusDef[i].getName());
				infoKey.str("");
				infoKey << PARAMETER_STATUS_MIN << "[" << statusIndex.str() << "]";
				crtVal.str("");
				crtVal << _statusDef[i].getMinValue();
				PUSHINFO(infoMap, infoKey.str(),crtVal.str());
				infoKey.str("");
				infoKey << PARAMETER_STATUS_MAX << "[" << statusIndex.str() << "]";
				crtVal.str("");
				crtVal << _statusDef[i].getMaxValue();
				PUSHINFO(infoMap, infoKey.str(),crtVal.str());
			}
		}
fbe3c2bb   Benjamin Renard   First commit
112
113
114
115
	}
	else
	{
		//processed parameter
c7f96386   Hacene SI HADJ MOHAND   6036
116
117
118
119
120
                                        if (getUnits() ==""){
                                            PUSHINFO(infoMap, PARAMETER_UNITS, std::string(UNSPECIFIED_UNIT));
                                        }else{
                                            PUSHINFO(infoMap, PARAMETER_UNITS, getUnits());
                                        }
fbe3c2bb   Benjamin Renard   First commit
121
122
123
124
125
126
127
128
129
130
131
132
		PUSHINFO(infoMap, PARAMETER_PROCESS_INFO, getProcessInfo());
		PUSHINFO(infoMap, PARAMETER_PROCESS_DESC, getProcessDescription());

		std::stringstream linkedParam;
		bool isFirst = true;
		for (auto param : _linkedParamList)
		{
			if (!isFirst)
				linkedParam << ",";
			isFirst = false;
			linkedParam << param;
		}
0051287c   Hacene SI HADJ MOHAND   starting us
133
		
dc01b853   Hacene SI HADJ MOHAND   il reste get cali...
134
                                         PUSHINFO(infoMap, PARAMETER_LINKED_PARAM, linkedParam.str());
65414a1c   Hacene SI HADJ MOHAND   working for mav
135
136
137
138
139
140
141
142
143
                    }

	return infoMap;
}

std::vector<std::pair<std::string,std::string>> ParamInfo::getTableInfoMap(ParameterManager *parameterManager)
{
    std::vector<std::pair<std::string,std::string>> tableInfoMap;
                           	if (!_tables.empty())
a133a1e6   Hacene SI HADJ MOHAND   adding other info
144
		{
65414a1c   Hacene SI HADJ MOHAND   working for mav
145
146
147
                                    	                    PUSHINFO(tableInfoMap, PARAMETER_ID, getId());
                                                            PUSHINFO(tableInfoMap, PARAMETER_NAME,getName());
                                                            PUSHINFO(tableInfoMap, PARAMETER_SHORT_NAME,getShortName());
a133a1e6   Hacene SI HADJ MOHAND   adding other info
148
			//push tables definition
65414a1c   Hacene SI HADJ MOHAND   working for mav
149
                                                            PUSHINFO(tableInfoMap,TABLES_DESCRIPTION ,std::string(" ")); 
a133a1e6   Hacene SI HADJ MOHAND   adding other info
150
151
152
			for (auto table : _tables)
			{
                                                                 if(table.second != nullptr)
65414a1c   Hacene SI HADJ MOHAND   working for mav
153
                                                                      table.second->addTableInfo(parameterManager, table.first, tableInfoMap);
a133a1e6   Hacene SI HADJ MOHAND   adding other info
154
                                                            }
65414a1c   Hacene SI HADJ MOHAND   working for mav
155
156
157
158
		}else{
                                    LOG4CXX_WARN(_logger, "Parameter "<<getId()<<" has no table");
                }
    return tableInfoMap;
fbe3c2bb   Benjamin Renard   First commit
159
160
161
162
}

} /* namespace Info */
} /* namespace AMDA */