Commit afa22fae5d532a6d2590e6fe710533caba97eacb

Authored by Hacene SI HADJ MOHAND
1 parent 50365881

presque

src/ExternLib/Maglib/AMDAPlugin.cc 0 → 100644
@@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
  1 +/*
  2 + * To change this license header, choose License Headers in Project Properties.
  3 + * To change this template file, choose Tools | Templates
  4 + * and open the template in the editor.
  5 + */
  6 +#include "ServicesServer.hh"
  7 +#include "PluginManager.hh"
  8 +
  9 +#include "MLTProcess.hh"
  10 +
  11 +using namespace AMDA::Parameters;
  12 +
  13 +/**
  14 + Retrieve the Plugin version we're going to expect
  15 +*/
  16 +extern "C" const char* getPluginVersion()
  17 +{
  18 + return "(Version)";
  19 +}
  20 +
  21 +/**
  22 + Tells us to register our functionality to an engine kernel
  23 +*/
  24 +extern "C" void registerPlugin(AMDA::Plugins::PluginManager & pm)
  25 +{
  26 + ProcessFactory factMLTProcess = boost::factory<MLTProcess*>();
  27 + ServicesServer::getInstance()->addProcessFactory("maglib_mlt", factMLTProcess);
  28 + ServicesServer::getInstance()->linkProcessWithPlugin("maglib_mlt", pm.getCurrentPluginPath());
  29 +}
  30 +
src/ExternLib/Maglib/CMakeLists.txt
@@ -29,6 +29,7 @@ ADD_LIBRARY( maglib SHARED ${source_files} ) @@ -29,6 +29,7 @@ ADD_LIBRARY( maglib SHARED ${source_files} )
29 target_link_libraries( 29 target_link_libraries(
30 maglib 30 maglib
31 ${LOG4CXX_LIBRARIES} 31 ${LOG4CXX_LIBRARIES}
  32 + $(MAGLIBLIBRARIES)
32 Parameters 33 Parameters
33 InternLib 34 InternLib
34 TimeTableCatalog 35 TimeTableCatalog
src/ExternLib/Maglib/MLTProcess.cc 0 → 100644
@@ -0,0 +1,56 @@ @@ -0,0 +1,56 @@
  1 +/*
  2 + * To change this license header, choose License Headers in Project Properties.
  3 + * To change this template file, choose Tools | Templates
  4 + * and open the template in the editor.
  5 + */
  6 +
  7 +/*
  8 + * File: MLTProcess.cc
  9 + * Author: hacene
  10 + *
  11 + * Created on July 23, 2020, 4:14 PM
  12 + */
  13 +#include <stdlib.h>
  14 +#include <string>
  15 +
  16 +#include "Operation.hh"
  17 +#include "ParameterManager.hh"
  18 +#include "ParameterCreatorFromExpression.hh"
  19 +#include "MLTProcess.hh"
  20 +#include "MaglibCreator.hh"
  21 +
  22 +namespace AMDA {
  23 + namespace Parameters {
  24 +
  25 + MLTProcess::MLTProcess(Parameter& parameter) : SingleParamProcess_CRTP(parameter) {
  26 + }
  27 +
  28 + MLTProcess::MLTProcess(const MLTProcess& pProcess, Parameter &parameter) : SingleParamProcess_CRTP(pProcess, parameter) {
  29 + }
  30 +
  31 + TimeStamp MLTProcess::init() {
  32 +
  33 + TimeStamp timeStamp = _parameterInput->init(this, _timeIntervalList);
  34 + Parameter::InfoList lInfoList = _parameterInput->getInfoList();
  35 + _parameter.getInfoList().insert(lInfoList.begin(), lInfoList.end());
  36 + _paramInput = _parameterInput->getParamData(this).get();
  37 +
  38 + std::string isatex_str = "0";
  39 + std::string magout_str = "2";
  40 +
  41 + if (_attributList.size() == 2) {
  42 + isatex_str = _attributList[0];
  43 + magout_str = _attributList[1];
  44 + }
  45 + MaglibCreator lCreator(*this, *_paramInput, "mlt", isatex_str, isatex_str);
  46 + _operation = lCreator.getOperation();
  47 + _paramData = ParamDataSPtr(_operation->getParamOutput());
  48 + _paramData->setMinSampling(_paramInput->getMinSampling());
  49 + return timeStamp;
  50 + }
  51 +
  52 + MLTProcess::~MLTProcess() {
  53 + }
  54 +
  55 + }
  56 +}
0 \ No newline at end of file 57 \ No newline at end of file
src/ExternLib/Maglib/MLTProcess.hh 0 → 100644
@@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
  1 +/*
  2 + * To change this license header, choose License Headers in Project Properties.
  3 + * To change this template file, choose Tools | Templates
  4 + * and open the template in the editor.
  5 + */
  6 +
  7 +/*
  8 + * File: MLTProcess.hh
  9 + * Author: hacene
  10 + *
  11 + * Created on July 23, 2020, 4:14 PM
  12 + */
  13 +
  14 +#ifndef MLTPROCESS_HH
  15 +#define MLTPROCESS_HH
  16 +
  17 +#include "SingleParamProcess.hh"
  18 +
  19 +namespace AMDA {
  20 + namespace Parameters {
  21 +
  22 + class MLTProcess : public AMDA::Parameters::SingleParamProcess_CRTP<MLTProcess> {
  23 + public:
  24 + MLTProcess(Parameter &parameter);
  25 + MLTProcess(const MLTProcess& pProcess, Parameter& pParameter);
  26 + virtual ~MLTProcess();
  27 +
  28 + /**
  29 + * @overload DataWriter::init()
  30 + */
  31 + TimeStamp init();
  32 +
  33 + };
  34 +
  35 + }
  36 +}
  37 +#endif /* MLTPROCESS_HH */
  38 +
src/ExternLib/Maglib/MaglibCreator.hh
@@ -14,6 +14,189 @@ @@ -14,6 +14,189 @@
14 #ifndef MAGLIBCREATOR_HH 14 #ifndef MAGLIBCREATOR_HH
15 #define MAGLIBCREATOR_HH 15 #define MAGLIBCREATOR_HH
16 16
  17 +#include "ParamData.hh"
  18 +#include "VisitorOfParamData.hh"
  19 +#include "Posmag.hh"
  20 +
  21 +namespace AMDA {
  22 +namespace Parameters {
  23 +
  24 + class MaglibCreator : public VisitorOfParamData {
  25 + public:
  26 +
  27 + MaglibCreator(Process& pProcess, ParamData& paramInput, std::string output, std::string isatex, std::string magout) :
  28 + _process(pProcess), _paramData(paramInput), _operation(NULL), _output(output) {
  29 + _paramData.accept(*this);
  30 +
  31 + if (std::stoi(isatex) == 0 || std::stoi(isatex) == 1) {
  32 + _isatex = std::stoi(isatex);
  33 + } else {
  34 + BOOST_THROW_EXCEPTION(AMDA::AMDA_exception() << AMDA::errno_code(AMDA_ERROR_UNKNOWN) << AMDA::ex_msg(" Not handled in the Mablib"));
  35 + }
  36 + if (std::stoi(magout) >= 0 && std::stoi(magout) <= 3) {
  37 + _magout = std::stoi(magout);
  38 + } else {
  39 + BOOST_THROW_EXCEPTION(AMDA::AMDA_exception() << AMDA::errno_code(AMDA_ERROR_UNKNOWN) << AMDA::ex_msg(" Not handled in the Mablib"));
  40 + }
  41 + }
  42 +
  43 + /**
  44 + * @overload VisitorOfParamData::visit(ParamDataScalaireShort *)
  45 + */
  46 + void visit(ParamDataScalaireShort *) {
  47 + BOOST_THROW_EXCEPTION(AMDA::AMDA_exception() << AMDA::errno_code(AMDA_ERROR_UNKNOWN) << AMDA::ex_msg("ParamDataScalaireShort data not supported"));
  48 + }
  49 +
  50 + /**
  51 + * @overload VisitorOfParamData::visit(ParamDataScalaireFloat *)
  52 + */
  53 + void visit(ParamDataScalaireFloat *) {
  54 + BOOST_THROW_EXCEPTION(AMDA::AMDA_exception() << AMDA::errno_code(AMDA_ERROR_UNKNOWN) << AMDA::ex_msg("ParamDataScalaireFloat data not supported"));
  55 + }
  56 +
  57 + /**
  58 + * @overload VisitorOfParamData::visit(ParamDataScalaireDouble *)
  59 + */
  60 + void visit(ParamDataScalaireDouble *) {
  61 + BOOST_THROW_EXCEPTION(AMDA::AMDA_exception() << AMDA::errno_code(AMDA_ERROR_UNKNOWN) << AMDA::ex_msg("ParamDataScalaireDouble data not supported"));
  62 + }
  63 +
  64 + /**
  65 + * @overload VisitorOfParamData::visit(ParamDataScalaireLongDouble *)
  66 + */
  67 + void visit(ParamDataScalaireLongDouble *) {
  68 + BOOST_THROW_EXCEPTION(AMDA::AMDA_exception() << AMDA::errno_code(AMDA_ERROR_UNKNOWN) << AMDA::ex_msg("ParamDataScalaireLongDouble data not supported"));
  69 + }
  70 +
  71 + /**
  72 + * @overload VisitorOfParamData::visit(ParamDataScalaireInt *)
  73 + */
  74 + void visit(ParamDataScalaireInt *) {
  75 + BOOST_THROW_EXCEPTION(AMDA::AMDA_exception() << AMDA::errno_code(AMDA_ERROR_UNKNOWN) << AMDA::ex_msg("ParamDataScalaireInt data not supported"));
  76 + }
  77 +
  78 + /**
  79 + * @overload VisitorOfParamData::visit(ParamDataLogicalData *)
  80 + */
  81 + void visit(ParamDataLogicalData *) {
  82 + BOOST_THROW_EXCEPTION(AMDA::AMDA_exception() << AMDA::errno_code(AMDA_ERROR_UNKNOWN) << AMDA::ex_msg("ParamDataLogicalData data not supported"));
  83 + }
  84 +
  85 + /**
  86 + * @overload VisitorOfParamData::visit(ParamDataTab1DShort *)
  87 + */
  88 + void visit(ParamDataTab1DShort *) {
  89 + create<short>();
  90 + }
  91 +
  92 + /**
  93 + * @overload VisitorOfParamData::visit(ParamDataTab1DFloat *)
  94 + */
  95 + void visit(ParamDataTab1DFloat *) {
  96 + create<float>();
  97 + }
  98 +
  99 + /**
  100 + * @overload VisitorOfParamData::visit(ParamDataTab1DDouble *)
  101 + */
  102 + void visit(ParamDataTab1DDouble *) {
  103 + create<double>();
  104 + }
  105 +
  106 + /**
  107 + * @overload VisitorOfParamData::visit(ParamDataTab1DLongDouble *)
  108 + */
  109 + void visit(ParamDataTab1DLongDouble *) {
  110 + create<long double>();
  111 + }
  112 +
  113 + /**
  114 + * @overload VisitorOfParamData::visit(ParamDataTab1DInt *)
  115 + */
  116 + void visit(ParamDataTab1DInt *) {
  117 + create<int>();
  118 + }
  119 +
  120 + /**
  121 + * @overload VisitorOfParamData::visit(ParamDataTab1DLogicalData *)
  122 + */
  123 + void visit(ParamDataTab1DLogicalData *) {
  124 + BOOST_THROW_EXCEPTION(AMDA::AMDA_exception() << AMDA::errno_code(AMDA_ERROR_UNKNOWN) << AMDA::ex_msg("ParamDataTab1DLogicalData data not supported"));
  125 + }
  126 +
  127 + /**
  128 + * @overload VisitorOfParamData::visit(ParamDataTab2DShort *)
  129 + */
  130 + void visit(ParamDataTab2DShort *) {
  131 + BOOST_THROW_EXCEPTION(AMDA::AMDA_exception() << AMDA::errno_code(AMDA_ERROR_UNKNOWN) << AMDA::ex_msg("ParamDataTab2DShort data not supported"));
  132 + }
  133 +
  134 + /**
  135 + * @overload VisitorOfParamData::visit(ParamDataTab2DFloat *)
  136 + */
  137 + void visit(ParamDataTab2DFloat *) {
  138 + BOOST_THROW_EXCEPTION(AMDA::AMDA_exception() << AMDA::errno_code(AMDA_ERROR_UNKNOWN) << AMDA::ex_msg("ParamDataTab2DFloat data not supported"));
  139 + }
  140 +
  141 + /**
  142 + * @overload VisitorOfParamData::visit(ParamDataTab2DDouble *)
  143 + */
  144 + void visit(ParamDataTab2DDouble *) {
  145 + BOOST_THROW_EXCEPTION(AMDA::AMDA_exception() << AMDA::errno_code(AMDA_ERROR_UNKNOWN) << AMDA::ex_msg("ParamDataTab2DDouble data not supported"));
  146 + }
  147 +
  148 + /**
  149 + * @overload VisitorOfParamData::visit(ParamDataTab2DLongDouble *)
  150 + */
  151 + void visit(ParamDataTab2DLongDouble *) {
  152 + BOOST_THROW_EXCEPTION(AMDA::AMDA_exception() << AMDA::errno_code(AMDA_ERROR_UNKNOWN) << AMDA::ex_msg("ParamDataTab2DLongDouble data not supported"));
  153 + }
  154 +
  155 + /**
  156 + * @overload VisitorOfParamData::visit(ParamDataTab2DInt *)
  157 + */
  158 + void visit(ParamDataTab2DInt *) {
  159 + BOOST_THROW_EXCEPTION(AMDA::AMDA_exception() << AMDA::errno_code(AMDA_ERROR_UNKNOWN) << AMDA::ex_msg("ParamDataTab2DInt data not supported"));
  160 + }
  161 +
  162 + /**
  163 + * @overload VisitorOfParamData::visit(ParamDataTab2DLogicalData *)
  164 + */
  165 + void visit(ParamDataTab2DLogicalData *) {
  166 + BOOST_THROW_EXCEPTION(AMDA::AMDA_exception() << AMDA::errno_code(AMDA_ERROR_UNKNOWN) << AMDA::ex_msg("ParamDataTab2DLogicalData data not supported"));
  167 + }
  168 +
  169 + /**
  170 + * @brief get the TimeShifted parameterized operation.
  171 + */
  172 + Operation * getOperation() const {
  173 + return _operation;
  174 + }
  175 +
  176 + template <typename DataType>
  177 + void create() {
  178 +
  179 + if (_output == "mlt")
  180 + _operation = new MLT<DataType>(_process, dynamic_cast<ParamDataSpec<std::vector<DataType> >&> (_paramData), _isatex, _magout);
  181 + else if (_output == "invlat")
  182 + _operation = new InvLat<DataType>(_process, dynamic_cast<ParamDataSpec<std::vector<DataType> >&> (_paramData), _isatex, _magout);
  183 + else if (_output == "lparam")
  184 + _operation = new Lparam<DataType>(_process, dynamic_cast<ParamDataSpec<std::vector<DataType> >&> (_paramData), _isatex, _magout);
  185 + else
  186 + BOOST_THROW_EXCEPTION(AMDA::AMDA_exception() << AMDA::errno_code(AMDA_ERROR_UNKNOWN) << AMDA::ex_msg(" output type not supported"));
  187 +
  188 + }
  189 +
  190 + private:
  191 + Process &_process;
  192 + ParamData &_paramData;
  193 + Operation *_operation;
  194 + std::string _output;
  195 + int _isatex;
  196 + int _magout;
  197 + };
  198 + }
  199 +}
17 200
18 201
19 #endif /* MAGLIBCREATOR_HH */ 202 #endif /* MAGLIBCREATOR_HH */
src/ExternLib/Maglib/MaglibWarpper.hh
@@ -23,10 +23,9 @@ namespace AMDA { @@ -23,10 +23,9 @@ namespace AMDA {
23 class maglibWarpper { 23 class maglibWarpper {
24 public: 24 public:
25 25
26 - static void getPosmag(int iyear, int imonth, int iday, int ihour, int imin, int isec, float* rrmag, float* thetr, float* phir,  
27 - int* isatex, int* magout, float* xgsm, float* ygsm, float* zgsm, float* xgse, float* ygse, float* zgse, float* tgl,  
28 - float* flg, float* xlambr, float* tglc, float* hsl, float* clatgmr, float* clongmr, float * iposmg[15], int* ifai)  
29 - { 26 + static void getPosmag(int iyear, int imonth, int iday, int ihour, int imin, int isec, float& rrmag, float& thetr, float& phir,
  27 + int& isatex, int& magout, float& xgsm, float& ygsm, float& zgsm, float& xgse, float& ygse, float& zgse, float& tgl,
  28 + float& flg, float& xlambr, float& tglc, float& hsl, float& clatgmr, float& clongmr, std::vector<int>& iposmg, int& ifai) {
30 /** 29 /**
31 * 30 *
32 * @param iyear enre 2000 et 2015 31 * @param iyear enre 2000 et 2015
@@ -44,17 +43,21 @@ i * isatex : 1 = satellite excentrique (apogee &gt; @@ -44,17 +43,21 @@ i * isatex : 1 = satellite excentrique (apogee &gt;
44 // declaration 43 // declaration
45 44
46 int ifail; 45 int ifail;
  46 + int iposmg_o [15];
47 47
48 float rig[3][3], rgi[3][3], rgsm[3][3], rsmg[3][3], rggsm[3][3], rgsmg[3][3], rgse[3][3], rseg[3][3]; 48 float rig[3][3], rgi[3][3], rgsm[3][3], rsmg[3][3], rggsm[3][3], rgsmg[3][3], rgse[3][3], rseg[3][3];
49 float rgdip[3][3], rdipg[3][3], rigsm[3][3], rgsmi[3][3]; 49 float rgdip[3][3], rdipg[3][3], rigsm[3][3], rgsmi[3][3];
50 float alfag, alfas, deltas, tilt, tetdip, phidip, year; 50 float alfag, alfas, deltas, tilt, tetdip, phidip, year;
51 - 51 +
52 valfix_(ifail); 52 valfix_(ifail);
53 inigeom_(iyear, imonth, iday, ihour, imin, isec, year, alfag, tetdip, phidip, alfas, deltas, rig, rgi, rgdip, rdipg, rgsm, 53 inigeom_(iyear, imonth, iday, ihour, imin, isec, year, alfag, tetdip, phidip, alfas, deltas, rig, rgi, rgdip, rdipg, rgsm,
54 rsmg, tilt, rggsm, rgsmg, rgse, rseg, rigsm, rgsmi, ifail); 54 rsmg, tilt, rggsm, rgsmg, rgse, rseg, rigsm, rgsmi, ifail);
55 55
56 posmag_(magout, isatex, year, rrmag, thetr, phir, alfag, alfas, deltas, tilt, rgsm, rggsm, rgsmg, rgdip, rgse, tetdip, 56 posmag_(magout, isatex, year, rrmag, thetr, phir, alfag, alfas, deltas, tilt, rgsm, rggsm, rgsmg, rgdip, rgse, tetdip,
57 - phidip, xgsm, ygsm, zgsm, xgse, ygse, zgse, tgl, flg, xlambr, tglc, hsl, clatgmr, clongmr, iposmg, ifail); 57 + phidip, xgsm, ygsm, zgsm, xgse, ygse, zgse, tgl, flg, xlambr, tglc, hsl, clatgmr, clongmr, iposmg_o, ifail);
  58 +
  59 + for (int i = 0; i < iposmg_o.size(); i++)
  60 + iposmg[i] = iposmg_o[i];
58 61
59 } 62 }
60 }; 63 };
src/ExternLib/Maglib/Posmag.hh
@@ -19,12 +19,13 @@ @@ -19,12 +19,13 @@
19 #include "ParamData.hh" 19 #include "ParamData.hh"
20 #include "DataTypeMath.hh" 20 #include "DataTypeMath.hh"
21 #include "Operation.hh" 21 #include "Operation.hh"
22 -#include "SpiceKernelMgr.hh"  
23 #include <vector> 22 #include <vector>
24 23
25 namespace AMDA { 24 namespace AMDA {
26 namespace Parameters { 25 namespace Parameters {
27 26
  27 + using namespace std;
  28 +
28 template<typename DataType, class TOutputParamData> 29 template<typename DataType, class TOutputParamData>
29 class Posmag : public Operation { 30 class Posmag : public Operation {
30 public: 31 public:
@@ -68,7 +69,7 @@ namespace AMDA { @@ -68,7 +69,7 @@ namespace AMDA {
68 69
69 vector<DataType> in = _paramInput.getDataList()[_index]; 70 vector<DataType> in = _paramInput.getDataList()[_index];
70 double crtTime = _paramInput.getTime(_index); 71 double crtTime = _paramInput.getTime(_index);
71 - ime_t timestamp = crtTime; 72 + time_t timestamp = crtTime;
72 struct tm *tmp; 73 struct tm *tmp;
73 tmp = gmtime(&timestamp); 74 tmp = gmtime(&timestamp);
74 float i_rrmag = in[0]; 75 float i_rrmag = in[0];
@@ -101,25 +102,32 @@ namespace AMDA { @@ -101,25 +102,32 @@ namespace AMDA {
101 */ 102 */
102 103
103 float xgsm, ygsm, zgsm, xgse, ygse, zgse, tgl, 104 float xgsm, ygsm, zgsm, xgse, ygse, zgse, tgl,
104 - flg, xlambr, tglc, hsl, fclatgmr, clongmr,  
105 - tgl, flg, xlambr, tglc, hsl, clatgmr, clongmr, xlamb, clatgm, clongm; 105 + flg, xlamb, tglc, hsl, clatgmr, clongmr;
  106 +
106 int ifail; 107 int ifail;
107 - int iposmg[15]; 108 + std::vector<int> iposmg;
  109 + iposmg.resize(15);
108 110
109 /** 111 /**
110 - static void getPosmag(int iyear, int imonth, int iday, int ihour, int imin, int isec, float* rrmag, float* thetr, float* phir,  
111 - int* isatex, int* magout, float* xgsm, float* ygsm, float* zgsm, float* xgse, float* ygse, float* zgse, float* tgl,  
112 - float* flg, float* xlambr, float* tglc, float* hsl, float* clatgmr, float* clongmr, float * iposmg[15], int* ifai) 112 + static void getPosmag(int iyear, int imonth, int iday, int ihour, int imin, int isec,
  113 + * float* rrmag, float* thetr, float* phir,
  114 + int* isatex, int* magout, float*
  115 + * xgsm, float* ygsm, float* zgsm,
  116 + * float* xgse, float* ygse, float* zgse,
  117 + * float* tgl, float* flg, float* xlambr, float* tglc, float* hsl, float* clatgmr, float* clongmr, float * iposmg[15], int* ifai)
113 */ 118 */
114 119
115 - maglib::maglibWarpper::getPosmag(1900 + tmp->tm_year, 1 + tmp->tm_yday, tmp->tm_hour,  
116 - tmp->tm_min, tmp->tm_sec, i_rrmag, i_thetr, i_phir, _isatex, _magout, xgsm, ygsm, zgsm, xgse, ygse, zgse, tgl,  
117 - flg, xlambr, tglc, hsl, fclatgmr, clongmr, iposmg, ifail);  
118 - 120 + maglib::maglibWarpper::getPosmag(1900 + tmp->tm_year, 1 + tmp->tm_mon, tmp->tm_mday, tmp->tm_hour, tmp->tm_min, tmp->tm_sec,
  121 + i_rrmag, i_thetr, i_phir,
  122 + _isatex, _magout,
  123 + xgsm, ygsm, zgsm,
  124 + xgse, ygse, zgse,
  125 + tgl, flg, xlamb, tglc, hsl, clatgmr, clongmr, iposmg, ifail);
  126 +
119 DataType tgl_res = (DataType) tgl; 127 DataType tgl_res = (DataType) tgl;
120 DataType xlamb_res = (DataType) xlamb; 128 DataType xlamb_res = (DataType) xlamb;
121 DataType flg_res = (DataType) flg; 129 DataType flg_res = (DataType) flg;
122 - _paramOutput->pushTime(crtTime); 130 + _paramOutput->pushTime(crtTime);
123 pushData(tgl_res, xlamb_res, flg_res); 131 pushData(tgl_res, xlamb_res, flg_res);
124 } 132 }
125 133
@@ -128,63 +136,66 @@ namespace AMDA { @@ -128,63 +136,66 @@ namespace AMDA {
128 virtual void pushData(DataType tgl, DataType xlamb, DataType flg) = 0; 136 virtual void pushData(DataType tgl, DataType xlamb, DataType flg) = 0;
129 137
130 protected: 138 protected:
  139 + ParamDataSpec<std::vector<DataType> >& _paramInput;
  140 + ParamDataSpec<DataType>* _paramOutput;
131 int _isatex; 141 int _isatex;
132 int _magout; 142 int _magout;
133 - private:  
134 - ParamDataSpec<std::vector<DataType> >& _paramInput;  
135 - ParamDataSpec<DataType>* _paramOutput; 143 +
136 }; 144 };
137 - 145 +
138 /** 146 /**
139 * Ecriture de temps geomagnetique local du satellite (heure fractionnée) 147 * Ecriture de temps geomagnetique local du satellite (heure fractionnée)
140 */ 148 */
141 template<typename DataType> 149 template<typename DataType>
142 - class MLT : public Posmag<DataType, ParamDataSpec < DataType > >{  
143 -  
144 - MLT(Process& pProcess, ParamDataSpec<vector<DataType> >& paramInput, int isatex, int magout):  
145 - Posmag<DataType, ParamDataSpec < DataType > > :: Posmag(pProcess, paramInput, isatex, magout){  
146 - }  
147 -  
148 - void pushData(DataType tgl, DataType /*xlamb*/, DataType /*flg*/){  
149 -  
150 - Posmag<DataType, ParamDataSpec < DataType > > :: _paramDataOutput.getDataList().push_back(tgl);  
151 - } 150 + class MLT : public Posmag<DataType, ParamDataSpec < DataType > > {
  151 + public:
  152 +
  153 + MLT(Process& pProcess, ParamDataSpec<vector<DataType> >& paramInput, int isatex, int magout) :
  154 + Posmag<DataType, ParamDataSpec < DataType > > ::Posmag(pProcess, paramInput, isatex, magout) {
  155 + }
  156 +
  157 + void pushData(DataType tgl, DataType /*xlamb*/, DataType /*flg*/) {
  158 +
  159 + Posmag<DataType, ParamDataSpec < DataType > > ::_paramOutput->getDataList().push_back(tgl);
  160 + }
152 }; 161 };
153 -  
154 - /** 162 +
  163 + /**
155 * Ecriture de invariant latitude 164 * Ecriture de invariant latitude
156 */ 165 */
157 template<typename DataType> 166 template<typename DataType>
158 - class InvLat : public Posmag<DataType, ParamDataSpec < DataType > >{  
159 -  
160 - InvLat(Process& pProcess, ParamDataSpec<vector<DataType> >& paramInput, int isatex, int magout):  
161 - Posmag<DataType, ParamDataSpec < DataType > > :: Posmag(pProcess, paramInput, isatex, magout){  
162 - }  
163 -  
164 - void pushData(DataType /*tgl*/, DataType xlamb, DataType /*flg*/){  
165 -  
166 - Posmag<DataType, ParamDataSpec < DataType > > :: _paramDataOutput.getDataList().push_back(xlamb);  
167 - } 167 + class InvLat : public Posmag<DataType, ParamDataSpec < DataType > > {
  168 + public:
  169 +
  170 + InvLat(Process& pProcess, ParamDataSpec<vector<DataType> >& paramInput, int isatex, int magout) :
  171 + Posmag<DataType, ParamDataSpec < DataType > > ::Posmag(pProcess, paramInput, isatex, magout) {
  172 + }
  173 +
  174 + void pushData(DataType /*tgl*/, DataType xlamb, DataType /*flg*/) {
  175 +
  176 + Posmag<DataType, ParamDataSpec < DataType > > ::_paramOutput->getDataList().push_back(xlamb);
  177 + }
168 }; 178 };
169 -  
170 - /** 179 +
  180 + /**
171 * Ecriture du parametre L 181 * Ecriture du parametre L
172 */ 182 */
173 template<typename DataType> 183 template<typename DataType>
174 - class Lparam : public Posmag<DataType, ParamDataSpec < DataType > >{  
175 -  
176 - Lparam(Process& pProcess, ParamDataSpec<vector<DataType> >& paramInput, int isatex, int magout):  
177 - Posmag<DataType, ParamDataSpec < DataType > > :: Posmag(pProcess, paramInput, isatex, magout){  
178 - }  
179 -  
180 - void pushData(DataType /*tgl*/, DataType /*xlamb*/, DataType flg){  
181 -  
182 - Posmag<DataType, ParamDataSpec < DataType > > :: _paramDataOutput.getDataList().push_back(flg);  
183 - } 184 + class Lparam : public Posmag<DataType, ParamDataSpec < DataType > > {
  185 + public:
  186 +
  187 + Lparam(Process& pProcess, ParamDataSpec<vector<DataType> >& paramInput, int isatex, int magout) :
  188 + Posmag<DataType, ParamDataSpec < DataType > > ::Posmag(pProcess, paramInput, isatex, magout) {
  189 + }
  190 +
  191 + void pushData(DataType /*tgl*/, DataType /*xlamb*/, DataType flg) {
  192 +
  193 + Posmag<DataType, ParamDataSpec < DataType > > ::_paramOutput->getDataList().push_back(flg);
  194 + }
184 }; 195 };
185 - 196 +
186 } 197 }
187 - 198 +
188 } 199 }
189 200
190 201