56 template<
typename T,
size_t M>
59 if(
getUri().getDimensions() != 1 )
61 std::cerr <<
"URI " <<
Str(
getUri() ).
cStr() <<
" is not 1D." << std::endl;
64 else if(
getUri().getDimension1() != M )
69 return write1DPtr( unit, ( T* )&x, M, timestamp );
89 if(
getUri().getDimensions() != 1 )
91 std::cerr <<
"URI " <<
Str(
getUri() ).
cStr() <<
" is not 1D." << std::endl;
94 else if(
getUri().getDimension1() != m )
108 template<
typename T,
size_t M,
size_t N>
111 if(
getUri().getDimensions() != 2 )
113 std::cerr <<
"URI " <<
Str(
getUri() ).
cStr() <<
" is not 2D." << std::endl;
116 else if(
getUri().getDimension1() != M ||
getUri().getDimension2() != N )
142 if(
getUri().getDimensions() != 2 )
144 std::cerr <<
"URI " <<
Str(
getUri() ).
cStr() <<
" is not 2D." << std::endl;
147 else if(
getUri().getDimension1() != m ||
getUri().getDimension2() != n )
161 template<
typename T,
size_t M,
size_t N,
size_t O>
164 if(
getUri().getDimensions() != 3 )
166 std::cerr <<
"URI " <<
Str(
getUri() ).
cStr() <<
" is not 3D." << std::endl;
169 else if(
getUri().getDimension1() != M ||
getUri().getDimension2() != N ||
getUri().getDimension3() != O )
195 if(
getUri().getDimensions() != 3 )
197 std::cerr <<
"URI " <<
Str(
getUri() ).
cStr() <<
" is not 3D." << std::endl;
200 else if(
getUri().getDimension1() != m ||
getUri().getDimension2() != n ||
getUri().getDimension3() != o )
254 :
DataWriter( owner, element, universal, timePrecisionType ),
const unsigned short getDimension2() const
Definition: ElementURI.h:136
virtual const ElementURI & getUri(void) const =0
Implementation of a DataElement as a "UniversalDataElement".
Definition: UniversalDataElement.h:29
virtual bool writeBlob(const void *bytes, size_t elements, const Timestamp ×tamp=Timestamp::NOT_SET_TIME)
Simply writes the binary blob ElementURI used to declare this DataWriter should have a BLOB TYPE;...
Definition: BlobWriter.h:46
bool write3DPtr(const Unit &unit, const T ***values, int m, int n, int o, const Timestamp ×tamp=Timestamp::NOT_SET_TIME)
Writes data from the 3-d pointer as a binary blob ElementURI used to declare this DataWriter should h...
Definition: BlobWriter.h:193
const unsigned short getDimension1() const
Definition: ElementURI.h:131
virtual bool write(const Unit &unit, const unsigned char value, const Timestamp ×tamp=Timestamp::NOT_SET_TIME)
Sets the Component's DataValue, with an optional timestamp.
Definition: DataWriter.cpp:71
virtual int getM() const =0
virtual int getM() const =0
virtual ~AbstractBlobWriter()
A DataWriter for writing BlobValues, normally created via Component::newBlobWriter() See below for im...
Definition: BlobWriter.h:34
bool write2DPtr(const Unit &unit, const T **values, int m, int n, const Timestamp ×tamp=Timestamp::NOT_SET_TIME)
Writes data from the 2-d pointer as a binary blob ElementURI used to declare this DataWriter should h...
Definition: BlobWriter.h:140
bool write1DPtr(const Unit &unit, const T *values, int m, const Timestamp ×tamp=Timestamp::NOT_SET_TIME)
Writes data from the 1-d pointer as a binary blob ElementURI used to declare this DataWriter should h...
Definition: BlobWriter.h:87
void setFromRaw(const void *bytes, size_t elements)
Definition: BlobValue.cpp:85
virtual const ElementURI & getUri(void) const
Definition: DataAccessor.cpp:49
A DataValue is an abstract base class for a data value and associated engineering units of the value...
Definition: DataValue.h:35
bool write1DArray(const Unit &unit, T(&x)[M], const Timestamp ×tamp=Timestamp::NOT_SET_TIME)
Writes the array as a binary blob ElementURI used to declare this DataWriter should have a BLOB TYPE;...
Definition: BlobWriter.h:57
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: DataWriter.h:27
Definition: BlobWriter.h:227
static const Timestamp NOT_SET_TIME
Constant value to represent "no time".
Definition: Timestamp.h:37
const unsigned short getDimension3() const
Definition: ElementURI.h:141
virtual int getN() const =0
virtual bool write(const DataValue &value, const Timestamp ×tamp)=0
virtual int getM() const =0
Replacement for standard template class string.
Definition: Str.h:12
Abstract Base class for software components.
Definition: Component.h:53
Wraps a StrValue as an arbitrary collection of binary values, with units.
Definition: BlobValue.h:26
TimePrecisionType
Definition: Logger.h:37
virtual const ElementURI & getUri(void) const
Definition: BlobWriter.h:241
const char * cStr() const
Definition: Str.h:188
Definition: BlobWriter.h:21
virtual int getO() const =0
virtual bool write(const DataValue &value, const Timestamp ×tamp)
Definition: BlobWriter.h:235
virtual T *** getPtr3d()=0
bool write3DClass(const Unit &unit, I3D< T > &i3d, const Timestamp ×tamp=Timestamp::NOT_SET_TIME)
Writes data from the class that implements as I3D a binary blob ElementURI used to declare this DataW...
Definition: BlobWriter.h:183
Contains the DataWriter class definition.
BlobValue blobValue_
Definition: BlobWriter.h:215
virtual T ** getPtr2d()=0
bool write1DClass(const Unit &unit, I1D< T > &i1d, const Timestamp ×tamp=Timestamp::NOT_SET_TIME)
Writes data from the class that implements as I1D a binary blob ElementURI used to declare this DataW...
Definition: BlobWriter.h:77
virtual ~BlobWriter()
Definition: BlobWriter.h:232
Code unit that represents a unique name for a DataElement.
Definition: ElementURI.h:27
AbstractBlobWriter(const ElementURI &elementUri)
Definition: BlobWriter.h:212
BlobWriter(Component *owner, DataElement &element, UniversalDataElement *universal, Logger::TimePrecisionType timePrecisionType)
Definition: BlobWriter.h:250
void setFrom(const Unit &unit, const T *array, size_t elements)
Definition: BlobValue.cpp:93
bool write2DClass(const Unit &unit, I2D< T > &i2d, const Timestamp ×tamp=Timestamp::NOT_SET_TIME)
Writes data from the class that implements as I2D a binary blob ElementURI used to declare this DataW...
Definition: BlobWriter.h:130
bool write2DArray(const Unit &unit, T(&x)[M][N], const Timestamp ×tamp=Timestamp::NOT_SET_TIME)
Writes the array as a binary blob ElementURI used to declare this DataWriter should have a BLOB TYPE;...
Definition: BlobWriter.h:109
bool write3DArray(const Unit &unit, T(&x)[M][N][O], const Timestamp ×tamp=Timestamp::NOT_SET_TIME)
Writes the array as a binary blob ElementURI used to declare this DataWriter should have a BLOB TYPE;...
Definition: BlobWriter.h:162
Code that represents an engineering unit.
Definition: Unit.h:24
Contains the BlobValue class definition.
Represents absolute times.
Definition: Timestamp.h:31
virtual int getN() const =0
Abstact base class for one "element" of the Slate.
Definition: DataElement.h:37