MeVisLab Toolbox Reference
ml::StringLineMultiField Class Reference

#include <mlStringLineMultiField.h>

Inheritance diagram for ml::StringLineMultiField:
ml::MultiField< std::string > ml::Field

Public Member Functions

 StringLineMultiField (const std::string &name="")
 Constructor. See constructor of MultiField for documentation.
void setStringValue (const std::string &value) override
void setStringValue (const std::string &value, const std::string &sep)
void removeSubString (const std::string &str)
 Removes the character sequence str from each string element of the internal vector.
void removeElements (const std::string &str=std::string())
std::string getStringValue () const override
 Same as getStringValue(StringLineMultiField::DefaultLineSeparator).
std::string getStringValue (const std::string &sep) const
 ML_CLASS_HEADER (StringLineMultiField)
Public Member Functions inherited from ml::MultiField< std::string >
 MultiField (const std::string &name="")
void setMultiField (const std::vector< std::string > &value)
 Set values of the field to value which is a std::vector.
void getMultiField (std::string values[], size_t numValues)
std::vector< std::string > & getNonConstMultiField ()
 Returns the vector of the field as modifiable reference.
size_t getSize () const
 Returns number of entries in vector.
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.
virtual MLint isValidValue ()
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 ()

Static Public Attributes

static const std::string DefaultLineSeparator

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

The field class StringLineMultiField which manages a vector of std::string lines typically separated by "\r\n" on windows systems and by "\n" on non windows systems. See MultiField for documentation of inherited functionality.

Definition at line 32 of file mlStringLineMultiField.h.

Constructor & Destructor Documentation

◆ StringLineMultiField()

ml::StringLineMultiField::StringLineMultiField ( const std::string & name = "")

Constructor. See constructor of MultiField for documentation.

Referenced by ML_CLASS_HEADER().

Member Function Documentation

◆ getStringValue() [1/2]

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

Same as getStringValue(StringLineMultiField::DefaultLineSeparator).

Reimplemented from ml::MultiField< std::string >.

◆ getStringValue() [2/2]

std::string ml::StringLineMultiField::getStringValue ( const std::string & sep) const

Returns a string containing the concatenation of all values from the internal vector separated by the StringLineMultiField::DefaultLineSeparator. After the last element sep is not appended. Note that using other values than StringLineMultiField::DefaultLineSeparator for sep will cause asymmetric conversion from/to setString(value) and getString() methods. So take care and make use of removeChar('
') and removeChar('\r') if necessary.

◆ ML_CLASS_HEADER()

ml::StringLineMultiField::ML_CLASS_HEADER ( StringLineMultiField )

Macro to implement the interface for the Runtime Type System and for the initialization of this class. See mlRuntimeSubClass.h for more information.

References StringLineMultiField().

◆ removeElements()

void ml::StringLineMultiField::removeElements ( const std::string & str = std::string())

Removes all entries equal to str; default is an empty string to remove all empty entries.

◆ removeSubString()

void ml::StringLineMultiField::removeSubString ( const std::string & str)

Removes the character sequence str from each string element of the internal vector.

◆ setStringValue() [1/2]

void ml::StringLineMultiField::setStringValue ( const std::string & value)
overridevirtual

Same as setStringValue(const std::string &value, char sep) using the "\n" as value for sep; occurrences of "\r\n" (Windows convention) or just '\r' (Mac convention) are converted to '
' first.

Reimplemented from ml::MultiField< std::string >.

◆ setStringValue() [2/2]

void ml::StringLineMultiField::setStringValue ( const std::string & value,
const std::string & sep )

Subdivides value at all positions of sep and stores all values in the internal vector. Note that '
' characters in value if sep differs from DefaultLineSeparator will not be not used as separator. This will cause asymmetric behaviour from/to the default setString(value) and getString() methods when those are used for field persistence. So take care when using non line feed characters and make use of removeSubString("\n") and/or removeSubString("\r") if necessary.

Parameters
valueThe string to be subdivided.
sepThe character sequence used to separate string segments.

Member Data Documentation

◆ DefaultLineSeparator

const std::string ml::StringLineMultiField::DefaultLineSeparator
static

The default line separator used for line endings when converting the internal string vector to a string with the default getString() or operator>>. "\r\n" on windows and "\n" on non windows systems.

Definition at line 39 of file mlStringLineMultiField.h.


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