The Fib multimedia system
Fib is a system for storing multimedia data (like images or films).
|
#include <cIf.h>
Public Member Functions | |
cIf (const cCondition &inCondition, cFibElement *pInUnderobjectTrueCase=NULL, cFibElement *pInUnderobjectFalseCase=NULL, cFibElement *pInSuperiorElement=NULL) | |
cIf (const cIf &ifElement) | |
~cIf () | |
virtual bool | isValidFibElement () const |
virtual char | getType () const |
virtual bool | evalueObject (iEvaluePosition &evaluePosition, const unsignedIntFib objectPoint, list< cVectorProperty > &liVecProperties) const |
virtual bool | evalueObject (iEvalueFibElement &evalueFibElement, const unsignedIntFib objectPoint, list< cVectorProperty > &liVecProperties, const list< char > &liCFibElementTyps) |
virtual unsignedLongFib | getTimeNeed (unsignedLongFib lMaxTime=0) const |
virtual unsignedLongFib | getCompressedSize () const |
virtual bool | isUsedVariable (const cFibVariable *variable, edDirection direction=ED_POSITION) const |
virtual set< cFibVariable * > | getUsedVariables (edDirection direction=ED_POSITION) |
virtual bool | replaceVariable (cFibVariable *variableOld, cFibVariable *variableNew) |
virtual cFibElement * | copyElement (const char cType='u', const unsignedIntFib elementPoint=0, bool bAbsolute=false) const |
virtual bool | equal (const cFibElement &fibObject) const |
virtual bool | equalElement (const cFibElement &fibElement) const |
virtual bool | storeXml (ostream &stream) const |
virtual bool | insertElement (cFibElement *fibElement, const char cType='u', const unsignedIntFib elementPoint=0, bool bAbsolute=false, bool bCheckVariables=true) |
virtual bool | insertObjectInElement (cFibElement *fibObject, const char cType='u', const unsignedIntFib elementPoint=0, bool first=true, bool bAbsolute=false) |
virtual bool | overwriteObjectWithObject (cFibElement *fibObject, const char cType='u', const unsignedIntFib elementPoint=0, bool bDeleteOld=true, bool bAbsolute=false) |
virtual bool | hasUnderAllObjects () const |
virtual cFibElement * | cutElement (const char cType='u', const unsignedIntFib elementPoint=0, bool bAbsolute=false, bool bCheckVariables=true) |
cCondition * | getCondition () const |
bool | setCondition (const cCondition &condition) |
cFibElement * | getTrueCase () |
bool | setTrueCase (cFibElement *fibObjectTrue, bool bDeleteOld=true) |
cFibElement * | getFalseCase () |
bool | setFalseCase (cFibElement *fibObjectFalse, bool bDeleteOld=true) |
Public Member Functions inherited from fib::cFibBranch | |
virtual | ~cFibBranch () |
virtual unsignedIntFib | getNumberOfElements (char cType='u') const |
virtual unsignedIntFib | getNumberOfMovePoints () const |
virtual unsignedIntFib | getNumberOfObjectPoints () const |
virtual unsignedIntFib | objectPointToElementPoint (const unsignedIntFib uiObjectPoint, bool bAbsolute=false) const |
virtual bool | removeObject (const unsignedIntFib objectPoint, bool bDeleteOld=true, bool bAbsolute=false) |
virtual bool | isRemovableElement (const char cType='u', const unsignedIntFib elementPoint=0, bool bAbsolute=false, bool bCheckVariables=true) const |
virtual intFib | moveLimbElement (const char cType='u', const unsignedIntFib elementPoint=0, const intFib iHowfar=1, bool bAbsolute=false) |
bool | isBranch () const |
Public Member Functions inherited from fib::cFibElement | |
virtual | ~cFibElement () |
virtual cFibElement * | getSuperiorFibElement () |
virtual cFibElement * | getNextFibElement () |
virtual cFibElement * | getNextFibElement (char cType) |
virtual cFibElement * | getConstFibElement (longFib lNumber, bool bAbsolute=false) const |
virtual cFibElement * | getConstFibElement (char cType, longFib lNumber, bool bAbsolute=false) const |
cFibElement * | getFibElement (longFib lNumber, bool bAbsolute=false) |
cFibElement * | getFibElement (char cType, longFib lNumber, bool bAbsolute=false) |
list< cFibElement * > | getAllFibElements (char cTypeBasis='u', longFib lNumber=1, char cType='u', edDirection direction=ED_ALL, unsignedLongFib lNumberOfMaxReturnedElements=0, bool bAbsolute=false) |
bool | evalueObjectSimple (iEvaluePosition &evaluePosition, const unsignedIntFib objectPoint=0) const |
bool | evalueObjectSimple (iEvalueFibElement &evalueFibElement, const unsignedIntFib objectPoint=0, const list< char > liCFibElementTyps=list< char >()) |
virtual bool | isDefinedVariable (const cFibVariable *variable, edDirection direction=ED_POSITION) const |
virtual list< cFibVariable * > | getDefinedVariables (edDirection direction=ED_HIGHER) |
bool | variablesAreDefined (const set< cFibVariable * > &setVariable, edDirection direction=ED_HIGHER) const |
virtual unsignedIntFib | getNumberOfElement (bool bOfType=false) const |
virtual unsignedIntFib | getNumberOfMovePoint () const |
virtual unsignedIntFib | getNumberOfObjectPoint () const |
virtual unsignedIntFib | typeElementPointToElementPoint (const char cType, const unsignedIntFib elementPoint, bool bAbsolute=false) const |
virtual list< unsignedIntFib > | elementPointToObjectPoints (const char cType, const unsignedIntFib elementPoint, bool bAbsolute=false) const |
virtual list< unsignedIntFib > | getObjectPointsForElement (const cFibElement *pFibElement, bool bAbsolute=false) const |
virtual bool | removeElement (const char cType='u', const unsignedIntFib elementPoint=0, bool bAbsolute=false, bool bCheckVariables=true) |
virtual bool | isMovable () const |
virtual cFibElement * | clone () const |
virtual cFibElement * | copy (const unsignedIntFib iObjectPoint=0) const |
virtual bool | equalValuesSet (const cFibVariable *variableOwn, const cFibElement &fibElement, const cFibVariable *variable) const |
virtual bool | store (ostream &stream) const |
virtual cRoot * | getSuperiorRootElement () |
virtual const cRoot * | getSuperiorRootElement () const |
virtual list< longFib > | getAllRootObjectIdentifiers () const |
virtual list< longFib > | getAllDatabaseObjectIdentifiers () const |
virtual cRoot * | getRootObject (longFib lIdentifier) |
virtual list< longFib > | getAllAccessibleRootObjectIdentifiers () const |
virtual cRoot * | getAccessibleRootObject (longFib lIdentifier) |
virtual cDomains | getValidDomains () const |
virtual cDomains | getValidValueDomains () const |
virtual unsignedIntFib | getNumberOfDimensions () const |
virtual unsignedIntFib | getDimensionMapping (unsignedIntFib iDimensionNumber) const |
virtual bool | isLimb () const |
virtual bool | isLeaf () const |
Protected Member Functions | |
cIf (const TiXmlElement *pXmlElement, intFib &outStatus, list< cFibVariable * > &liDefinedVariables) | |
cIf (cReadBits &iBitStream, intFib &outStatus, list< cFibVariable * > &liDefinedVariables, const cDomains &validDomains, cRoot *pNextRoot) | |
virtual bool | storeBit (ostream &stream, char &cRestBits, unsigned char &uiRestBitPosition) const |
virtual cFibElement * | copyInternal (const unsignedIntFib iObjectPoint=0) const |
void | syncSubobjects () |
Protected Member Functions inherited from fib::cFibBranch | |
cFibBranch (cFibElement *pInSuperiorElement=NULL, cFibElement *pInPreviousFibElement=NULL, cFibElement *pInNextFibElement=NULL, list< cFibElement * > liFibUnderObjects=list< cFibElement * >()) | |
cFibBranch (const cFibBranch &fibBranchElement) | |
virtual bool | registerNewFibElement (cFibElement *newFibElement, unsignedIntFib uINumberOfFibElement, bool bDirectionUp) |
virtual bool | registerNewFibObject (cFibElement *newFibObject, unsignedIntFib uILowerNumberOfFibElements, unsignedIntFib uIUpperNumberOfFibElements, bool bDirectionUp) |
virtual void | cutConnections (edDirection direction=ED_ALL) |
virtual cFibElement * | updateValues (cFibElement *previosFibElement=NULL, cFibElement *pNextArm=NULL) |
virtual unsignedIntFib | getNumberOfObjectPoint (unsignedIntFib uINumberOfStartFibElement) const |
virtual list< unsignedIntFib > | elementPointToObjectPoints (const cFibElement *referenceFibObject, const unsignedIntFib uiLastObjectPoint) const |
virtual unsignedIntFib | enumerateVariablesForStoring (unsignedIntFib uiLastVariableNumber=0) |
virtual list< cFibElement * > | getAllFibElementsFromPosition (char cType, edDirection direction, unsignedLongFib lNumberOfMaxReturnedElements) |
virtual bool | isDefinedVariableInternal (const cFibVariable *pVariable, edDirection direction=ED_POSITION, const cFibElement *pCallingFibElement=NULL) const |
virtual list< cFibVariable * > | getDefinedVariablesInternal (edDirection direction=ED_HIGHER, const cFibElement *pCallingFibElement=NULL) |
Protected Member Functions inherited from fib::cFibElement | |
cFibElement (cFibElement *pInSuperiorElement=NULL, cFibElement *pInPreviousFibElement=NULL, cFibElement *pInNextFibElement=NULL) | |
cFibElement (const cFibElement &fibElement) | |
virtual bool | updateAllValues () |
intFib | moveLimbElementUp (const char cType= 'u', const unsignedIntFib elementPoint=0, const unsignedIntFib uiHowfar=1, bool bAbsolute=false) |
cFibElement * | getMasterRoot () |
cFibElement * | getMasterRoot () const |
Private Attributes | |
cCondition * | pCondition |
cFibElement * | pFibObjectTrue |
cFibElement * | pFibObjectFalse |
Friends | |
class | cFibElement |
class | cFibBranch |
Additional Inherited Members | |
Protected Attributes inherited from fib::cFibBranch | |
list< cFibElement * > | fibUnderObjects |
Protected Attributes inherited from fib::cFibElement | |
cFibElement * | pSuperiorElement |
cFibElement * | pPreviousFibElement |
cFibElement * | pNextFibElement |
cRoot * | pNextRootElement |
unsignedIntFib | uINumberOfFibElement |
fib::cIf::cIf | ( | const cCondition & | inCondition, |
cFibElement * | pInUnderobjectTrueCase = NULL , |
||
cFibElement * | pInUnderobjectFalseCase = NULL , |
||
cFibElement * | pInSuperiorElement = NULL |
||
) |
parameterconstructor
inCondition | the condition this function should have |
pInUnderobjectTrueCase | the fib-element, which is the underobject of this fib-element for the true case; (it also stands next in the order of fib-elements) |
pInUnderobjectFalseCase | the fib-element, which is the underobject of this fib-element for the false case |
pInSuperiorElement | the fib-element, in which this if-element is an underobject |
fib::cIf::cIf | ( | const cIf & | ifElement | ) |
copyconstructor This copyconstructor constructs a copy of the given if-element. It dosn't copy other fib-elements than the given, even if ther are in the if-element.
ifElement | the if-element to copy |
|
protected |
The constructor for restoring a if-object from an TinyXml element.
pXmlNode | a pointer to the TinyXml node wher the fib-object is stored in |
outStatus | An reference to an integervalue where the errorvalue can be stored to. possible errorvalues are:
|
liDefinedVariables | a 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 |
|
protected |
This constructor restores a if-object from the stream where it is stored in the compressed fib-format. This method is for internal use only.
iBitStream | the stream wher the if-object is stored to in, because this stream is an cReadBits, any number of bits can be readed from it |
outStatus | An 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:
|
liDefinedVariables | a 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 |
validDomains | the domains valid for restoring the fib-elements |
pNextRoot | the next higher root-element for the to restore fib-elements, or the last restored root-element |
fib::cIf::~cIf | ( | ) |
destructor
|
virtual |
This method copies the fib-element on the specified position. Variables which are not defined in the fib-element but used don't change ther reference.
cType | the type of the fib-element to copy |
elementPoint | the number of the fib-element, in the order of Fib -elements of the given type cType, to copy |
bAbsolute | if the lNumber is an absolute value for the wool fib -object |
Implements fib::cFibElement.
|
protectedvirtual |
This method copies the connected object with the given number in the order of connected objects. For this every fib-element, beginning from this fib-element, that is part of the connected object will be copied. Variables which are not defined in the connected object but used don't change ther reference. It is an helpmethod for the copy method. It dosn't update the structural information of the created fib -object.
iObjectPoint | the number of the connected object to copy; the standartvalue is 0 for coping the complet actual object |
Implements fib::cFibElement.
|
virtual |
This method cuts the Fib-element on the specified position. This works like removeElement(), except that the removed element is returned.
cType | the type of the Fib-element to cut |
elementPoint | the number of the Fib-element, in the order of Fib-elements of the given type cType, to cut |
bAbsolute | if the elementPoint is an absolute value for the wool Fib-object |
bCheckVariables | if true (standardvalue) it will be checked if the variables the Fib-element defines are needed, else the Fib-element will be removed even if its variables are needed elsewher |
Reimplemented from fib::cFibBranch.
|
virtual |
This method checks if the given fib-object is equal to this Fib -object. Variables can be others, but must be defined and used in equivalent fib-elements.
fibObject | the fib-object to which this fib-object should be equal |
Reimplemented from fib::cFibBranch.
|
virtual |
This method checks if the given fib-element is equal to this fib -element. The underobjects arn't compared, not even ther count is compared. Used variables can be others.
fibElement | the fib-element to which this fib-element should be equal |
Implements fib::cFibElement.
|
virtual |
This method evaluades the fib -object.
evaluePosition | a reference to the object with the evaluePosition() method to evalue /store the positions and ther properties; everytime a point (to evalue) is reached in the evaluation, this method is called with the position and the properties of the point; |
objectPoint | the object point in the order of true partobjects to evalue |
liVecProperties | a list with the property vectors which should be global for the evalued object |
Implements fib::cFibElement.
|
virtual |
This method evaluades the fib -object. Evertime a fib-elements, with a type of the given type chars in liCFibElementTyps, is reached while evaluation, it is given back with the properties which it has. Ever pointelement is given back. The type chars for pointelements don't need to be in the list liCFibElementTyps.
evalueFibElement | a reference to the object with the evalueElement() method to evalue /store the fib-elements and ther properties; everytime a fib-element (with one of the type given in liCFibElementTyps) is reached in the evaluation, the method evalueElement() of this objects is called with the fib-element and the properties of the fib-element; |
objectPoint | the object point in the order of true partobjects to evalue |
liVecProperties | a list with the property vectors which should be global for the evalued object |
liCFibElementTyps | a list with the type chars ( |
Implements fib::cFibElement.
|
virtual |
This method evaluades the size of the fib-object in bits in the compressed file form. The optionalpart field of function -elements will be ignored.
Implements fib::cFibElement.
cCondition* fib::cIf::getCondition | ( | ) | const |
cFibElement* fib::cIf::getFalseCase | ( | ) |
|
virtual |
This method evaluades a value for the time needed to evalue the object. 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.
lMaxTime | the maximum time for the evaluation, the returned exceed this value; the value 0 stands for infinity, so the evaluation won't be stoped |
Implements fib::cFibElement.
cFibElement* fib::cIf::getTrueCase | ( | ) |
|
virtual |
Implements fib::cFibElement.
|
virtual |
This method returns all variables used in the given direction from this fib-element.
direction | the direction from this fib-element, in which the variable should be used; standardvalue is ED_POSITION so yust this fib-element will be checked |
Reimplemented from fib::cFibBranch.
|
virtual |
This method checks, if all Fib -elements of this Fib -object have the underobjects they need to be correct.
Reimplemented from fib::cFibBranch.
|
virtual |
This method inserts the given Fib -element fibElement on the specified position. The replaced Fib -element will be the underobject of the inserted Fib -element fibElement.
cType | the type of the Fib -element insted of which the given Fib -element fibElement should be inserted |
elementPoint | the number of the Fib -element, in the order of Fib -elements of the given type cType, in which position the given Fib -element fibElement should be inserted; if 0 the given fibElement will be inserted under this Fib -element |
fibElement | the Fib -element to insert |
bAbsolute | if the lNumber is an absolute value for the wool fib -object |
bCheckVariables | if true (standardvalue) it will be checked if the variables the fib -element defines are needed, else the fib -element will be removed even if its variables are needed elsewher |
Reimplemented from fib::cFibBranch.
|
virtual |
This method inserts the given Fib-object fibObject on the specified position. On the specified position a listelement will be inserted, with the old Fib-object and the given Fib-object fibObject as its underobjects.
cType | the type of the Fib -element, on which position the given Fib-object fibObject should be inserted |
elementPoint | the number of the Fib -element, in the order of Fib -elements of the given type cType, on which position the given Fib-object fibObject should be inserted |
fibObject | the Fib-object to insert |
first | if true, the inserted object will be the first underobject of the new listelement |
bAbsolute | if the lNumber is an absolute value for the wool fib -object |
Reimplemented from fib::cFibBranch.
|
virtual |
This method checks if the given variable is used in the given direction from this fib-element.
variable | the variable to check if it is used |
direction | the direction from this fib-element, in which the variable should be used; standardvalue is ED_POSITION so yust this fib-element will be checked |
Reimplemented from fib::cFibBranch.
|
virtual |
This method checks, if this Fib-element is an valid Fib-element.
Reimplemented from fib::cFibBranch.
|
virtual |
This method overwrites the Fib-object on specified position with the given Fib-object fibObject. The Fib-object on specified position will be replaced with the given Fib-object fibObject.
cType | the type of the Fib -element, on which position the given Fib-object fibObject should be inserted |
elementPoint | the number of the Fib -element, in the order of Fib -elements of the given type cType, on which position the given Fib-object fibObject should be inserted |
fibObject | the Fib-object to insert |
bDeleteOld | if true, delete the old Fib-object from the memory |
bAbsolute | if the elementPoint is an absolute value for the wool fib -object |
Reimplemented from fib::cFibBranch.
|
virtual |
This method replace the variable variableOld with the variable variableNew in the object.
variableOld | the variable to replace |
variableNew | the variable with which the variable variableOld is to replace |
Reimplemented from fib::cFibBranch.
bool fib::cIf::setCondition | ( | const cCondition & | condition | ) |
This method sets the given condition as the condition of this if-element. (The given condition is copied befor it is set.)
condition | a reference to the to set condition |
bool fib::cIf::setFalseCase | ( | cFibElement * | fibObjectFalse, |
bool | bDeleteOld = true |
||
) |
This method sets the given Fib-object as the false case for this this if-element.
fibObjectFalse | the new false case Fib-object to set |
bDeleteOld | if true, delete the old Fib-object from the memory |
bool fib::cIf::setTrueCase | ( | cFibElement * | fibObjectTrue, |
bool | bDeleteOld = true |
||
) |
This method sets the given Fib-object as the true case for this this if-element.
fibObjectTrue | the new true case Fib-object to set |
bDeleteOld | if true, delete the old Fib-object from the memory |
|
protectedvirtual |
This method stores this fib-object in the compressed Fib -format into the given stream. It is needed becouse the stream can yust store byts but the size of fib-elements can be any number of bits. Because of that ther have to be a possibility to exchange the missing bits betwean the fib-elements. Beware: You need to call storeBit() of the root -elements with the domain for the function or the function will not be readebel.
stream | the stream where this fib-object should be stored to |
cRestBits | the not yet writen bits which should be stored |
uiRestBitPosition | the number of bits in the cRestBits which should be writen respectively containing valid information |
Implements fib::cFibElement.
|
virtual |
This method stores this fib-object in the XML -format into the given stream.
stream | the stream where this fib-object should be stored to |
Implements fib::cFibElement.
|
protected |
This method syncronises the underobjects of this cIf-class with the underobjectslist fibUnderObjects of the cFibBranch class.
|
friend |
Reimplemented from fib::cFibElement.
|
friend |
Reimplemented from fib::cFibBranch.
|
private |
|
private |
The false case for this if-element. If the condition is false the subobject for the false case will be evalued,
|
private |
The true case for this if-element. If the condition is true the subobject for the true case will be evalued,