1 #ifndef __XIOS_CField__
2 #define __XIOS_CField__
26 class CFieldAttributes;
34 class CGarbageCollector;
38 class CFileWriterFilter;
39 class CFileServerWriterFilter;
45 # include "field_attribute.conf"
51 , public CFieldAttributes
73 EVENT_ID_ADD_VARIABLE, EVENT_ID_ADD_VARIABLE_GROUP
79 CField(
const CField& field);
80 CField(
const CField*
const field);
84 CGrid* getRelGrid(
void)
const;
85 CFile* getRelFile(
void)
const;
90 int getNStep(
void)
const;
94 std::shared_ptr<COutputPin> getInstantDataFilter();
97 void setRelFile(
CFile* _file);
98 void incrementNStep(
void);
99 void resetNStep(
int nstep = 0);
100 void resetNStepMax();
102 std::map<int, StdSize> getGridAttributesBufferSize(
CContextClient* client,
bool bufferForWriting =
false);
104 std::map<int, StdSize> getGridDataBufferSize(
CContextClient* client,
bool bufferForWriting =
false);
110 bool isActive(
bool atCurrentTimestep =
false)
const;
113 bool wasWritten()
const;
116 bool getUseCompressedOutput()
const;
117 void setUseCompressedOutput();
120 void solveGridReference(
void);
121 void solveServerOperation(
void);
122 void solveCheckMaskIndex(
bool doSendingIndex);
123 void solveAllReferenceEnabledField(
bool doSending2Server);
124 void solveOnlyReferenceEnabledField(
bool doSending2Server);
125 void generateNewTransformationGridDest();
126 void updateRef(
CGrid* grid);
127 void buildGridTransformationGraph();
128 void solveGridDomainAxisRef(
bool checkAtt);
129 void solveTransformedGrid();
130 void solveGenerateGrid();
131 void solveGridDomainAxisBaseRef();
133 void solveAllEnabledFieldsAndTransform();
134 void checkGridOfEnabledFields();
135 void sendGridOfEnabledFields();
136 void sendGridComponentOfEnabledFields();
139 void checkTimeAttributes(
CDuration* freqOp=NULL);
142 size_t getGlobalWrittenSize(
void) ;
153 virtual ~CField(
void);
167 void recvUpdateData(std::map<int,CBufferIn*>& rankBuffers);
168 void writeField(
void);
169 bool sendReadDataRequest(
const CDate& tsDataRequested);
170 bool sendReadDataRequestIfNeeded(
void);
172 void recvReadDataRequest(
void);
175 void recvReadDataReady(vector<int> ranks, vector<CBufferIn*> buffers);
176 void checkForLateDataFromServer(
void);
177 void checkIfMustAutoTrigger(
void);
178 void autoTriggerIfNeeded(
void);
186 void scaleFactorAddOffset(
double scaleFactor,
double addOffset);
187 void invertScaleFactorAddOffset(
double scaleFactor,
double addOffset);
190 void setVirtualVariableGroup(CVariableGroup* newVVariableGroup);
191 CVariableGroup* getVirtualVariableGroup(
void)
const;
192 vector<CVariable*> getAllVariables(
void)
const;
193 virtual void solveDescInheritance(
bool apply,
const CAttributeMap*
const parent = 0);
195 CVariable* addVariable(
const string&
id =
"");
196 CVariableGroup* addVariableGroup(
const string&
id =
"");
198 void sendAddVariableGroup(
const string&
id,
CContextClient* client);
202 void recvAddVariableGroup(
CBufferIn& buffer);
206 const std::vector<StdString>& getRefDomainAxisIds();
208 const string& getExpression(
void);
209 bool hasExpression(
void)
const;
211 bool hasGridMask(
void)
const;
251 bool areAllReferenceSolved;
252 bool isReferenceSolved;
253 bool isReferenceSolvedAndTransformed;
259 func::CFunctor::ETimeType operationTimeType;
266 std::shared_ptr<COutputPin> selfReferenceFilter;
287 void CGroupTemplate<CField, CFieldGroup, CFieldAttributes>::solveRefInheritance(
void);
293 #endif // __XIOS_CField__
CObjectTemplate< CField > SuperClass
typedef ///
#define END_DECLARE_ATTRIBUTE_MAP(type)
A terminal filter which transmits the packets it receives to a field for writting in a file...
CFieldAttributes SuperClassAttribute
A terminal filter which stores all the packets it receives.
////////////////////// Déclarations ////////////////////// ///
#define DECLARE_REF_FUNC(type, name_)
A terminal filter which writes the packets it receives in a file.
#define BEGIN_DECLARE_ATTRIBUTE_MAP(type)
CDate lastDataRequestedFromServer
map< int, std::shared_ptr< func::CFunctor > > foperation_srv
std::shared_ptr< func::CFunctor > recvFoperationSrv
A context can be both on client and on server side.
////////////////////// Déclarations ////////////////////// ///
////////////////////// Déclarations ////////////////////// ///
bool wasDataRequestedFromServer
CArray< double, 1 > recvDataSrv
An output pin handles the connections with downstream filters.
Macros to add functions used to solve references in class CDomain, CAxis and CField.
CVariableGroup * vVariableGroup
Propriétés privées ///.
////////////////////// Déclarations ////////////////////// ///
enum xios::_node_type ENodeType
////////////////////// Définitions ////////////////////// ///
std::vector< StdString > domAxisScalarIds_
A basic garbage collector which ensures no old packets linger in the filter graph.
CFieldAttributes RelAttributes
A source filter is the entry point of the data in the graph of filters.