Loading...
Searching...
No Matches
juce::Value Class Referencefinal

`#include <juce_Value.h>`

## Classes

class | Listener
class | ValueSource

## Public Member Functions

| Value ()
| Value (const Value &other)
| Value (const var &initialValue)
| Value (Value &&) noexcept
| ~Value ()
var | getValue () const
| operator var () const
String | toString () const
void | setValue (const var &newValue)
Value & | operator= (const var &newValue)
Value & | operator= (Value &&) noexcept
void | referTo (const Value &valueToReferTo)
bool | refersToSameSourceAs (const Value &other) const
bool | operator== (const Value &other) const
bool | operator!= (const Value &other) const
void | addListener (Listener *listener)
void | removeListener (Listener *listener)
| Value (ValueSource *valueSource)
ValueSource & | getValueSource () noexcept

## Detailed Description

Represents a shared variant value.

A Value object contains a reference to a var object, and can get and set its value. Listeners can be attached to be told when the value is changed.

The Value class is a wrapper around a shared, reference-counted underlying data object - this means that multiple Value objects can all refer to the same piece of data, allowing all of them to be notified when any of them changes it.

When you create a Value with its default constructor, it acts as a wrapper around a simple var object, but by creating a Value that refers to a custom subclass of ValueSource, you can map the Value onto any kind of underlying data.

Important note! The Value class is not thread-safe! If you're accessing one from multiple threads, then you'll need to use your own synchronisation around any code that accesses it.

Definition at line 50 of file juce_Value.h.

## Constructor & Destructor Documentation

## Value() [1/5]

juce::Value::Value | ( |  | ) |

Creates an empty Value, containing a void var.

Definition at line 101 of file juce_Value.cpp.

Referenced by operator!=(), operator=(), operator=(), operator==(), refersToSameSourceAs(), referTo(), Value(), Value(), and juce::Value::Listener::valueChanged().

## Value() [2/5]

juce::Value::Value | ( | const Value & | other | ) |

Creates a Value that refers to the same value as another one.

Note that this doesn't make a copy of the other value - both this and the other Value will share the same underlying value, so that when either one alters it, both will see it change.

Definition at line 114 of file juce_Value.cpp.

## Value() [3/5]

juce::Value::Value | ( | const var & | initialValue | ) |

explicit

Creates a Value that is set to the specified value.

Definition at line 110 of file juce_Value.cpp.

## Value() [4/5]

juce::Value::Value | ( | Value && | other | ) |

noexcept

Move constructor

Definition at line 118 of file juce_Value.cpp.

## ~Value()

juce::Value::~Value | ( |  | ) |

Destructor.

Definition at line 139 of file juce_Value.cpp.

## Value() [5/5]

juce::Value::Value | ( | ValueSource * | valueSource | ) |

explicit

Creates a Value object that uses this valueSource object as its underlying data.

Definition at line 105 of file juce_Value.cpp.

## Member Function Documentation

## addListener()

void juce::Value::addListener | ( | Value::Listener * | listener | ) |

Adds a listener to receive callbacks when the value changes.

The listener is added to this specific Value object, and not to the shared object that it refers to. When this object is deleted, all the listeners will be lost, even if other references to the same Value still exist. So when you're adding a listener, make sure that you add it to a Value instance that will last for as long as you need the listener. In general, you'd never want to add a listener to a local stack-based Value, but more likely to one that's a member variable.

See also
  removeListener

Definition at line 208 of file juce_Value.cpp.

## getValue()

var juce::Value::getValue | ( |  | ) | const

Returns the current value.

Definition at line 151 of file juce_Value.cpp.

## getValueSource()

ValueSource & juce::Value::getValueSource | ( |  | ) |

inline noexcept

Returns the ValueSource that this value is referring to.

Definition at line 218 of file juce_Value.h.

## operator var()

juce::Value::operator var | ( |  | ) | const

Returns the current value.

Definition at line 156 of file juce_Value.cpp.

## operator!=()

bool juce::Value::operator!= | ( | const Value & | other | ) | const

Compares two values. This is a compare-by-value comparison, so is effectively the same as saying (this->getValue() != other.getValue()).

Definition at line 202 of file juce_Value.cpp.

## operator=() [1/2]

Value & juce::Value::operator= | ( | const var & | newValue | ) |

Sets the current value.

This is the same as calling setValue().

If there are any listeners registered, they will be notified of the change asynchronously.

Definition at line 171 of file juce_Value.cpp.

## operator=() [2/2]

Value & juce::Value::operator= | ( | Value && | other | ) |

noexcept

Move assignment operator

Definition at line 128 of file juce_Value.cpp.

## operator==()

bool juce::Value::operator== | ( | const Value & | other | ) | const

Compares two values. This is a compare-by-value comparison, so is effectively the same as saying (this->getValue() == other.getValue()).

Definition at line 197 of file juce_Value.cpp.

## refersToSameSourceAs()

bool juce::Value::refersToSameSourceAs | ( | const Value & | other | ) | const

Returns true if this object and the other one use the same underlying ValueSource object.

Definition at line 192 of file juce_Value.cpp.

## referTo()

void juce::Value::referTo | ( | const Value & | valueToReferTo | ) |

Makes this object refer to the same underlying ValueSource as another one.

Once this object has been connected to another one, changing either one will update the other.

Existing listeners will still be registered after you call this method, and they'll continue to receive messages when the new value changes.

Definition at line 177 of file juce_Value.cpp.

## removeListener()

void juce::Value::removeListener | ( | Value::Listener * | listener | ) |

Removes a listener that was previously added with addListener().

Definition at line 219 of file juce_Value.cpp.

## setValue()

void juce::Value::setValue | ( | const var & | newValue | ) |

Sets the current value.

You can also use operator= to set the value.

If there are any listeners registered, they will be notified of the change asynchronously.

Definition at line 161 of file juce_Value.cpp.

Referenced by operator=().

## toString()

String juce::Value::toString | ( |  | ) | const

Returns the value as a string. This is a shortcut for "myValue.getValue().toString()".

Definition at line 166 of file juce_Value.cpp.

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

- juce_Value.h
- juce_Value.cpp