The Vish Visualization Shell 0.3
Vish
Wizt::VOutput< Type > Class Template Reference

Output properties of an object. More...

#include <ocean/plankton/VSlotContainerIO.hpp>

Inheritance diagram for Wizt::VOutput< Type >:
MemCore::StrongPtr< Object, ObjectBase > MemCore::WeakPtr< Object, ObjectBase > MemCore::DynPtr< Object, ObjectBase > Wizt::VSlotContainer::out< Type, void >

Public Member Functions

Type & operator() ()
 Allow direct writable access to the stored type via function call operator ().
const Type & operator() () const
 Allow direct read-only access to the stored type via function call operator ().
 VOutput (const VParameter::SourceObject_t &Source, const string &initial_name, const Type &InitValue, const RefPtr< VCreationPreferences > &CP=nullptr)
 Constructor:
 VOutput (const VSlotContainer::Deferred &)
 Default constructor - allows to create VOutputs with deferred construction, eventually dynamically, instead of during construction.
 VOutput (VSlotContainer *Source, const string &initial_name, const Type &InitValue, const RefPtr< VCreationPreferences > &CP=nullptr)
 Constructor:
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 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 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 Type>
class Wizt::VOutput< Type >

Output properties of an object.

Given a type Alpha, the output object must declare a member

VOutput(const VParameter::SourceObject_t &Source, const string &initial_name, const Type &InitValue, const RefPtr< VCreationPreferences > &CP=nullptr)
Constructor:
Definition VSlotContainerIO.hpp:244

whereas the child object must declare a usual typed slots, such as

TypedSlot<Alpha> myAlphaInput;
An input slot for VObjects, bound to a specific type.
Definition TypedSlot.hpp:57

The associated global value can be accessed via the function call operator:

Alpha&a = myAlpha();
Examples
InteractivePoint.cpp.

Constructor & Destructor Documentation

◆ VOutput() [1/3]

template<class Type>
Wizt::VOutput< Type >::VOutput ( const VParameter::SourceObject_t & Source,
const string & initial_name,
const Type & InitValue,
const RefPtr< VCreationPreferences > & CP = nullptr )
inline

Constructor:

Parameters
SourceThe VObject providing this output parameter

◆ VOutput() [2/3]

template<class Type>
Wizt::VOutput< Type >::VOutput ( VSlotContainer * Source,
const string & initial_name,
const Type & InitValue,
const RefPtr< VCreationPreferences > & CP = nullptr )
inline

Constructor:

Parameters
SourceThe VObject providing this output parameter

References Wizt::VSlotContainer::registerOutput().

◆ VOutput() [3/3]

template<class Type>
Wizt::VOutput< Type >::VOutput ( const VSlotContainer::Deferred & )
inline

Default constructor - allows to create VOutputs with deferred construction, eventually dynamically, instead of during construction.

class MyObject : VObject
{
VOutput<double> MaybeOutput;
MyObject()
: MaybeOutput( Deferred() )
{
MaybeOutput = VOutput<double>(self(), "myparam", 0.5);
}
};
Generic base class for all VObjects.
Definition VObject.hpp:186