MeVisLab Toolbox Reference
ml::UniversalTypeField Class Reference

Field to encapsulate any of the registered ML types. More...

#include <mlFields.h>

Inheritance diagram for ml::UniversalTypeField:
ml::Field

Public Member Functions

 UniversalTypeField (const std::string &name="", MLDataType dt=-1)
 Implements the runtime type system interface for this class. More...
 
 ~UniversalTypeField () override
 Destructor, frees buffer for type data. More...
 
MLint isValidValue () override
 Returns true (=1) if field value is valid, otherwise false (=0). More...
 
void setStringValue (const std::string &stringValue) override
 Sets the value of the field to stringValue. More...
 
std::string getStringValue () const override
 Returns the value of the field as a string value. More...
 
virtual void setDataType (MLDataType dataType)
 Sets the data type to dataType. More...
 
virtual MLDataType getDataType () const
 Returns the current data type of this field. Default is invalid, i.e., -1. More...
 
virtual void setUniversalTypeValue (const MLTypeData *dataType)
 Sets the value of the field to dataType. The passed data is copied. More...
 
virtual MLTypeDatagetUniversalTypeValue () const
 Returns the current value of the field as a memory copy which can be changed by the caller. More...
 
virtual const MLTypeDatagetShortLivedUniversalTypeValue () const
 Returns the temporary internal buffer value of the field which is short-lived and which must NOT be modified and NOT be freed by the caller. More...
 
virtual MLldouble getValueCastToLDouble () const
 Returns the current value of the field cast to MLldouble. More...
 
void setValue (const MLTypeData *typeData)
 Same as setUniversalTypeValue(). More...
 
MLTypeDatagetValue () const
 Same as getUniversalTypeValue(). More...
 
- Public Member Functions inherited from ml::Field
 Field (const std::string &name=std::string())
 Constructor: Creates a field with name. More...
 
virtual ~Field ()
 Destructor: Destroy field and remove all connection to fields an sensors. More...
 
FieldContainergetFieldContainer () const
 Get the field container of the field (which may be NULL). More...
 
const std::string & getName () const
 Returns name of field. More...
 
void setName (const std::string &name)
 Sets the name of field. Should be called only once after or while construction. More...
 
std::string getFullName () const
 Returns "fieldContainerType(instanceName).fieldName" (if field container is available, otherwise only field name is returned). More...
 
bool isOutputOnly () const
 Returns if this field is marked as pure output field. More...
 
void setOutputOnly (bool outputOnly=true)
 Mark field as a pure output field that is never read by its module. More...
 
void copyCStringValue (char *valueBuffer, MLint bufferSize)
 Copies the value of the field (as character string) into the specified buffer valueBuffer. More...
 
MLint getCStringValueSize ()
 Returns the length of the character string of the string value of the field. More...
 
void attachFieldSensor (FieldSensor *sensor)
 Attaches a field sensor sensor of this class instance in both directions. More...
 
void detachFieldSensor (FieldSensor *sensor)
 Detaches the field sensor sensor of this class instance in both directions. More...
 
void detachFieldSensors ()
 Detaches all field sensors of this class instance in both directions. More...
 
void attachField (OutputConnectorField *targetField)
 This calls attachField(targetField, false). More...
 
void attachField (BaseField *targetField)
 
void attachField (SoNodeField *targetField)
 
void attachField (NotifyField *targetField)
 
void attachField (Field *targetField, bool propagateValueOnConnect)
 Connects this class instance with the target field targetField. More...
 
void detachField (Field *targetField)
 Disconnects connections between target field targetField and this instance. More...
 
void detachSourceFields ()
 Disconnects all source fields of this instance in both directions. More...
 
void detachDestinationFields ()
 Disconnects all target fields of this instance in both directions. More...
 
void detachAllFields ()
 Disconnects all source and target fields of this instance in both directions. More...
 
size_t getNumDestinationFields ()
 Returns the number of destination fields which could receive notifications or value sets. More...
 
FieldgetDestinationField (size_t index)
 Returns destination field at index. Returns NULL if index is out of range. More...
 
size_t getNumSourceFields ()
 Returns the number of source fields which could send notifications or value sets. More...
 
FieldgetSourceField (size_t index)
 Returns the source field at index. Returns NULL if index is out of range. More...
 
virtual void touch (FieldSensor::Strength strength=FieldSensor::CHANGED)
 Notifies all connected fields and field sensors. More...
 
void enableNotifications (bool flag)
 Enables or disables notification of attached fields and field sensors when the field value is set or notified (by notifyAttachments() or set*Value() -methods), depending on the parameter flag. More...
 
bool areNotificationsEnabled ()
 Returns whether the notification mechanism for this field (e.g., when field values are set) is enabled (see enableNotifications(bool) ). More...
 

Protected Member Functions

virtual void _updateIsValidAndTypeDataFromOrigString ()
 Parse _origString dependent on the current data type and update _isValid and _typeData. More...
 
virtual void _updateIsValidAndStrValueFromTypeData ()
 Parse _typeData dependent on the current data type and update _isValid and _strValue. More...
 
void _updateFieldFromOrigString ()
 Combine the above methods, return _origString on invalid data type, and touch the field. More...
 
- Protected Member Functions inherited from ml::Field
void attachSourceField (Field *field)
 Inserts a field as source field in this instance, i.e., from now on *this might receive values and/or notifications from that field. More...
 
void detachSourceField (Field *field)
 Removes a source field from this instance. If not found then this call does nothing. More...
 
void detachFieldInternal (Field *field)
 Only remove the given field from the destination list. More...
 
virtual void setValueFromField (const Field &field)
 Sets the value of this field from the given field. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from ml::Field
static void enableNotificationsGlobally (bool flag)
 Enables or disables globally the notification mechanism for all fields and field sensors when field values are set or notified (by notifyAttachments() or set*Value() methods), depending on the parameter flag. More...
 
static bool areNotificationsEnabledGlobally ()
 Returns whether the notification mechanism for all fields (e.g., when field values are set) is enabled (see enableNotificationsGlobally(bool) ) Usually it is false(=0) within all calls of Module::calc* methods to avoid that field changes within these methods recursively start the calculation process of the ML. More...
 
static MLintenableNotificationsCounterState ()
 Provides read/write access to the current counter state (see enableNotificationsGlobally(bool) ). More...
 
- Protected Attributes inherited from ml::Field
std::string _name
 The name of this field. More...
 
std::vector< FieldSensor * > _sensors
 List of field sensors. More...
 
std::vector< Field * > _destinationFields
 List of (target) fields which shall be set to the value of this field or which shall be notified only if this field is changed or notified. More...
 
std::vector< Field * > _sourceFields
 List of (source) fields, which will notify this field or which will copy their value to this field. More...
 
FieldContainer_fieldContainer
 The owning field container. More...
 
Flags _flags
 
- Static Protected Attributes inherited from ml::Field
static MLint _enableNotifications
 Flag which disables the notification process of field (sensors) globally. More...
 

Detailed Description

Field to encapsulate any of the registered ML types.

Definition at line 3015 of file mlFields.h.

Constructor & Destructor Documentation

◆ UniversalTypeField()

ml::UniversalTypeField::UniversalTypeField ( const std::string &  name = "",
MLDataType  dt = -1 
)

Implements the runtime type system interface for this class.

Constructor, creates a field with a name to manage a string value which is interpreted as current data type. Default is an invalid value.

◆ ~UniversalTypeField()

ml::UniversalTypeField::~UniversalTypeField ( )
override

Destructor, frees buffer for type data.

Member Function Documentation

◆ _updateFieldFromOrigString()

void ml::UniversalTypeField::_updateFieldFromOrigString ( )
protected

Combine the above methods, return _origString on invalid data type, and touch the field.

◆ _updateIsValidAndStrValueFromTypeData()

virtual void ml::UniversalTypeField::_updateIsValidAndStrValueFromTypeData ( )
protectedvirtual

Parse _typeData dependent on the current data type and update _isValid and _strValue.

◆ _updateIsValidAndTypeDataFromOrigString()

virtual void ml::UniversalTypeField::_updateIsValidAndTypeDataFromOrigString ( )
protectedvirtual

Parse _origString dependent on the current data type and update _isValid and _typeData.

◆ getDataType()

virtual MLDataType ml::UniversalTypeField::getDataType ( ) const
virtual

Returns the current data type of this field. Default is invalid, i.e., -1.

◆ getShortLivedUniversalTypeValue()

virtual const MLTypeData* ml::UniversalTypeField::getShortLivedUniversalTypeValue ( ) const
virtual

Returns the temporary internal buffer value of the field which is short-lived and which must NOT be modified and NOT be freed by the caller.

◆ getStringValue()

std::string ml::UniversalTypeField::getStringValue ( ) const
overridevirtual

Returns the value of the field as a string value.

setStringValue must be able to reinterpret this returned string correctly.

Implements ml::Field.

◆ getUniversalTypeValue()

virtual MLTypeData* ml::UniversalTypeField::getUniversalTypeValue ( ) const
virtual

Returns the current value of the field as a memory copy which can be changed by the caller.

The copy has to be freed by the application with MLFree() when not used any more. If field is invalid a pointer to a 0 byte sized memory block is returned which also must be freed.

◆ getValue()

MLTypeData* ml::UniversalTypeField::getValue ( ) const
inline

Same as getUniversalTypeValue().

Definition at line 3068 of file mlFields.h.

◆ getValueCastToLDouble()

virtual MLldouble ml::UniversalTypeField::getValueCastToLDouble ( ) const
virtual

Returns the current value of the field cast to MLldouble.

◆ isValidValue()

MLint ml::UniversalTypeField::isValidValue ( )
overridevirtual

Returns true (=1) if field value is valid, otherwise false (=0).

Reimplemented from ml::Field.

◆ setDataType()

virtual void ml::UniversalTypeField::setDataType ( MLDataType  dataType)
virtual

Sets the data type to dataType.

The current value is cast to dataType is possible, otherwise the value becomes invalid.

◆ setStringValue()

void ml::UniversalTypeField::setStringValue ( const std::string &  stringValue)
overridevirtual

Sets the value of the field to stringValue.

Implements ml::Field.

◆ setUniversalTypeValue()

virtual void ml::UniversalTypeField::setUniversalTypeValue ( const MLTypeData dataType)
virtual

Sets the value of the field to dataType. The passed data is copied.

◆ setValue()

void ml::UniversalTypeField::setValue ( const MLTypeData typeData)
inline

Same as setUniversalTypeValue().

Definition at line 3065 of file mlFields.h.


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