Template Class XCDFFieldData#

Inheritance Relationships#

Base Type#

Derived Types#

Class Documentation#

template<typename T>
class XCDFFieldData : public XCDFFieldDataBase#

XCDF field data container. Manages data storage, type conversions, and XCDF max/min/size calculations.

Author

Jim Braun

Subclassed by XCDFFieldDataScalar< T >, XCDFFieldDataVector< T >

Public Types

typedef const T *ConstIterator#

Iterate over the field.

Public Functions

inline XCDFFieldData(const XCDFFieldType type, const std::string &name, const T res)#
inline virtual ~XCDFFieldData()#
virtual void ZeroAlign()#
inline virtual void SetActiveSize(const uint32_t activeSize)#

Set the active size of the field, as when reading back a file.

inline void Add(const T value)#
inline virtual void Reset()#
inline virtual void CalculateGlobals()#
inline virtual bool GlobalsSet() const#
inline virtual void ClearBitsProcessed()#
inline virtual uint64_t GetBitsProcessed() const#
inline virtual uint64_t GetStashSize() const#
inline virtual uint32_t GetActiveSize() const#
inline virtual uint64_t GetRawResolution() const#
inline virtual T GetResolution() const#
inline virtual uint64_t GetRawActiveMin() const#
inline virtual void SetRawActiveMin(uint64_t rawActiveMin)#

Set the active min, as when reading back a file.

inline std::pair<T, T> GetGlobalRange() const#
inline virtual T GetGlobalMin() const#
inline virtual T GetGlobalMax() const#
inline virtual uint64_t GetRawGlobalMin() const#
inline virtual uint64_t GetRawGlobalMax() const#
inline virtual void SetRawGlobalMin(uint64_t rawGlobalMin)#
inline virtual void SetRawGlobalMax(uint64_t rawGlobalMax)#
inline virtual uint64_t GetTotalBytes() const#
inline virtual void SetTotalBytes(uint64_t totalBytes)#
virtual ConstIterator Begin() const = 0#
virtual ConstIterator End() const = 0#
virtual const T &At(const uint32_t index) const = 0#

Get a value from the field. Preserve At() call for vectors At(x) is undefined for x > 0 (or possibly x == 0). Just return datum_.

inline virtual void ZeroAlign()
inline virtual void ZeroAlign()

Protected Functions

inline void CheckActiveMin(const T value)#
inline void CheckActiveMax(const T value)#
inline void CheckGlobalMin(const T value)#
inline void CheckGlobalMax(const T value)#
inline T LoadValue(XCDFBlockData &data)#
inline void DumpValue(XCDFBlockData &data, T datum)#
virtual void AddDirect(const T datum) = 0#
inline T CalculateTypeValue(uint64_t datum) const#
inline uint64_t CalculateIntegerValue(T datum) const#
inline unsigned CalcActiveSize() const#
inline double CalculateTypeValue(uint64_t datum) const
inline uint64_t CalculateIntegerValue(double datum) const#
inline unsigned CalcActiveSize() const

Protected Attributes

T resolution_#

Resolution of the field.

T activeMin_#

Min and max values in the current block.

T activeMax_#
T globalMin_#

Absolute min and max values.

T globalMax_#
bool minSet_#

Have we written data to the field?

bool maxSet_#
bool globalMinSet_#

Have we written the global max/min?

bool globalMaxSet_#
mutable uint32_t activeSize_#

Number of bits needed for this field in the current block.

std::deque<T> stash_#

Storage for data held in write cache, awaiting max/min limits to be set.

uint64_t totalBytes_#

Total bytes used by the field. We can’t just use bitsProcessed because reading files back must necessarily alter bitsProcessed, but totalBytes_ should be static after we’ve calculated the value.

uint64_t bitsProcessed_#

Bits we’ve processed; used to determine total bytes.