The Vish Visualization Shell 0.3
Vish
Vish::Input< T > Class Template Reference

An input slot for Vish Objects, bound to a specific type. More...

#include <ocean/plankton/Vish.hpp>

Inheritance diagram for Vish::Input< T >:
Wizt::TypedSlot< T > MemCore::StrongPtr< Object, ObjectBase > MemCore::WeakPtr< Object, ObjectBase > MemCore::DynPtr< Object, ObjectBase >

Public Member Functions

 Input ()
 Default constructor to create empty slot references that are filled in at a later time.
 Input (const Input &I)
 Copy constructor.
 Input (VObject *that, const string &s, const T &initialValue, int EL=0)
 Constructing an input.
Inputoperator= (const Input &TS)
 Assignment constructor.
 TypedSlot (VObject *that, const string &s, const T &initialValue, const RefPtr< VCreationPreferences > &VP, int prior=0)
 Declaration of constructor with creation preferences.
 TypedSlot (VObject *that, const string &s, const VSlot::Empty &, int prior=0)
 Construct a typed slot with Creation Preferences, but no initialization of the value.
 TypedSlot (VObject *that, const VSlot::Empty &, const string &s, int prior=0)
 Creates a typed slot with no parameter attached yet.
Public Member Functions inherited from Wizt::TypedSlot< T >
void activate () const
 Activate this slot.
template<class VObjectClass, void(VObjectClass::*)(const T &, const ValuePoolPtr &Context) callback, class VObjectClassPtr>
RefPtr< ValueNotifieraddNotifier (VObjectClass *That)
 A version of a mutable addNotifier() with a callback function that may modify the owning object and allows to specify the pointer type.
template<class VObjectClass, void(VObjectClass::*)(const T &, const ValuePoolPtr &Context) callback>
RefPtr< ValueNotifieraddNotifier (VObjectClass *That)
 A mutable version of the addNotifier() function with a callback function that may modify the owning object.
template<class VObjectClass, void(VObjectClass::*)(const T &, const ValuePoolPtr &Context) const callback, class VObjectClassPtr>
RefPtr< ValueNotifieraddNotifier (VObjectClass *That)
 Similar to the former function addNotifier, but allows to explicitly specify the type of the pointer to the owning object.
template<class VObjectClass, void(VObjectClass::*)(const T &, const ValuePoolPtr &Context) const callback>
RefPtr< ValueNotifieraddNotifier (VObjectClass *That)
 Install a notifier callback function that is a member function of the provided class.
template<class VObjectClass>
RefPtr< ValueNotifieraddNotifier (VObjectClass *That, void(VObjectClass::*callback)(const T &, const ValuePoolPtr &Context) const)
 A version of the addNotifier function where the callback function is specified at runtime as function argument, instead of compile-time as template argument.
template<class VObjectClass, class VObjectClassPtr>
RefPtr< ValueNotifieraddNotifier (VObjectClass *That, void(VObjectClass::*callback)(const T &, const ValuePoolPtr &Context) const)
 Another version of the addNotifier function where the callback function is specified at runtime as function argument, instead of compile-time as template argument.
template<class VObjectClass>
RefPtr< ValueNotifieraddNotifier (VObjectClass *That, void(VObjectClass::*callback)(const T &, const ValuePoolPtr &Context))
 A mutable addNotifier() function that allows to specify the callback function at runtime instead of compile-time.
template<class VObjectClass, class VObjectClassPtr>
RefPtr< ValueNotifieraddNotifier (VObjectClass *That, void(VObjectClass::*callback)(const T &, const ValuePoolPtr &Context))
 A mutable addNotifier() function that allows to specify the callback function at runtime instead of compile-time and explicit pointer storage type.
const Ageableage (const RefPtr< ValuePool > &Context) const
 Return the age of this Slot relative to the given Context.
void deactivate () const
 Deactivate this slot.
RefPtr< VValueBasegetProperty (const string &s) const
 Get a certain property of the parameter associated with this slot.
template<class Type>
bool getProperty (const string &s, Type &theValue) const
 Retrieve the value of a certain property of the parameter associated with this slot, if it is compatible to the specified type.
WeakVObjectPtr getSlotOwner () const
 Return the associated slot owning object, which is the one where this slot resides.
RefPtr< VManagedObjectgetSource () const
 Return the associated source object, which is related to the referenced parameter.
RefPtr< VValueBasegetValue (const RefPtr< ValuePool > &VP) const
 Retrieve the untyped value of this slot.
const T & getValue (const RefPtr< ValuePool > &VP, const T &DefaultValue) const
 Get the value of a typed slot, using a default value if anything went wrong:
const T & getValue (const T &DefaultValue, const RefPtr< ValuePool > &VP) const
 An alternative version of the getValue() function with reversed order of arguments such that you do not need to remember the order of function arguments.
RefPtr< VTypedValueBase< T > > getValueBT (const RefPtr< ValuePool > &VP) const
 A version of the getValue() function that yields a fitting VTypedValueBase<T> directly.
bool isActive () const
 Check whether this slot is active.
bool isInactive () const
 Check whether this slot is inactive.
bool isLocal () const
 Check whether this slot refers to a local setting.
RefPtr< VValueBaseoperator() (const RefPtr< ValuePool > &VP) const
 A shortcut version of member function getValue():
const T & operator() (const RefPtr< ValuePool > &VP, const T &DefaultValue) const
 An alternative version of the operator function with reversed order of arguments, for the coder's convenience.
const T & operator() (const T &DefaultValue, const RefPtr< ValuePool > &VP) const
 An operator version of the getValue() member function, for convenience:
const stringoperator/= (const string &s) const
SlotContext operator<< (const RefPtr< ValuePool > &VP) const
 Create a SlotContext from a given ValuePool, which is a proxy for the pair of a Slot and a Context, to be used for assigning or reading values.
TypedSlot & operator= (const TypedSlot &TS)
 Assignment constructor - does NOT change the default value!
const T & operator[] (const RefPtr< ValuePool > &VP) const
 Return the given value of this slot, possibly the default value.
void setActive (bool IsActive=true) const
 Set activity flag.
void setHelptext (const string &helptext) const
 Set a help text for user information about this slot.
template<class Type>
bool setProperty (const string &theName, const Type &theValue) const
 Set a property of the parameter that is associated with this slot.
void setRelevance (int rel) const
 Set the relevance of the associated parameter This should only be done if the parameter is exclusively used here, not once it has been shared.
 TypedSlot ()
 Default constructor to create empty slot references that are filled in at a later time.
 TypedSlot (const std::string &theSlotName, const T &theDefaultValue, int myInitialExpertLevel=1, RefPtr< VCreationPreferences > theVP=nullptr)
 Object-independent initialization with future slot name and default value.
 TypedSlot (const TypedSlot &TS)
 Copy constructor.
template<int I>
 TypedSlot (const VSlot::Empty< I > &, VSlotContainer *that, const string &name, const RefPtr< VCreationPreferences > &VP, int prior)
 Construct a typed slot with Creation Preferences, but no initialization of the value.
template<int I>
 TypedSlot (const VSlot::Empty< I > &, VSlotContainer *that, const string &name, int prior=0)
 Special constructor that does not initialize the value of this input slot.
 TypedSlot (const WeakVObjectPtr &that, const string &name, const T &initialValue, int expertLevel=0, bool overwriteExistingSlot=true)
 Constructing a typed slot.
 TypedSlot (VSlotContainer *that, const string &name, const T &initialValue, const RefPtr< VCreationPreferences > &VP, int ExpertLevel=0, bool overwriteExistingSlot=true)
 Creation of a typed slot, constructor with creation preferences.
 TypedSlot (VSlotContainer *that, const string &name, const T &initialValue, int expertLevel=0)
 Constructing a typed slot.
 TypedSlot (VSlotContainer *that, const VSlot::Empty< 0 > &, const string &name, int prior=0)
 Creates a typed slot with no parameter attached yet.
 ~TypedSlot ()
 Destructor.
Public Member Functions inherited from MemCore::StrongPtr< Object, ObjectBase >
StrongPtrassignStrong (const DynPtr_t &other)
 assign a strong pointer from a weak pointer
StrongPtrassignStrong (const ReferenceBase< ObjectBase_t > *Obj)
 assign a strong pointer from a native pointer
StrongPtrassignStrong (const std::nullptr_t &)
 Assign nullptr to a strong pointer, which will remove the referenced object if its counter reaches zero, but the pointer will remain a valid weak pointer with sustained hash value (the referer will still be around).
template<typename... Arguments>
auto operator() (Arguments...parameters) const -> decltype((*this->getPtrValue())(parameters...))
 Function call operator forwarding.
refvalue_t & operator* () const
 The dereferencing *-operator.
pointer_t operator-> () const
 The pointer operator.
StrongPtroperator= (const DynPtr_t &other)
 Assignment operator, same as assignStrong().
StrongPtroperator= (const ReferenceBase< ObjectBase_t > *Obj)
 Assignment from object base class pointer.
StrongPtroperator= (const std::initializer_list< StrongPtr > &other)
 Syntactic sugar: Allows assignment with {} to create a nullptr.
StrongPtroperator= (const std::nullptr_t &)
 Assignment operator with nullptr, invalidate.
StrongPtroperator= (const StrongPtr &other)
 Assignment operator, same as assignStrong().
template<class IndexType>
auto operator[] (const IndexType &I) const -> decltype((*this->getPtrValue())[I])
 Index operator forwarding.
 StrongPtr ()
 Default constructor (makes a NULL pointer).
 StrongPtr (const ReferenceBase< ObjectBase_t > *Obj)
 Strong pointer from reference base of object, eg. via new operator.
 StrongPtr (const ReferenceBase< ObjectBase_t > *Obj, const NotNullPtr &)
 Strong pointer from reference base of object, eg. via new operator.
 StrongPtr (const std::nullptr_t &)
 Explicitely construct a nullptr pointer.
template<class ChildObject>
 StrongPtr (const StrongPtr< ChildObject, ObjectBase > &Other)
 Reference pointer with dynamic type identification.
 StrongPtr (const StrongPtr< Object, ObjectBase > &Other)
 Copy constructor.
template<class ChildObject>
 StrongPtr (const WeakPtr< ChildObject, ObjectBase_t > &Other)
 Reference pointer with dynamic type identification.
 ~StrongPtr ()
 Destructor, the last one cleans up and destructs the object itself.
pointer_t getPtrValue () const
 The pointer value, checked for null.
pointer_t operator-> () const
 The pointer operator.
refvalue_toperator* () const
 The dereferencing *-operator.
size_t operator~ () const
 Convenience operator to easily retrieve the object count ID of the referenced object, a unique number for each instance.
 WeakPtr ()
 Default constructor, makes a NULL pointer.
 WeakPtr (const std::nullptr_t &)
 Explicitely construct NULL pointer.
 WeakPtr (const ReferenceBase< ObjectBase > *Obj)
 Weak pointer from reference base of object.
 WeakPtr (const ReferenceBase< ObjectBase > *Obj, const NotNullPtr &)
 Weak pointer from reference base of object which must not be null.
template<class AnyObject>
 WeakPtr (const WeakPtr< AnyObject, ObjectBase > &Other)
 Weak pointer from pointer to another class.
 WeakPtr (const WeakPtr &Other)
 Copy constructor.
 ~WeakPtr ()
 Default destructor, removes weak references to the object, the last one cleans up the referrer proxy object.
WeakPtrassignWeak (const WeakPtr &other)
 Assign a weak pointer (explicit function call, same as assignment operator for weak pointers).
WeakPtroperator= (const WeakPtr &other)
 Assignment operator (same as assignWeak() ).
Public Member Functions inherited from MemCore::DynPtr< Object, ObjectBase >
const DynPtr & getDynPtr () const noexcept
 Convenience type cast to dynamic pointer class.
const type_info & getType () const noexcept
 Return type info of associated object, typeid(NullPtr) or typeid(void) if none.
bool isAssignable (const DynPtr< ObjectBase, ObjectBase > &Other) const noexcept
 Check whether a given pointer to a base class may be assigned to a pointer of the derived class.
 operator void * () const noexcept
 Check if the pointer is valid.
bool operator! () const noexcept
 Check if the pointer is invalid.
void speak (const char *s, const char *prefix="") const noexcept
 Print some debug messages to the console.

Additional Inherited Members

Public Types inherited from Wizt::TypedSlot< T >
typedef std::pair< const TypedSlot, const RefPtr< ValuePool > > SlotContext
 A typed Slot context.
typedef T value_type
 The type on which this slot operates.
Public Types inherited from MemCore::StrongPtr< Object, ObjectBase >
typedef WeakPtr< Object, ObjectBase >::ObjectBase_t ObjectBase_t
 Exporting the base class of the reference counted objects.
Public Types inherited from MemCore::WeakPtr< Object, ObjectBase >
typedef Object object_t
 Exporting the type of the derived class.
typedef ObjectBase ObjectBase_t
 Exporting the type of the base class.
typedef RefPtrTypeTrait< Object, ObjectBase >::ReferencePointerType pointer_t
 The result type of the pointer operator, may be changed with the RefPtrTypeTrait<> class.
typedef RefPtrTypeTrait< Object, ObjectBase >::ReferenceValueType refvalue_t
 The result of the dereferencing operator, may be changed with the RefPtrTypeTrait<> class.
Public Types inherited from MemCore::DynPtr< Object, ObjectBase >
typedef Object object_t
 Type of the associated object.
Static Public Member Functions inherited from Wizt::TypedSlot< T >
static TypedSlot type_cast (const RefPtr< VSlot > &VP)
 Cast an untyped Slot to a typed one, which, of course, will only succeed if the types are compatible.
Static Public Member Functions inherited from MemCore::DynPtr< Object, ObjectBase >
static const DynPtr & getNullPtr () noexcept
 Associated static NullPtr - avoids creation of a temporary object when a reference is needed.
Protected Member Functions inherited from MemCore::WeakPtr< Object, ObjectBase >
 WeakPtr (Object *that, const SelfInitialize &)
 Internal constructor used when initializing an object with its own self-reference.
Protected Member Functions inherited from MemCore::DynPtr< Object, ObjectBase >
template<class AnyObject>
 DynPtr (const DynPtr< AnyObject, ObjectBase > &Other) noexcept
 Implicit type conversion within the same class hierarchy Any pointer.
 DynPtr (const std::nullptr_t &) noexcept
 Assign from nullptr.
void Speak (const char *s, const char *prefix="") const
 Verbose information printing for this pointer.

Detailed Description

template<class T>
class Vish::Input< T >

An input slot for Vish Objects, bound to a specific type.

The typical usage is

class MyObject : public Vish::Object
{
Vish::Input<int> MyInteger;
MyObject()
: MyInteger(this, "myvalue", 42)
{}
};
An input slot for Vish Objects, bound to a specific type.
Definition Vish.hpp:28

Constructor & Destructor Documentation

◆ Input()

template<class T>
Vish::Input< T >::Input ( VObject * that,
const string & s,
const T & initialValue,
int EL = 0 )
inline

Constructing an input.

Parameters
thatThe VObject to which this slot is bound.
ELthe Expert level of this slot, which might be used for a GUI.
initialValueThe intial value of this slot's parameter.

Member Function Documentation

◆ TypedSlot() [1/2]

template<class T>
Vish::Input< T >::TypedSlot ( VObject * that,
const string & s,
const T & initialValue,
const RefPtr< VCreationPreferences > & VP,
int prior = 0 )

Declaration of constructor with creation preferences.

Note
This constructor is defined in VObject.hpp
Parameters
initialValueThe intial value of this slot's parameter.

◆ TypedSlot() [2/2]

template<class T>
Vish::Input< T >::TypedSlot ( VObject * that,
const string & s,
const VSlot::Empty & ,
int prior = 0 )

Construct a typed slot with Creation Preferences, but no initialization of the value.

Note
Requires template VValueParameter<T>::VValueParameter(string, const RefPtr<VCreationPreferences>&) to be specialized!! Special constructor that does not initialize the value of this input slot. Rarely to be used, only for specific cases where initialization of a slot's type is non-trivial.
Requires template VValueParameter<T>::VValueParameter() to be specialized!!