Blame view

src/Info/ParamInfo.cc 5.37 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
69
70
71
72
73
74
75
	{
		//not a processed param
		PUSHINFO(infoMap, PARAMETER_COMPONENTS, getComponents());
		PUSHINFO(infoMap, PARAMETER_UNITS, getUnits());
		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
76

fbe3c2bb   Benjamin Renard   First commit
77
78
79
80
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
		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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
	}
	else
	{
		//processed parameter
		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
124
		
dc01b853   Hacene SI HADJ MOHAND   il reste get cali...
125
                                         PUSHINFO(infoMap, PARAMETER_LINKED_PARAM, linkedParam.str());
65414a1c   Hacene SI HADJ MOHAND   working for mav
126
127
128
129
130
131
132
133
134
                    }

	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
135
		{
65414a1c   Hacene SI HADJ MOHAND   working for mav
136
137
138
                                    	                    PUSHINFO(tableInfoMap, PARAMETER_ID, getId());
                                                            PUSHINFO(tableInfoMap, PARAMETER_NAME,getName());
                                                            PUSHINFO(tableInfoMap, PARAMETER_SHORT_NAME,getShortName());
a133a1e6   Hacene SI HADJ MOHAND   adding other info
139
			//push tables definition
65414a1c   Hacene SI HADJ MOHAND   working for mav
140
                                                            PUSHINFO(tableInfoMap,TABLES_DESCRIPTION ,std::string(" ")); 
a133a1e6   Hacene SI HADJ MOHAND   adding other info
141
142
143
			for (auto table : _tables)
			{
                                                                 if(table.second != nullptr)
65414a1c   Hacene SI HADJ MOHAND   working for mav
144
                                                                      table.second->addTableInfo(parameterManager, table.first, tableInfoMap);
a133a1e6   Hacene SI HADJ MOHAND   adding other info
145
                                                            }
65414a1c   Hacene SI HADJ MOHAND   working for mav
146
147
148
149
		}else{
                                    LOG4CXX_WARN(_logger, "Parameter "<<getId()<<" has no table");
                }
    return tableInfoMap;
fbe3c2bb   Benjamin Renard   First commit
150
151
152
153
}

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