Back to calculator object help
Calculator object
Calculator |
Variable class hierarchy description
View class hierarchy diagram
Class VflVarBase
This is the base class of all input and output variables. It provides information about the variables
data type and a flag whether data has been assigned.
Elements:
- int getId()
- Returns the internal variable id number.
- virtual TVarDirection getDirection()
- Allows determination whether the variable is input or output type. TVarDirection is
a global enum defined in the following way:
enum TVarDirection {InputVar=0,OutputVar=1};
- virtual TVarType type()
- Allows determination of the variable type. TVarType is defined in the following way:
enum TVarType {Integer=0,Float=1,String=2,IntegerArray=3,FloatArray=4};
- virtual bool hasData()
- Returns true if the variable contains data. This is especially useful to check whether an
input variable contains data. If data is read from a variable not containig data, scalar variables
return the default values (for example 0 for integers) and arrays return zero length.
- virtual void clear()
- Clears assigned data. A call to hasData() following a clear() returns false.
VflVarBase).
VflVar(T d)
Contructor that initializes the variable. Calling hasdata() on a suchlike initialized
variable returns true.
VflVar()
Constructor that creates a not assigned variable.
template <class T,TVarType t,TVarDirection dr> VflVar(VflVar& other)
Copy constructor that initializes that creates a copy of other
template <class T,TVarType t,TVarDirection dr>T operator =(VflVar& other)
Assignment operator. Assignes the contents of another VflVar.
template <class T,TVarType t,TVarDirection dr>operator T&()
Returns a reference to the internal data. This allows using VflVar like a normal
variable of type T
template <class T,TVarType t,TVarDirection dr>T operator =(const T i)
Assignes a value of type T
hasdata = true;
data = i;
return i;
};
void clear() {hasdata = false; data = T();}
Template VflArray
This template defines the basic array variable functions of any data type. The VflArray
manages an internal buffer for storing the data. It is defined in the following way:
template <class T> class VflArray
Elements:
- VflArray()
- Default contructor, creates an ampty array.
- template <class T> VflArray(const T* d,int alen)
- Contructs an array containing alen data elements which are read from the memory
location pointed to by d. The data is copied to the internal data buffer.
- template <class T> VflArray(const VflArray<T>& other)
- Copy constructor. Creates an array by copiing data from other.
- virtual ~VflArray();
- Destructor. Destroys the internal buffer.
- template <class T> void set(const T* d, int alen)
- Assigns data to the array deleting the old data. alen data elements are
copied form the memory location pointed to by d to the internal buffer.
- template <class T> const VflArray<T>& operator = (const VflArray<T>& other)
- Assign operator. Assigns copies data from another VflArray. This allows copiing a whole array by writing
ArrayA = ArrayB
- int len()
- Returns the number of data elements the array contains.
- template <class T> T& operator[](int p)
- Direct element access. This operator allows storing and reading single data elements indexed by p. The
element counting starts at zero like normal C arrays.
If a data element is addressed with a number larger than the array size, the array is extended filling
new data elements with the default value (for example 0 for integers). This operator allows element access
by writing something like
sampleArray[42] = ...;
- template <class T> void apply(T (*func)(T))
- Calles the function provided by func for each data element of the array passing the data element
as parameter. After that the data element is set to the return value of the function.
- template <class T> void applyParam(T (*func)(T,T),T v)
- The sample like apply but allows passing a second parameter to func.
- void setSize(int sz)
- Resizes the array to sz. If the new size is greater than the old size new
created elements are initialized with the default value of the data type T.
- template <class T> operator T*()
- Returns a pointer to the internal data array. The pointer must not be deleted.
- template <class T> void operator +=(T v)
- Adds a scalar of type T to each data element.
- template <class T> void operator -=(T v)
- Subtracts a scalar of type T from each data element.
- template <class T> void operator *=(T v)
- Multiplies each data element with a scalar of type T.
- template <class T> void operator /=(T v)
- Multiplies each data element by a scalar of type T.
- template <class T> T minimum()
- Returns the minimal value contained in the array or the default value of T when array length is zero.
- template <class T> T maximum()
- Returns the maximal value contained in the array or the default value of T when array length is zero.
- int minpos()
- Returns the index position of the minimal value contained in the array or -1 when array length is zero.
- int maxpos()
- Returns the index position of the maximal value contained in the array or -1 when array length is zero.
Class CharArray
This class inherits from VflArray<char> and extends this with conversion from and to null
terminated strings. It is defined in the following way:
class CharArray: public VflArray<char>
Elements:
- CharArray()
- Defalut construnctor. Creates an empty CharArray.
- CharArray(const CharArray& other)
- Copy constructor. Creates a copy of other.
- CharArray(const char* d,int len)
- Constructor that initializes from a character array with the length given by len.
- CharArray(const char* s)
- Constructor that initializes from a null terminated string.
- operator char*()
- Returns the array contents as a null terminated string. The pointer must not be deleted. Each instance
of CharArray manages an own return buffer.
- CharArray& operator +=(const CharArray& other)
- Appends other to the CharArray.
Class VarString
This template inherits merges properties of character arrays and Vimms input / output variables.
It inherits from the template VflVarDir and
the class CharArray:
class VflVarString: public CharArray,public VflVarBase
The class itself defines only a few functions.
Elements:
- VflVarString()
- Constructor that creates an empty VarString
- VflVarString(const char* data,int len)
- Constructor that creates a VarString from a character array with the length given by len.
- VarVarString(const CharArray& other)
- Contructor that initializes from the CharArray other.
- bool hasData()
- Implements the function hasData() inherited from VflVarBase.
- TVarType type()
- Implements the function type() inherited from VflVarBase and returns
String.
- void clear()
- Implements the function clear() inherited from VflVarBase
and does the same like CharArray::clear()
Variable typedefs
For easy usability the following typedefs are predefined:
typedef VflVar<int,Integer> VflVarInteger;
typedef VflVar<double,Float> VflVarFloat;
typedef VflVarArray<int,IntegerArray> VflVarIntegerArray;
typedef VflVarArray<double,FloatArray> VflVarFloatArray;
Back to the top
Back to calculator object help
The Vimms User Manual