|
// Description: This class implements the Float c-style Array Attribute.
#if !defined(ATTRIBUTE_CARRAYFLOAT_H)
#define ATTRIBUTE_CARRAYFLOAT_H
#if _MSC_VER > 1000
#pragma warning (disable: 4786)
#pragma warning (disable: 4748)
#pragma warning (disable: 4103)
#endif /* _MSC_VER > 1000 */
#include "attribute_generic.h"
class CAttribute_CArrayFLOAT : public CAttribute_Generic
{
public:
CAttribute_CArrayFLOAT(float* farray, size_t size, int index);
virtual ~CAttribute_CArrayFLOAT();
virtual void Get_Value_Str(CString& szDummy);
virtual void Get_Value_Str_tmp(CString& szDummy);
virtual void Get_int(int& nDummy) {};
virtual void Get_tmp_int(int& nDummy) {};
virtual void Set_int(int& nDummy) {};
virtual void Set_tmp_int(int& nDummy) {};
virtual void Get_Time(__time64_t& nDummy) {};
virtual void Get_tmp_Time(__time64_t& nDummy) {};
virtual void Set_Time(__time64_t& nDummy) {};
virtual void Set_tmp_Time(__time64_t& nDummy) {};
virtual void Get_String(CString& szDummy) {};
virtual void Get_tmp_String(CString& szDummy) {};
virtual void Set_String(CString& szDummy) {};
virtual void Set_tmp_String(CString& szDummy) {};
virtual void Get_DBTime(TIMESTAMP_STRUCT& tStamp) {IDC_ATTR_DEF_DBTIME(tStamp)};
virtual void Get_tmp_DBTime(TIMESTAMP_STRUCT& tStamp) {IDC_ATTR_DEF_DBTIME(tStamp)};
virtual void Set_DBTime(TIMESTAMP_STRUCT& tStamp) {};
virtual void Set_tmp_DBTime(TIMESTAMP_STRUCT& tStamp) {};
virtual void Get_int64(UINT64& nDummy) {};
virtual void Get_tmp_int64(UINT64& nDummy) {};
virtual void Set_int64(UINT64& nDummy) {};
virtual void Set_tmp_int64(UINT64& nDummy) {};
virtual void SetAttributeCast(CString& szDummy);
virtual void SetTmpAttributeCast(CString& szDummy);
virtual bool IsValueTmpIdentical();
virtual BOOL IsValueTmpIdenticalMFC();
virtual void Empty_Value (bool ori);
virtual void Set_Boolean(bool& bVal) {};
virtual void Get_Boolean(bool& bVal) {};
virtual void Get_tmp_Boolean(bool& bVal) {};
virtual void Set_tmp_Boolean(bool& bVal) {};
virtual void Set_BooleanMFC(BOOL& bVal) {};
virtual void Get_BooleanMFC(BOOL& bVal) {};
virtual void Set_tmp_BooleanMFC(BOOL& bVal) {};
virtual void Get_tmp_BooleanMFC(BOOL& bVal) {};
virtual void Set_Pointer(void* value) {};
virtual void Get_Pointer(void*& pret) { pret = value; };
virtual void Set_tmp_Pointer(void* value) {};
virtual void Get_tmp_Pointer(void*& pret) { pret = value_tmp; };
virtual void Set_Double(double& dVal) {};
virtual void Get_Double(double& dVal) {};
virtual void Set_tmp_Double(double& dVal) {};
virtual void Get_tmp_Double(double& dVal) {};
// General methods
virtual void GetSize(size_t& nDummy);
// Use with care: it does reset the array
virtual void SetSize(size_t& nDummy);
virtual void GetAttributeBinData(BIN_KIND_TYPE& bType,BIN_KIND_SIZE& bSize,void*& pAttribute);
virtual void SetAttributeBinData(BIN_KIND_TYPE bType,BIN_KIND_SIZE bSize,void* pAttribute);
// Methods only for array attributes
protected:
void AllocateArray(float* farray, size_t size);
void ZeroArray(float* farray, size_t size);
void FreeArray();
public:
virtual bool IsEmpty(bool ori);
// Safe access methods
virtual void GetAt(float& fDummy, size_t index);
virtual void SetAt(float& fDummy, size_t index);
// CopyTo, CopyFrom
virtual void CopyTo (float* farray, size_t size);
virtual void CopyFrom(float* farray, size_t size);
virtual void Add(float* farray, size_t size);
virtual void Subtract(float* farray, size_t size);
virtual void Multiply(float* farray, size_t size);
virtual void Divide(float* farray, size_t size);
virtual void Total(float& fTotal, size_t size);
virtual void GetMin(float& fMin);
virtual void GetMax(float& fMax);
virtual void GetRange(float& fMin,float& fMax);
virtual void NormaliseToMax();
virtual void NormaliseToSum();
virtual void Get_Value_Str(CString& szDummy, size_t index);
virtual void Get_Value_Str_tmp(CString& szDummy, size_t index);
virtual void SetAttributeCast(CString& szDummy, size_t index);
virtual void SetTmpAttributeCast(CString& szDummy, size_t index);
private:
/* Attribute value */
float* value;
/* Attribute temporary value */
float* value_tmp;
};
#endif /* !defined(ATTRIBUTE_CARRAYFLOAT_H) */
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Senior Software Developer in C/C++ and Oracle.
Ex-physicist holding a Ph.D. on x-ray lasers.