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::cExtObject Class Reference

#include <cExtObject.h>

Inheritance diagram for fib::cExtObject:
Collaboration diagram for fib::cExtObject:

List of all members.

Public Member Functions

 cExtObject (const longFib lInIdentifier, const cVectorExtObject &vecInInputValues, cFibElement *pInSuperiorElement=NULL)
 cExtObject (const longFib lInIdentifier, const unsignedIntFib uiNumberOfInputValues=0, cFibElement *pInSuperiorElement=NULL)
 cExtObject (const cExtObject &extObjElement)
virtual ~cExtObject ()
virtual char getType () const
virtual bool isValidFibElement () 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 replaceVariable (cFibVariable *pVariableOld, cFibVariable *pVariableNew)
virtual bool isUsedVariable (const cFibVariable *variable, edDirection direction=ED_POSITION) const
virtual set< cFibVariable * > getUsedVariables (edDirection direction=ED_POSITION)
virtual bool isMovable () const
virtual cFibElementcopyElement (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 equalValuesSet (const cFibVariable *variableOwn, const cFibElement &fibelement, const cFibVariable *variable) 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 cFibElementcutElement (const char cType='u', const unsignedIntFib elementPoint=0, bool bAbsolute=false, bool bCheckVariables=true)
virtual intFib moveLimbElement (const char cType='u', const unsignedIntFib elementPoint=0, const intFib iHowfar=1, bool bAbsolute=false)
longFib getIdentifier () const
void setIdentifier (const longFib lInIdentifier)
cVectorExtObjectgetInputVector ()
const cVectorExtObjectgetInputVector () const
unsignedIntFib getNumberOfInputValues () const
void setNumberOfInputValues (const unsignedIntFib uiNumberOfInputValues)
unsignedIntFib getNumberOfSubobjects () const
void setNumberOfSubobjects (const unsignedIntFib uiNumberOfSubobjects, bool bDeleteOld=true)
cFibElementgetSubobject (const unsignedIntFib uiNumberSubobject)
bool setSubobject (const unsignedIntFib uiNumberSubobject, cFibElement *pFibObject, bool bDeleteOld=true)
unsignedIntFib getNumberOfOutputVariables (const unsignedIntFib uiNumberOfSubobject) const
unsignedIntFib setNumberOfOutputVariables (const unsignedIntFib uiNumberOfSubobject, const unsignedIntFib uiNumberOfVariables)
vector< cFibVariable * > getOutputVariables (const unsignedIntFib uiNumberOfSubobject)
cFibVariablegetOutputVariable (const unsignedIntFib uiNumberOfSubobject, const unsignedIntFib uiNumberOfOutputVariable)
bool addSubobject (cFibElement *pSubobject, unsignedIntFib uiPosition=0, const unsignedIntFib uiNumberOfOutVar=0)
bool deleteSubobject (unsignedIntFib uiSubobjectNumber, 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 hasUnderAllObjects () const
virtual bool isRemovableElement (const char cType='u', const unsignedIntFib elementPoint=0, bool bAbsolute=false, bool bCheckVariables=true) const
bool isBranch () const
- Public Member Functions inherited from fib::cFibElement
virtual ~cFibElement ()
virtual cFibElementgetSuperiorFibElement ()
virtual cFibElementgetNextFibElement ()
virtual cFibElementgetNextFibElement (char cType)
virtual cFibElementgetConstFibElement (longFib lNumber, bool bAbsolute=false) const
virtual cFibElementgetConstFibElement (char cType, longFib lNumber, bool bAbsolute=false) const
cFibElementgetFibElement (longFib lNumber, bool bAbsolute=false)
cFibElementgetFibElement (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< unsignedIntFibelementPointToObjectPoints (const char cType, const unsignedIntFib elementPoint, bool bAbsolute=false) const
virtual list< unsignedIntFibgetObjectPointsForElement (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 cFibElementclone () const
virtual cFibElementcopy (const unsignedIntFib iObjectPoint=0) const
virtual bool store (ostream &stream) const
virtual cRootgetSuperiorRootElement ()
virtual const cRootgetSuperiorRootElement () const
virtual list< longFibgetAllRootObjectIdentifiers () const
virtual list< longFibgetAllDatabaseObjectIdentifiers () const
virtual cRootgetRootObject (longFib lIdentifier)
virtual list< longFibgetAllAccessibleRootObjectIdentifiers () const
virtual cRootgetAccessibleRootObject (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

 cExtObject (const TiXmlElement *pXmlElement, intFib &outStatus, list< cFibVariable * > &liDefinedVariables)
 cExtObject (cReadBits &iBitStream, intFib &outStatus, list< cFibVariable * > &liDefinedVariables, const cDomains &validDomains, cRoot *pNextRoot)
virtual bool storeBit (ostream &stream, char &cRestBits, unsigned char &uiRestBitPosition) const
virtual unsignedIntFib enumerateVariablesForStoring (unsignedIntFib uiLastVariableNumber=0)
virtual void cutConnectionsTo (const cFibElement *pFibElement)
void syncSubobjects ()
virtual cExtObjectcopyInternal (const unsignedIntFib iObjectPoint=0) const
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::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 cFibElementupdateValues (cFibElement *previosFibElement=NULL, cFibElement *pNextArm=NULL)
virtual unsignedIntFib getNumberOfObjectPoint (unsignedIntFib uINumberOfStartFibElement) const
virtual list< unsignedIntFibelementPointToObjectPoints (const cFibElement *referenceFibObject, const unsignedIntFib uiLastObjectPoint) const
virtual list< cFibElement * > getAllFibElementsFromPosition (char cType, edDirection direction, unsignedLongFib lNumberOfMaxReturnedElements)
- 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)
cFibElementgetMasterRoot ()
cFibElementgetMasterRoot () const

Private Attributes

longFib lIdentifier
cVectorExtObject vecInputValues
vector< pair< cFibElement
*, vector< cFibVariable * > > > 
vecSubobjects

Friends

class cFibElement
class cFibBranch
class cRoot

Additional Inherited Members

- Protected Attributes inherited from fib::cFibBranch
list< cFibElement * > fibUnderObjects
- Protected Attributes inherited from fib::cFibElement
cFibElementpSuperiorElement
cFibElementpPreviousFibElement
cFibElementpNextFibElement
cRootpNextRootElement
unsignedIntFib uINumberOfFibElement

Detailed Description

Definition at line 64 of file cExtObject.h.


Constructor & Destructor Documentation

fib::cExtObject::cExtObject ( const longFib  lInIdentifier,
const cVectorExtObject vecInInputValues,
cFibElement pInSuperiorElement = NULL 
)

parameterconstructor

Parameters:
lInIdentifierThe identifier of the external Fib-object this external element stands for.
See also:
lIdentifier
Parameters:
vecInInputValuesthe vector with the input values of this external element
See also:
vecInputValues
Parameters:
pInSuperiorElementthe Fib-element in which this Fib-element is an subobject
fib::cExtObject::cExtObject ( const longFib  lInIdentifier,
const unsignedIntFib  uiNumberOfInputValues = 0,
cFibElement pInSuperiorElement = NULL 
)

parameterconstructor

Parameters:
lInIdentifierThe identifier of the external Fib-object this external element stands for.
See also:
lIdentifier
Parameters:
uiNumberOfInputValuesthe number of input values of this external element
See also:
vecInputValues
Parameters:
pInSuperiorElementthe Fib-element in which this Fib-element is an subobject
fib::cExtObject::cExtObject ( const cExtObject extObjElement)

copyconstructor This copyconstructor constructs a copy of the given external object element. It dosn't copy other Fib-elements than the given, even if ther are in the external object element.

Parameters:
extObjElementthe external object element to copy
fib::cExtObject::cExtObject ( const TiXmlElement *  pXmlElement,
intFib outStatus,
list< cFibVariable * > &  liDefinedVariables 
)
protected

The constructor for restoring a external object element from an TinyXml element.

Parameters:
pXmlNodea pointer to the TinyXml node the Fib-object 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
fib::cExtObject::cExtObject ( cReadBits iBitStream,
intFib outStatus,
list< cFibVariable * > &  liDefinedVariables,
const cDomains validDomains,
cRoot pNextRoot 
)
protected

This method restores a external object objects from the stream where it is stored in the compressed Fib-format. This method is for internal use only.

Parameters:
iBitStreamthe stream where this external object objects 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
validDomainsthe domains valid for restoring the fib-elements
pNextRootthe next higher root-element for the to restore fib-elements, or the last restored root-element
virtual fib::cExtObject::~cExtObject ( )
virtual

destructor


Member Function Documentation

bool fib::cExtObject::addSubobject ( cFibElement pSubobject,
unsignedIntFib  uiPosition = 0,
const unsignedIntFib  uiNumberOfOutVar = 0 
)

This method adds the given subobject to the subobjects of this extern object element. This will fail if:

  • ther is no subobject (pSubobject==NULL)
See also:
vecSubobjects
getSubobject()
setSubobject()
deleteSubobject()
getNumberOfSubobjects()
setNumberOfSubobject()
getOutputVariables()
getNumberOfOutputVariables()
setNumberOfOutputVariables()
Parameters:
pSubobjecta pointer to the subobject to add; the object will not be copied, so don't delete it
uiPositionthe position on which the subobject is to insert in this extern object element subobject vector (counting begins with 1), if 0 or greater the number of subobjects the subobject will be inserted to the end of the subobject list
uiNumberOfOutVarthe number of output variables of the subobject to add should have
Returns:
true if the subobject pSubobject was inserted, else false
virtual cFibElement* fib::cExtObject::copyElement ( const char  cType = 'u',
const unsignedIntFib  elementPoint = 0,
bool  bAbsolute = false 
) const
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.

See also:
getType()
Parameters:
cTypethe type of the Fib-element to copy
elementPointthe number of the Fib-element, in the order of Fib-elements of the given type cType, to copy
bAbsoluteif the lNumber is an absolute value for the wool Fib-object
Returns:
the copy of the Fib-element

Implements fib::cFibElement.

virtual cExtObject* fib::cExtObject::copyInternal ( const unsignedIntFib  iObjectPoint = 0) const
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 help method for the copy method. It dosn't update the structural information of the created Fib-object.

See also:
copy()
Parameters:
iObjectPointthe number of the connected object to copy; the standartvalue is 0 for coping the complet actual object
Returns:
the copy of the connected object or NULL if non such exists

Implements fib::cFibElement.

virtual void fib::cExtObject::cutConnectionsTo ( const cFibElement pFibElement)
protectedvirtual

This method cuts the connections of this Fib-element to the given Fib-element.

Parameters:
pFibElementthe Fib-element to which to cut the connection
virtual cFibElement* fib::cExtObject::cutElement ( const char  cType = 'u',
const unsignedIntFib  elementPoint = 0,
bool  bAbsolute = false,
bool  bCheckVariables = true 
)
virtual

This method cuts the Fib-element on the specified position. This works like removeElement(), except that the removed element is returned.

See also:
isDeletableelement()
removeElement()
getType()
Parameters:
cTypethe type of the Fib-element to cut
elementPointthe number of the Fib-element, in the order of Fib-elements of the given type cType, to cut
bAbsoluteif the elementPoint is an absolute value for the wool Fib-object
bCheckVariablesif 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
Returns:
the pointer to the cuted Fib-element or NULL, if the Fib -element couldn't cut

Reimplemented from fib::cFibBranch.

bool fib::cExtObject::deleteSubobject ( unsignedIntFib  uiSubobjectNumber,
bool  bDeleteOld = true 
)

This method deletes the uiSubobjectNumber'th subobject in this extern object element.

See also:
vecSubobjects
getSubobject()
setSubobject()
addSubobject()
getNumberOfSubobjects()
setNumberOfSubobject()
getOutputVariables()
getNumberOfOutputVariables()
setNumberOfOutputVariables()
Parameters:
uiSubobjectNumberthe number of the subobject in the subobject vector to delete
bDeleteOldif true the subobject will be removed from the memory, else yust the reference will be removed from this extern object element;default is true
Returns:
true if the uiSubobjectNumber'th subobject was deleted, else false
virtual unsignedIntFib fib::cExtObject::enumerateVariablesForStoring ( unsignedIntFib  uiLastVariableNumber = 0)
protectedvirtual

This method sets each variable, which is defined over an leaf, to an uniqe integer number greater than the given number uiLastVariableNumber. While storing this number can be used to identify the variable.

Parameters:
uiLastVariableNumberthe number which was last used, this means also is the greatest used, in this object
Returns:
the number which was last use, this means also is the greatest used, in this object from the method

Reimplemented from fib::cFibBranch.

virtual bool fib::cExtObject::equal ( const cFibElement fibObject) const
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.

Parameters:
fibObjectthe Fib-object to which this Fib-object should be equal
Returns:
true if this Fib-object is equal to the given Fib-object, else false

Reimplemented from fib::cFibBranch.

virtual bool fib::cExtObject::equalElement ( const cFibElement fibelement) const
virtual

This method checks if the given Fib-element is equal to this Fib-element. The subobjects arn't compared, not even ther count is compared. Used variables can be others.

Parameters:
fibelementthe Fib-element to which this Fib-element should be equal
Returns:
true if this Fib-element is equal to the given Fib-object, else false

Implements fib::cFibElement.

virtual bool fib::cExtObject::equalValuesSet ( const cFibVariable variableOwn,
const cFibElement fibelement,
const cFibVariable variable 
) const
virtual

This method checks if the given Fib-element sets the variable to the same values as this Fib-element.

Parameters:
variableOwna pointer to a defined variable in this Fib-element, it is compared to the equivalent variable pVariable in the given Fib-element fibelement
fibelementthe Fib-element to which this Fib-element should be compared
variablea pointer to a defined variable in the other Fib-element fibelement
Returns:
true if this Fib-element sets the variable to the same values as the Fib-element fibElement

Reimplemented from fib::cFibElement.

virtual bool fib::cExtObject::evalueObject ( iEvaluePosition evaluePosition,
const unsignedIntFib  objectPoint,
list< cVectorProperty > &  liVecProperties 
) const
virtual

This method evaluades the Fib-object.

Parameters:
evaluePositiona 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;
See also:
iEvaluePosition
Parameters:
objectPointthe object point in the order of true partobjects to evalue
liVecPropertiesa list with the property vectors which should be global for the evalued object
Returns:
if the evalueation was successfull true, else false

Implements fib::cFibElement.

virtual bool fib::cExtObject::evalueObject ( iEvalueFibElement evalueFibElement,
const unsignedIntFib  objectPoint,
list< cVectorProperty > &  liVecProperties,
const list< char > &  liCFibElementTyps 
)
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.

Parameters:
evalueFibElementa 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;
See also:
iEvalueFibElement
Parameters:
objectPointthe object point in the order of true partobjects to evalue
liVecPropertiesa list with the property vectors which should be global for the evalued object
liCFibElementTypsa list with the type chars (
See also:
getType() ) of the Fib-elements to return
Returns:
if the evalueation was successfull true, else false

Implements fib::cFibElement.

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

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

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

Implements fib::cFibElement.

virtual list< cFibVariable* > fib::cExtObject::getDefinedVariablesInternal ( edDirection  direction = ED_HIGHER,
const cFibElement pCallingFibElement = NULL 
)
protectedvirtual

This method returns all variables defined in the given direction from this Fib-element. This is for intern use to get the correct data from getDefinedVariables() without pCallingFibElement..

See also:
cFibVariable
getUsedVariables()
isDefinedVariable()
Parameters:
directionthe direction from this Fib-element, in which the variable should be used; standardvalue is ED_POSITION so yust this Fib-element will be checked
pCallingFibElementthe Fib-Element which called this method
Returns:
the set with all variables used in the given direction from this Fib-element

Reimplemented from fib::cFibBranch.

longFib fib::cExtObject::getIdentifier ( ) const
Returns:
The identifier of the external Fib-object this external element stands for.
See also:
lIdentifier
cVectorExtObject* fib::cExtObject::getInputVector ( )
See also:
vecInputValues
getNumberOfInputValues()
setNumberOfInputValues()
Returns:
the vector with the input values of this external object element
See also:
vecInputValues
const cVectorExtObject* fib::cExtObject::getInputVector ( ) const
See also:
vecInputValues
getNumberOfInputValues()
setNumberOfInputValues()
Returns:
the vector with the input values of this external object element
See also:
vecInputValues
unsignedIntFib fib::cExtObject::getNumberOfInputValues ( ) const
See also:
vecInputValues
setNumberOfInputValues()
getInputVector()
Returns:
the number of input values of this external element element
See also:
vecInputValues
unsignedIntFib fib::cExtObject::getNumberOfOutputVariables ( const unsignedIntFib  uiNumberOfSubobject) const

This method returns the number of output variables of the uiNumberOfSubobject extern subobject in this external object element, or 0 if the subobject dosn't exists.

See also:
vecSubobjects
setNumberOfOutputVariables()
getOutputVariables()
getOutputVariable()
Parameters:
uiNumberOfSubobjectthe number of the subobject for which the number of output variables is to be returned
Returns:
the count of output variables of the uiNumberOfSubobject extern subobject in this external object element, or 0 if the subobject dosn't exists
unsignedIntFib fib::cExtObject::getNumberOfSubobjects ( ) const
See also:
vecSubobjects
setNumberOfSubobject()
getSubobject()
setSubobject()
addSubobject()
deleteSubobject()
Returns:
the count of subobjects in this external object element
cFibVariable* fib::cExtObject::getOutputVariable ( const unsignedIntFib  uiNumberOfSubobject,
const unsignedIntFib  uiNumberOfOutputVariable 
)

This method returns a pointer to the uiNumberOfInputVariable'th output variable of the uiNumberOfSubobject'th subobject of this external object element.

See also:
vecSubobjects
getOutputVariables()
getNumberOfOutputVariables()
setNumberOfOutputVariables()
Parameters:
uiNumberOfSubobjectthe number of the subobject for which the output variable should be returned
uiNumberOfOutputVariablethe number of the output variable of the uiNumberOfSubobject'th subobject to return
Returns:
a pointer to the uiNumberOfInputVariable'th output variable of the uiNumberOfSubobject'th subobject of this external object element, or NULL if non exists
vector< cFibVariable* > fib::cExtObject::getOutputVariables ( const unsignedIntFib  uiNumberOfSubobject)

This method returns a vector with the pointers to the output variables of the uiNumberOfSubobject'th subobject.

See also:
vecSubobjects
getOutputVariable()
getNumberOfOutputVariables()
setNumberOfOutputVariables()
Parameters:
uiNumberOfSubobjectthe number of the subobject for which the output variables should be returned
Returns:
a vector with the pointers to the output variables of the uiNumberOfSubobject'th subobject, or an empty list if non exists
cFibElement* fib::cExtObject::getSubobject ( const unsignedIntFib  uiNumberSubobject)
See also:
vecSubobjects
setSubobject()
getNumberOfSubobjects()
setNumberOfSubobject()
addSubobject()
deleteSubobject()
Parameters:
uiNumberSubobjectthe number of the subobject to return,
See also:
vecSubobjects
Returns:
a pointer to the uiNumberSubobject'th subobject of this external object element or NULL if non such exists
virtual unsignedLongFib fib::cExtObject::getTimeNeed ( unsignedLongFib  lMaxTime = 0) const
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.

See also:
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 the object

Implements fib::cFibElement.

virtual char fib::cExtObject::getType ( ) const
virtual
See also:
getTypeName
Returns:
a character for the typ of the Fib-element Types are:
  • u: element of unknown typ
  • p: point
  • l: list-element
    • y: property
    • c: comment
    • a: area
    • f: function
    • i: if-condition
    • o: extern object element
    • s: extern subobject element
    • v: set-element
    • m: matrix element
    • r: root-element

Implements fib::cFibElement.

virtual set<cFibVariable*> fib::cExtObject::getUsedVariables ( edDirection  direction = ED_POSITION)
virtual

This method returns all variables used in the given direction from this fib-element.

See also:
cFibVariable
isUsedVariable()
isDefinedVariable()
Parameters:
directionthe direction from this fib-element, in which the variable should be used; standardvalue is ED_POSITION so yust this fib-element will be checked
Returns:
the set with all variables used in the given direction from this fib-element

Reimplemented from fib::cFibBranch.

virtual bool fib::cExtObject::insertElement ( cFibElement fibelement,
const char  cType = 'u',
const unsignedIntFib  elementPoint = 0,
bool  bAbsolute = false,
bool  bCheckVariables = true 
)
virtual

This method inserts the given Fib-element fibelement on the specified position. The replaced Fib-element will be the subobject of the inserted Fib-element fibelement.

See also:
getNumberOfElement()
getNumberOfElements()
getType()
Parameters:
cTypethe type of the Fib-element insted of which the given Fib-element fibelement should be inserted
elementPointthe 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
fibelementthe Fib-element to insert
bAbsoluteif the lNumber is an absolute value for the wool Fib-object
bCheckVariablesif 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
Returns:
true if the Fib-element fibelement was inserted, else false

Reimplemented from fib::cFibBranch.

virtual bool fib::cExtObject::insertObjectInElement ( cFibElement fibObject,
const char  cType = 'u',
const unsignedIntFib  elementPoint = 0,
bool  first = true,
bool  bAbsolute = false 
)
virtual

This method inserts the given Fib-object pFibObject on the specified position. In limb elements on the specified position a list element will be inserted, with the old Fib-object and the given Fib-object pFibObject as its subobjects.

See also:
getNumberOfElement()
getNumberOfElements()
overwriteObjectWithObject()
getType()
Parameters:
cTypethe type of the Fib-element, on which position the given Fib-object fibObject should be inserted
elementPointthe 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
fibObjectthe Fib-object to insert
firstif true, the inserted object will be the first subobject of the new list element
bAbsoluteif the lNumber is an absolute value for the wool Fib-object
Returns:
true if the Fib-object fibObject was inserted, else false

Reimplemented from fib::cFibBranch.

virtual bool fib::cExtObject::isDefinedVariableInternal ( const cFibVariable pVariable,
edDirection  direction = ED_POSITION,
const cFibElement pCallingFibElement = NULL 
) const
protectedvirtual

This method checks if the given variable is defined in the given direction from this Fib-element. This is for intern use to get the correct data from isDefinedVariable() without pCallingFibElement.

See also:
cFibVariable
isUsedVariable()
Parameters:
pVariablethe variable to check if it is defined
directionthe direction from this Fib-element, in which the variable should be defined; standardvalue is ED_POSITION so yust this Fib-element will be checked
pCallingFibElementthe Fib-Element which called this method
Returns:
true if the variable is used, else false

Reimplemented from fib::cFibBranch.

virtual bool fib::cExtObject::isMovable ( ) const
virtual
Returns:
true if this Fib-element is movebel else false

Reimplemented from fib::cFibElement.

virtual bool fib::cExtObject::isUsedVariable ( const cFibVariable variable,
edDirection  direction = ED_POSITION 
) const
virtual

This method checks if the given variable is used in the given direction from this fib-element.

See also:
cFibVariable
isDefinedVariable()
Parameters:
variablethe variable to check if it is used
directionthe direction from this fib-element, in which the variable should be used; standardvalue is ED_POSITION so yust this fib-element will be checked
Returns:
true if the variable is used, else false

Reimplemented from fib::cFibBranch.

virtual bool fib::cExtObject::isValidFibElement ( ) const
virtual

This method checks, if this Fib-element is an valid Fib-element.

Returns:
true if this Fib-element is an valid Fib-element, else false

Reimplemented from fib::cFibBranch.

virtual intFib fib::cExtObject::moveLimbElement ( const char  cType = 'u',
const unsignedIntFib  elementPoint = 0,
const intFib  iHowfar = 1,
bool  bAbsolute = false 
)
virtual

This method moves a Fib-limb -element (cFibLimb) on the specified position over iHowfar Fib-elements. Moving is stoped if an invalid Fib-object would result (e.g. no Fib -element can be moved over an Fib-elements that defines a variable the moved Fib-element uses). Moving an Fib-element into an list element will result in an list element with the moved element in everyone of it's subobjects.

See also:
isDeletableelement()
removeElement()
getType()
Parameters:
cTypethe type of the Fib-element to move
elementPointthe number of the Fib-element, in the order of Fib-elements of the given type cType, to move
iHowfarthe number of Fib-elements over which the to move Fib-element should be moved; if this value is positiv the Fib -element will be moved over Fib-elements it contains else over Fib-elements it is contained in
bAbsoluteif the elementPoint is an absolute value for the wool Fib-object
Returns:
the number of Fib-elements over which the to move Fib -element was moved; if this value is positiv the Fib-element was moved over Fib-elements it contains else over Fib-elements it is contained in

Reimplemented from fib::cFibBranch.

virtual bool fib::cExtObject::overwriteObjectWithObject ( cFibElement fibObject,
const char  cType = 'u',
const unsignedIntFib  elementPoint = 0,
bool  bDeleteOld = true,
bool  bAbsolute = false 
)
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.

See also:
getNumberOfElement()
getNumberOfElements()
insertObjectInElement()
getType()
Parameters:
cTypethe type of the Fib-element, on which position the given Fib-object fibObject should be inserted
elementPointthe 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
fibObjectthe Fib-object to insert
bDeleteOldif true, delete the old Fib-object from the memory
bAbsoluteif the elementPoint is an absolute value for the wool Fib-object
Returns:
true if the old Fib-object was overwritten and the given Fib-object fibObject was inserted, else false

Reimplemented from fib::cFibBranch.

virtual bool fib::cExtObject::replaceVariable ( cFibVariable pVariableOld,
cFibVariable pVariableNew 
)
virtual

This method replace the variable pVariableOld with the variable pVariableNew in the object.

See also:
cFibVariable
isUsedVariable()
isDefinedVariable()
Parameters:
pVariableOldthe variable to replace
pVariableNewthe variable with which the variable variableOld is to be replace
Returns:
true if the variable pVariableOld is replaced with pVariableNew, else false

Reimplemented from fib::cFibBranch.

void fib::cExtObject::setIdentifier ( const longFib  lInIdentifier)

This method sets identifier of the external Fib-object this external element stands for.

See also:
lIdentifier
Parameters:
lInIdentifierThe to set identifier of the external Fib-object this external element stands for.
void fib::cExtObject::setNumberOfInputValues ( const unsignedIntFib  uiNumberOfInputValues)

This method sets the number of input values, this external object element has, to the given number.

See also:
vecInputValues
getNumberOfInputValues()
getInputVector()
Parameters:
uiNumberOfInputValuesthe number of input values this external object element should have
unsignedIntFib fib::cExtObject::setNumberOfOutputVariables ( const unsignedIntFib  uiNumberOfSubobject,
const unsignedIntFib  uiNumberOfVariables 
)

This method sets the number of output variables of the uiNumberOfSubobject'th extern subobject in this external object element to the given value uiNumberOfVariables.

See also:
vecSubobjects
getNumberOfOutputVariables()
getOutputVariables()
getOutputVariable()
Parameters:
uiNumberOfSubobjectthe number of the subobject for which the number of output variables is to be set
uiNumberOfVariablesthe number of output variables the uiNumberOfSubobject'th subobject of this external object element should have
Returns:
the new number of output variables the uiNumberOfSubobject'th subobject of this external object element have
void fib::cExtObject::setNumberOfSubobjects ( const unsignedIntFib  uiNumberOfSubobjects,
bool  bDeleteOld = true 
)

This method sets the number of subobjects, this external object element have, to the given number. It will create or delete subobjects as necessary, wher created subobjects are NULL with 0 output variables. The delete process will beginn on the end of the subobject list and stop if enough subobject are deleted.

See also:
vecSubobjects
getNumberOfSubobjects()
getSubobject()
setSubobject()
addSubobject()
deleteSubobject()
Parameters:
uiNumberOfSubobjectsthe number of subobjects this external object element should have
bDeleteOldif true, delete the old subobject from the memory
bool fib::cExtObject::setSubobject ( const unsignedIntFib  uiNumberSubobject,
cFibElement pFibObject,
bool  bDeleteOld = true 
)

This method sets the iNumberSubobject'th subobject of this external object element to the given subobject. It will create new subobjects if ther are less than uiNumberSubobject subobjects (

See also:
setNumberOfSubobject() ). The output variables for the iNumberSubobject'th subobject won't change.
vecSubobjects
getSubobject()
getNumberOfSubobjects()
setNumberOfSubobject()
addSubobject()
deleteSubobject()
Parameters:
uiNumberSubobjectthe number of the subobject to set (counting from 1)
pFibObjectthe pointer to the uiNumberVariable'th subobject this external object should have
bDeleteOldif true, delete the old subobject from the memory
Returns:
true if the subobject was set to the given subobject, else false
virtual bool fib::cExtObject::storeBit ( ostream &  stream,
char &  cRestBits,
unsigned char &  uiRestBitPosition 
) const
protectedvirtual

This method stores this Fib-object in the compressed Fib-format into the given stream. It is needed because 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.

See also:
store
Parameters:
streamthe stream where this Fib-object should be stored to
cRestBitsthe not yet writen bits which should be stored
uiRestBitPositionthe number of bits in the cRestBits which should be writen respectively containing valid information
Returns:
true if this Fib-object is stored, else false

Implements fib::cFibElement.

virtual bool fib::cExtObject::storeXml ( ostream &  stream) const
virtual

This method stores this Fib-object in the XML -format into the given stream.

Parameters:
streamthe stream where this Fib-object should be stored to
Returns:
true if this Fib-object is stored, else false

Implements fib::cFibElement.

void fib::cExtObject::syncSubobjects ( )
protected

This method syncronises the subobjects of this cExtObject-class with the subobjects list

See also:
fibSubobjects of the cFibBranch class.

Friends And Related Function Documentation

friend class cFibBranch
friend

Reimplemented from fib::cFibElement.

Definition at line 67 of file cExtObject.h.

friend class cFibElement
friend

Reimplemented from fib::cFibBranch.

Definition at line 66 of file cExtObject.h.

friend class cRoot
friend

Reimplemented from fib::cFibElement.

Definition at line 68 of file cExtObject.h.


Member Data Documentation

longFib fib::cExtObject::lIdentifier
private

The identifier of the external Fib-object this external element stands for.

Definition at line 76 of file cExtObject.h.

cVectorExtObject fib::cExtObject::vecInputValues
private

The vector with the input values of the external object element.

Definition at line 81 of file cExtObject.h.

vector< pair< cFibElement * , vector< cFibVariable * > > > fib::cExtObject::vecSubobjects
private

The list with the subobjects the external Fib-object can use. The list element pair elements are: first: a pointer to the subobject to use second: a list with the pointers to the output variables this extern object element defines for the subobject

Definition at line 101 of file cExtObject.h.


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