ML Reference
ml::UniversalTypeField Class Reference

#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.
 ~UniversalTypeField () override
 Destructor, frees buffer for type data.
MLint isValidValue () override
 Returns true (=1) if field value is valid, otherwise false (=0).
void setStringValue (const std::string &stringValue) override
 Sets the value of the field to stringValue.
std::string getStringValue () const override
virtual void setDataType (MLDataType dataType)
virtual MLDataType getDataType () const
 Returns the current data type of this field. Default is invalid, i.e., -1.
virtual void setUniversalTypeValue (const MLTypeData *dataType)
 Sets the value of the field to dataType. The passed data is copied.
virtual MLTypeDatagetUniversalTypeValue () const
virtual const MLTypeDatagetShortLivedUniversalTypeValue () const
virtual MLldouble getValueCastToLDouble () const
 Returns the current value of the field cast to MLldouble.
void setValue (const MLTypeData *typeData)
 Same as setUniversalTypeValue().
const MLTypeDatagetValue () const
 Same as getShortLivedUniversalTypeValue().
Public Member Functions inherited from ml::Field
 Field (const std::string &name=std::string())
 Constructor: Creates a field with name.
virtual ~Field ()
 Destructor: Destroys a field and removes all connection to fields and sensors.
FieldContainergetFieldContainer () const
 Returns the field container of the field (which may be NULL).
const std::string & getName () const
 Returns the name of field.
void setName (const std::string &name)
 Sets the name of field. Should be called only once after or while construction.
std::string getFullName () const
bool isOutputOnly () const
 Returns whether this field is marked as a pure output field.
void setOutputOnly (bool outputOnly=true)
 Marks this field as a pure output field that is only changed by its module.
void copyCStringValue (char *valueBuffer, MLint bufferSize)
MLint getCStringValueSize ()
 Returns the length of the character string of the string value of the field.
void attachFieldSensor (FieldSensor *sensor)
 Attaches a field sensor sensor of this class instance in both directions.
void detachFieldSensor (FieldSensor *sensor)
 Detaches the field sensor sensor of this class instance in both directions.
void detachFieldSensors ()
 Detaches all field sensors of this class instance in both directions.
void attachField (OutputConnectorField *targetField)
void attachField (BaseField *targetField)
void attachField (SoNodeField *targetField)
void attachField (NotifyField *targetField)
void attachField (Field *targetField, bool propagateValueOnConnect)
void detachField (Field *targetField)
 Disconnects connections between the target field targetField and this instance.
void detachSourceFields ()
 Disconnects all source fields of this instance in both directions.
void detachDestinationFields ()
 Disconnects all target fields of this instance in both directions.
void detachAllFields ()
 Disconnects all source and target fields of this instance in both directions.
size_t getNumDestinationFields ()
 Returns the number of destination fields that could receive notifications or value sets.
FieldgetDestinationField (size_t index)
 Returns the destination field at index. Returns NULL if index is out of range.
size_t getNumSourceFields ()
 Returns the number of source fields that could send notifications or value sets.
FieldgetSourceField (size_t index)
 Returns the source field at index. Returns NULL if index is out of range.
virtual void touch (FieldSensor::Strength strength=FieldSensor::CHANGED)
void enableNotifications (bool flag)
bool areNotificationsEnabled ()

Protected Member Functions

virtual void _updateIsValidAndTypeDataFromOrigString ()
virtual void _updateIsValidAndStrValueFromTypeData ()
void _updateFieldFromOrigString ()
 Combines the above methods, returns _origString on invalid data type, and touches the field.
Protected Member Functions inherited from ml::Field
void attachSourceField (Field *field)
void detachSourceField (Field *field)
 Removes a source field from this instance. If not found, then this call does nothing.
void detachFieldInternal (Field *field)
 Only removes the given field from the destination list.
virtual void setValueFromField (const Field &field)

Additional Inherited Members

static void enableNotificationsGlobally (bool flag)
static bool areNotificationsEnabledGlobally ()
static MLintenableNotificationsCounterState ()
Protected Attributes inherited from ml::Field
std::string _name
 The name of this field.
std::vector< FieldSensor * > _sensors
 List of field sensors.
std::vector< Field * > _destinationFields
std::vector< Field * > _sourceFields
FieldContainer_fieldContainer
 The owning field container.
Flags _flags
Static Protected Attributes inherited from ml::Field
static MLint _enableNotifications
 Flag that disables the notification process of field (-sensors) globally.

Detailed Description

Field to encapsulate any of the registered ML types.

Definition at line 1914 of file mlFields.h.

Constructor & Destructor Documentation

◆ UniversalTypeField()

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

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

Combines the above methods, returns _origString on invalid data type, and touches the field.

◆ _updateIsValidAndStrValueFromTypeData()

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

Parses _typeData depending on the current data type and updates _isValid and _strValue.

◆ _updateIsValidAndTypeDataFromOrigString()

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

Parses _origString depending on the current data type and updates _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 must NOT be modified or freed by the caller.

Referenced by getValue().

◆ 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 MUST be freed by the application with MLFree() if not used anymore. If field is invalid, a pointer to a 0 byte sized memory block is returned, which also MUST be freed.

◆ getValue()

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

Same as getShortLivedUniversalTypeValue().

Definition at line 1966 of file mlFields.h.

References getShortLivedUniversalTypeValue().

◆ 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.

Referenced by setValue().

◆ setValue()

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

Same as setUniversalTypeValue().

Definition at line 1963 of file mlFields.h.

References setUniversalTypeValue().


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