The Vish Visualization Shell 0.3
Vish
Wizt::VTask Class Referenceabstract

A functor object that runs in a separate thread, if fired from a ThreadManager. More...

#include <ocean/plankton/VThread.hpp>

Inheritance diagram for Wizt::VTask:
Wizt::VInputBase Wizt::ValueNotifier MemCore::ReferenceBase< ValueNotifier > MemCore::Intercube

Public Member Functions

virtual void run ()=0
 This function must be overloaded in a child class.
bool sendMessage (const RefPtr< VTaskMessage > &msg) const
 Send a message to the main thread.
bool SyncFromContextValue (const RefPtr< ValuePool > &GhostValues, const string &member) override
 Set the local instance with a value from the global one.
void valueChanged (const RefPtr< VValueBase > &value, const ValuePoolPtr &Context, const ValueNotifierList *DoNotBroadcast, const ValueMap *VP=0) override
 Receive a message - need to document how to actually do so.
Public Member Functions inherited from Wizt::VInputBase
bool activateNotification () const
 Allow the owner of this InputBase to retrieve notification events when the value is changed.
void notify (const ValueNotifierList *Source, const Wizt::ValuePoolPtr &) const
 Emit a notification event to all ValueNotifiers listening on the certain variable.
 VInputBase (const WeakPtr< VParameter > &owner)
 Construct a new input base type.
 ~VInputBase ()
 Destructor.
Public Member Functions inherited from Wizt::ValueNotifier
 ValueNotifier ()
 Constructor.
 ~ValueNotifier ()
 Destructor.
Public Member Functions inherited from MemCore::ReferenceBase< ValueNotifier >
auto getObjectCountID () const noexcept
 Get a unique ID for this object in the given domain.
bool isIdentical (const WeakPtr< ValueNotifier, ValueNotifier > &PossibleSelf) const noexcept
 Check if this object is identical to the one used by the given pointer.
void mkAutoDestructive ()
 Marks this object as being automatically destructed, e.g.
refcount_t refcount () const noexcept
 The strong reference count.
 ReferenceBase (ValueNotifier *that) noexcept
 Constructor, initializes reference counter to zero.
const auto & self () const
 Return weak pointer to the object self.
refcount_t wrefcount () const noexcept
 The weak reference count.
Public Member Functions inherited from MemCore::Intercube
void addInterface (const RefPtr< InterfaceBase > &I) const
 Add an interface class object.
template<class Data, typename TypeSelector>
void addInterfaceData (const Data &D)
 Add data via an interface class object.
template<class Data>
void addInterfaceData (const Data &D)
 Add data via an interface class object.
void clearInterfaces ()
 Remove all interfaces.
bool const_iterateInterfaces (const RefPtr< InterfaceIterationParameter > &IIP) const
 Constant iterator.
virtual RefPtr< InterfaceBasecreateInterface (const type_info &) const
 Virtual function which allows derived objects to create Interface objects on demand.
RefPtr< InterfaceBasefindInterface (const type_info &t) const
 Find a certain interface of specified type.
RefPtr< InterfaceBasegetInterface (const type_info &t)
 Retrieve an interface object from a certain type.
std::string getInterfaceNames (const char delim=';') const
 Debug function retrieving all interfaces as human-readable string.
template<class Data>
bool gotNewInterfaceData (const Data &D)
 Check whether data on the given interface have changed, and if so, set new data as interface.
template<class Data, typename Selector>
bool gotNewInterfaceData (mutex &M, const Data &D)
 Check whether interface data have changed, if so, then set new interface data and return true.
template<class Data>
bool gotNewInterfaceData (mutex &M, const Data &D)
 Check whether interface data have changed, if so, then set new interface data and return true.
template<class Data, typename Selector>
bool gotNewInterfaceData (mutex &M, const Data &D, const Selector &S)
 Check whether interface data have changed, if so, then set new interface data and return true.
template<class Data, typename Selector>
bool gotNewInterfaceData (mutex &M, const Data &D, const Selector *S)
 Check whether interface data have changed, if so, then set new interface data and return true.
template<class Data, typename Selector>
bool hasChangedInterfaceData (const Data &D) const
 Check whether interface data have changed.
template<class Data>
bool hasChangedInterfaceData (const Data &D) const
 Check whether interface data have changed.
template<class Data, typename Selector>
bool hasChangedInterfaceData (const Data &D, const Selector &) const
 Check whether interface data have changed.
template<class Data, typename Selector>
bool hasChangedInterfaceData (const Data &D, const Selector *) const
 Check whether interface data have changed.
bool hasInterface (const type_info &t) const
 Check if some Interface might exist.
 Intercube ()
 Constructor.
bool iterateInterfaces (const RefPtr< InterfaceIterationParameter > &IIP)
 Modifyable iterator.
void printInterfaces () const
 Debug function that prints the names of all interfaces.
void registerInterface (const type_info &t)
 Register an interface type; when the interface is actually required, the virtual createInterface() function will be called.
template<class InterfaceType>
void removeInterface ()
 Remove an interface.
void removeInterfaceBase (const type_info &InterfaceBaseID)
 Remove an interface.
virtual ~Intercube ()
 Destructor.

Additional Inherited Members

Public Types inherited from MemCore::ReferenceBase< ValueNotifier >
using reference_domain_t
 The type of the base class.
using SelfPtr_t
 Type for a pointer to this object itself.
Protected Member Functions inherited from MemCore::ReferenceBase< ValueNotifier >
virtual void extremeUnction ()
 A virtual function that will be called just before the object is destroyed.
ReferenceBaseoperator= (const ReferenceBase &R)
 Protected assignment operator (should not be called).
void suicide ()
 Delete this.
virtual ~ReferenceBase ()
 Virtual destructor.

Detailed Description

A functor object that runs in a separate thread, if fired from a ThreadManager.

Overload the

run()
virtual void run()=0
This function must be overloaded in a child class.

function in a child class. Note that VTask's are bound to VParameters, which are part of a VObject. This is required for notification management (control flow).

Member Function Documentation

◆ run()

virtual void Wizt::VTask::run ( )
pure virtual

This function must be overloaded in a child class.

It will run asynchroneously in a separate thread once this VTask object is fired from VThreadManager::start().

References sendMessage(), SyncFromContextValue(), and valueChanged().

◆ valueChanged()

void Wizt::VTask::valueChanged ( const RefPtr< VValueBase > & value,
const ValuePoolPtr & Context,
const ValueNotifierList * DoNotBroadcast,
const ValueMap * VP = 0 )
overridevirtual

Receive a message - need to document how to actually do so.

Probable the value should just be converted into a VTaskMEssage, that's most intuitive, but that is not yet implemented to work right now.

Implements Wizt::ValueNotifier.

References valueChanged().

Referenced by run(), and valueChanged().