The Fib multimedia system
Fib is a system for storing multimedia data (like images or films).
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
fib::cFunctionTwoValue Class Reference

#include <cFunctionTwoValue.h>

Inheritance diagram for fib::cFunctionTwoValue:
Collaboration diagram for fib::cFunctionTwoValue:

List of all members.

Public Member Functions

 cFunctionTwoValue (const cUnderFunction &firstUnderfunction, const cUnderFunction &secondUnderfunction, cUnderFunction *pInSuperiorFunction=NULL, cFibElement *pInDefiningFibElement=NULL)
 cFunctionTwoValue (cUnderFunction *pInFirstUnderfunction, cUnderFunction *pInSecondUnderfunction, cUnderFunction *pInSuperiorFunction=NULL, cFibElement *pInDefiningFibElement=NULL)
 cFunctionTwoValue (const cFunctionTwoValue &underfunction, cUnderFunction *pInSuperiorFunction=NULL, cFibElement *pInDefiningFibElement=NULL)
 cFunctionTwoValue (const TiXmlElement *pXmlElement, intFib &outStatus, list< cFibVariable * > &liDefinedVariables, cUnderFunction *pInSuperiorFunction=NULL, cFibElement *pInDefiningFibElement=NULL)
 cFunctionTwoValue (cReadBits &iBitStream, intFib &outStatus, list< cFibVariable * > &liDefinedVariables, const cDomainSingle *pInDomainValue, const cDomainSingle *pInDomainVariable, cUnderFunction *pInSuperiorFunction=NULL, cFibElement *pInDefiningFibElement=NULL)
virtual ~cFunctionTwoValue ()
cUnderFunctiongetFirstUnderFunction ()
const cUnderFunctiongetFirstUnderFunction () const
void setFirstUnderFunction (const cUnderFunction &underFunction, bool bDeleteOld=true)
cUnderFunctiongetSecondUnderFunction ()
const cUnderFunctiongetSecondUnderFunction () const
void setSecondUnderFunction (const cUnderFunction &underFunction, bool bDeleteOld=true)
virtual bool isValid () const
virtual bool isUsedVariable (const cFibVariable *variable) const
virtual set< cFibVariable * > getUsedVariables ()
virtual bool replaceVariable (cFibVariable *variableOld, cFibVariable *variableNew)
virtual unsignedIntFib getNumberOfUnderFunctions () const
virtual void setDefiningFibElement (cFibElement *fibElement=NULL, bool bCheckDomains=true)
virtual unsignedLongFib getTimeNeed (unsignedLongFib lMaxTime=0) const
virtual unsignedLongFib getCompressedSize () const
virtual bool storeXml (ostream &stream) const
virtual bool equal (const cUnderFunction &underfunction) const
- Public Member Functions inherited from fib::cUnderFunction
virtual ~cUnderFunction ()
virtual doubleFib getValue () const =0
virtual cTypeElementgetElementType () const
virtual cDomainSinglegetDomain () const
virtual cDomainSinglegetValueDomain () const
virtual cDomainSinglegetStandardDomain () const
virtual cDomainSinglegetVariableDomain () const
cFibElementgetDefiningFibElement () const
cUnderFunctiongetSuperiorUnderFunction () const
virtual bool store (ostream &stream, char &cRestBits, unsigned char &uiRestBitPosition) const =0
virtual unsignedIntFib getType () const =0
virtual string getUnderFunctionName () const =0
virtual bool operator== (const cUnderFunction &underfunction) const
bool operator!= (const cUnderFunction &underfunction) const
virtual cUnderFunctionclone (cUnderFunction *pInSuperiorUnderFunction=NULL, cFibElement *pInDefiningFibElement=NULL) const =0

Protected Attributes

cUnderFunctionpFirstUnderfunction
cUnderFunctionpSecondUnderfunction
- Protected Attributes inherited from fib::cUnderFunction
cUnderFunctionpSuperiorUnderFunction
cFibElementpDefiningFibElement

Additional Inherited Members

- Static Public Member Functions inherited from fib::cUnderFunction
static cUnderFunctionrestoreXml (const TiXmlElement *pXmlElement, intFib &outStatus, list< cFibVariable * > &liDefinedVariables, cUnderFunction *pInSuperiorFunction=NULL, cFibElement *pInDefiningFibElement=NULL)
static cUnderFunctionrestore (cReadBits &iBitStream, intFib &outStatus, list< cFibVariable * > &liDefinedVariables, const cDomainSingle *pInValueDomain, const cDomainSingle *pInDomainVariable, cUnderFunction *pInSuperiorFunction=NULL, cFibElement *pInDefiningFibElement=NULL)
- Static Public Attributes inherited from fib::cUnderFunction
static const unsignedIntFib FUNCTION_VALUE = 0
static const unsignedIntFib FUNCTION_VARIABLE = 1
static const unsignedIntFib FUNCTION_LOG = 10
static const unsignedIntFib FUNCTION_SIN = 11
static const unsignedIntFib FUNCTION_ABS = 12
static const unsignedIntFib FUNCTION_ARCSIN = 13
static const unsignedIntFib FUNCTION_ROUND = 14
static const unsignedIntFib FUNCTION_ADD = 20
static const unsignedIntFib FUNCTION_SUB = 21
static const unsignedIntFib FUNCTION_MULT = 22
static const unsignedIntFib FUNCTION_DIV = 23
static const unsignedIntFib FUNCTION_EXP = 24
static const unsignedIntFib FUNCTION_MIN = 25
static const unsignedIntFib FUNCTION_MAX = 26
static const unsignedIntFib FUNCTION_IF = 30
static const unsignedIntFib FUNCTION_MOD = 31
- Protected Member Functions inherited from fib::cUnderFunction
 cUnderFunction (cUnderFunction *pInSuperiorUnderFunction=NULL, cFibElement *pInDefiningFibElement=NULL)
 cUnderFunction (const cUnderFunction &underfunction, cUnderFunction *pInSuperiorUnderFunction=NULL, cFibElement *pInDefiningFibElement=NULL)

Detailed Description

Definition at line 55 of file cFunctionTwoValue.h.


Constructor & Destructor Documentation

fib::cFunctionTwoValue::cFunctionTwoValue ( const cUnderFunction firstUnderfunction,
const cUnderFunction secondUnderfunction,
cUnderFunction pInSuperiorFunction = NULL,
cFibElement pInDefiningFibElement = NULL 
)

The constructor of the underfunction.

Parameters:
firstUnderfunctionthe first underfunction for the function
See also:
pFirstUnderfunction
Parameters:
secondUnderfunctionthe second underfunction for the function
See also:
pSecondUnderfunction
Parameters:
pInSuperiorFunctionthe underfunction which contains the new underfunction
pInDefiningFibElementthe fib -element which defines/ uses the new underfunction
fib::cFunctionTwoValue::cFunctionTwoValue ( cUnderFunction pInFirstUnderfunction,
cUnderFunction pInSecondUnderfunction,
cUnderFunction pInSuperiorFunction = NULL,
cFibElement pInDefiningFibElement = NULL 
)

The constructor of the underfunction.

Parameters:
pInFirstUnderfunctiona pointer to the first underfunction for the function Beware: It won't be copied for inserting.
See also:
pFirstUnderfunction
Parameters:
pInSecondUnderfunctiona pointer to the second underfunction for the function Beware: It won't be copied for inserting.
See also:
pSecondUnderfunction
Parameters:
pInSuperiorFunctionthe underfunction which contains the new underfunction
pInDefiningFibElementthe fib -element which defines/ uses the new underfunction
fib::cFunctionTwoValue::cFunctionTwoValue ( const cFunctionTwoValue underfunction,
cUnderFunction pInSuperiorFunction = NULL,
cFibElement pInDefiningFibElement = NULL 
)

The copy constructor of the underfunction. This constructor will also copy the underfunctions of the given function.

Parameters:
underfunctionthe underfunction which to copy
pInSuperiorFunctionthe underfunction which contains the new underfunction
pInDefiningFibElementthe fib -element which defines/ uses the new underfunction
fib::cFunctionTwoValue::cFunctionTwoValue ( const TiXmlElement *  pXmlElement,
intFib outStatus,
list< cFibVariable * > &  liDefinedVariables,
cUnderFunction pInSuperiorFunction = NULL,
cFibElement pInDefiningFibElement = NULL 
)

The constructor for restoring a value underfunction from an TinyXml element.

Parameters:
pXmlNodea pointer to the TinyXml node the underfunction is stored in
outStatusAn reference to an integervalue where the errorvalue can be stored to. possible errorvalues are:
  • 0 loading successful
  • -1 loading error, invalid pXmlElement
  • -2 loading error, invalid data in pXmlElement
  • 1 loading warning, invalid data in pXmlElement, error could be corrected
  • 2 loading warning, invalid data in pXmlElement, maybe the loaded object is wrong
liDefinedVariablesa list with the defined variables for the to restore fib -element, every variable should have it's number (the number under which it is stored) as it's value
pInSuperiorFunctionthe underfunction which contains the new underfunction
pInDefiningFibElementthe fib -element which defines/ uses the new underfunction
fib::cFunctionTwoValue::cFunctionTwoValue ( cReadBits iBitStream,
intFib outStatus,
list< cFibVariable * > &  liDefinedVariables,
const cDomainSingle pInDomainValue,
const cDomainSingle pInDomainVariable,
cUnderFunction pInSuperiorFunction = NULL,
cFibElement pInDefiningFibElement = NULL 
)

This constructor restores a value underfunction from the stream where it is stored in the compressed fib -format. Beware: The bits for the functiontype should be allready readed, this constructor reads yust the two underfunctions.

Parameters:
iBitStreamthe stream where this underfunction is stored to in, because this stream is an cReadBits, any number of bits can be readed from it
outStatusAn reference to an integervalue where the errorvalue can be stored to. If the pointer is NULL no errorvalue will be given back. possible errorvalues are:
  • 0 loading successful
  • -1 loading error, invalid stream
  • -2 loading error, invalid data in stream
  • 1 loading warning, invalid data in stream, error could be corrected
  • 2 loading warning, invalid data in stream, maybe the loaded object is wrong
liDefinedVariablesa list with the defined variables for the to restore fib -element, every variable should have it's number (the number under which it is stored) as it's value
pInDomainValuethe domain for value underfunction
pInDomainVariablethe domain for variables
pInSuperiorFunctionthe underfunction which contains the new underfunction
pInDefiningFibElementthe fib -element which defines/ uses the new underfunction
virtual fib::cFunctionTwoValue::~cFunctionTwoValue ( )
virtual

The destructor of the underfunction.


Member Function Documentation

virtual bool fib::cFunctionTwoValue::equal ( const cUnderFunction underfunction) const
virtual

This Method checks if the given underfunction is equal to this underfunction.

Parameters:
underfunctionthe underfunction to compare with this underfunction
Returns:
true if the given underfunction is equal to this underfunction, else false

Implements fib::cUnderFunction.

Reimplemented in fib::cFunctionIf.

virtual unsignedLongFib fib::cFunctionTwoValue::getCompressedSize ( ) const
virtual

This method evaluades the size of the Fib -object in bits in the compressed file form. The optionalpart field of point -elements will be ignored.

See also:
store()
Returns:
the size of the Fib -object in bits in the compressed form

Implements fib::cUnderFunction.

Reimplemented in fib::cFunctionIf, and fib::cFunctionMod.

cUnderFunction* fib::cFunctionTwoValue::getFirstUnderFunction ( )
Returns:
This method returns a pointer to the first underfunction of this function.
See also:
pFirstUnderfunction
const cUnderFunction* fib::cFunctionTwoValue::getFirstUnderFunction ( ) const
Returns:
This method returns a pointer to the first underfunction of this function.
See also:
pFirstUnderfunction
virtual unsignedIntFib fib::cFunctionTwoValue::getNumberOfUnderFunctions ( ) const
virtual
Returns:
the number of underfunctions, a underfunction of this type has

Implements fib::cUnderFunction.

cUnderFunction* fib::cFunctionTwoValue::getSecondUnderFunction ( )
Returns:
This method returns a pointer to the second underfunction of this function.
See also:
pSecondUnderfunction
const cUnderFunction* fib::cFunctionTwoValue::getSecondUnderFunction ( ) const
Returns:
This method returns a pointer to the second underfunction of this function.
See also:
pSecondUnderfunction
virtual unsignedLongFib fib::cFunctionTwoValue::getTimeNeed ( unsignedLongFib  lMaxTime = 0) const
virtual

This method evaluades a value for the time needed to evalue the underfunction. This value should not exceed lMaxTime, if the value for the time is greater than lMaxTime the evaluation will be stopt and lMaxTime returned. If lMaxTime is 0 (for infinity) the evaluation won't be stoped, this is the standard case.

See also:
cFibElement::evalueObject()
Parameters:
lMaxTimethe maximum time for the evaluation, the returned exceed this value; the value 0 stands for infinity, so the evaluation won't be stoped
Returns:
a value for the time needed to evalue this underfunction

Implements fib::cUnderFunction.

Reimplemented in fib::cFunctionIf.

virtual set<cFibVariable*> fib::cFunctionTwoValue::getUsedVariables ( )
virtual

This method returns all variables used in this underfunction.

See also:
cFibVariable
Returns:
all variables used in this underfunction

Implements fib::cUnderFunction.

Reimplemented in fib::cFunctionIf.

virtual bool fib::cFunctionTwoValue::isUsedVariable ( const cFibVariable variable) const
virtual

This method checks if the given variable is used in this underfunction.

See also:
cFibVariable
Parameters:
variablethe variable to check if it is used
Returns:
true if the variable is used, else false

Implements fib::cUnderFunction.

Reimplemented in fib::cFunctionIf.

virtual bool fib::cFunctionTwoValue::isValid ( ) const
virtual

This method returns if this underfunction is valid, else false. All values in the underfunction and it's underfunctions must be inside the underfunction domain. All variables must be defined over this underfunction. No underfunction should contain itselfor should be contained in one of its underfunctions (no cycles allowed).

Returns:
true if this underfunction is valid, else false

Implements fib::cUnderFunction.

Reimplemented in fib::cFunctionIf.

virtual bool fib::cFunctionTwoValue::replaceVariable ( cFibVariable variableOld,
cFibVariable variableNew 
)
virtual

This method replace the variable variableOld with the variable variableNew in the underfunction.

See also:
cFibVariable
isVariable()
isUsedVariable()
Parameters:
variableOldthe variable to replace
variableNewthe variable with which the variable variableOld is to replace
Returns:
true if the variable variableOld is replaced with variableNew, else false

Implements fib::cUnderFunction.

Reimplemented in fib::cFunctionIf.

virtual void fib::cFunctionTwoValue::setDefiningFibElement ( cFibElement fibElement = NULL,
bool  bCheckDomains = true 
)
virtual

Sets the Fib -element which defines/ uses this underfunction. If the given pointer is the nullpointer (standardvalue), no Fib -element defines this underfunction.

Parameters:
definingFibElementa pointer to the Fib -element which defines/ uses this underfunction
bCheckDomainsgetthe domains of the defining element and check the underfunctionelements with it

Reimplemented from fib::cUnderFunction.

Reimplemented in fib::cFunctionIf.

void fib::cFunctionTwoValue::setFirstUnderFunction ( const cUnderFunction underFunction,
bool  bDeleteOld = true 
)

This methods sets the first underfunction of this function.

See also:
pFirstUnderfunction
Parameters:
underFunctionthe underfunction, which should be set as the first underfunction of this function; the underfunction will be copied and the copy will be inserted
bDeleteOldif true the old underfunction will be deleted from memory, else the old underfunction should be deleted elswher
void fib::cFunctionTwoValue::setSecondUnderFunction ( const cUnderFunction underFunction,
bool  bDeleteOld = true 
)

This methods sets the second underfunction of this function.

See also:
pSecondUnderfunction
Parameters:
underFunctionthe underfunction, which should be set as the second underfunction of this function; the underfunction will be copied and the copy will be inserted
bDeleteOldif true the old underfunction will be deleted from memory, else the old underfunction should be deleted elswher
virtual bool fib::cFunctionTwoValue::storeXml ( ostream &  stream) const
virtual

This method stores this underfunction in the XML -format into the given stream. Variables should have ther number as ther value.

Parameters:
streamthe stream where this underfunctionshould be stored to
Returns:
true if this underfunction is stored, else false

Implements fib::cUnderFunction.

Reimplemented in fib::cFunctionIf.


Member Data Documentation

cUnderFunction* fib::cFunctionTwoValue::pFirstUnderfunction
protected

The first underfunction for the function.

Definition at line 62 of file cFunctionTwoValue.h.

cUnderFunction* fib::cFunctionTwoValue::pSecondUnderfunction
protected

The second underfunction for the function.

Definition at line 67 of file cFunctionTwoValue.h.


The documentation for this class was generated from the following file: