ML Reference
ml::OutputConnectorField Class Reference

#include <mlFields.h>

Inheritance diagram for ml::OutputConnectorField:
ml::Field

Public Member Functions

 OutputConnectorField ()
 Implements the runtime type system interface for this class.
 OutputConnectorField (const std::string &name, Module *module, MLint outputImageIndex)
 ~OutputConnectorField () override
 Destroys the field.
void setStringValue (const std::string &) override
void touch (FieldSensor::Strength strength=FieldSensor::CHANGED) override
std::string getStringValue () const override
OutputConnectorgetOutputConnectorValue () const
 Returns a reference to the OutputConnector.
MLint isValidValue () override
 Returns 1 if connector field contains a valid connector pointer.
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.
void enableNotifications (bool flag)
bool areNotificationsEnabled ()

Additional Inherited Members

static void enableNotificationsGlobally (bool flag)
static bool areNotificationsEnabledGlobally ()
static MLintenableNotificationsCounterState ()
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)
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 a pointer to an output connector which represents a module output.

Definition at line 633 of file mlFields.h.

Constructor & Destructor Documentation

◆ OutputConnectorField() [1/2]

ml::OutputConnectorField::OutputConnectorField ( )

Implements the runtime type system interface for this class.

Default constructor, do not use it.

◆ OutputConnectorField() [2/2]

ml::OutputConnectorField::OutputConnectorField ( const std::string & name,
Module * module,
MLint outputImageIndex )

Constructor; creates a field with a name to manage an OutputConnector on the Module module at index outputImageIndex.

◆ ~OutputConnectorField()

ml::OutputConnectorField::~OutputConnectorField ( )
override

Destroys the field.

Member Function Documentation

◆ getOutputConnectorValue()

OutputConnector & ml::OutputConnectorField::getOutputConnectorValue ( ) const

Returns a reference to the OutputConnector.

◆ getStringValue()

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

Reference to OutputConnector as C-string to return. OutputConnectors do not have a value, therefore a reference is returned. Returns the value of the field as a string value. setStringValue must be able to interpret this returned string correctly.

Implements ml::Field.

◆ isValidValue()

MLint ml::OutputConnectorField::isValidValue ( )
overridevirtual

Returns 1 if connector field contains a valid connector pointer.

Reimplemented from ml::Field.

◆ setStringValue()

void ml::OutputConnectorField::setStringValue ( const std::string & )
overridevirtual

Only calls touch() to propagate notifications. It implicitly clears the cache of the output connector field.

Implements ml::Field.

◆ touch()

void ml::OutputConnectorField::touch ( FieldSensor::Strength strength = FieldSensor::CHANGED)
overridevirtual

A notified output image must also clear its PagedImage if it is considered as changed. So it needs to be overloaded here. Default is that it is considered as FieldSensor::CHANGED.

Reimplemented from ml::Field.

References ml::FieldSensor::CHANGED.


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