Fish - FiberLib for VISH 0.3
Fish - The Fiber Bundle API for the Vish Visualization Shell
List of all members
Wizt::Fish< VObject > Struct Reference

This is an antique class which has been replaced by base class VSkale. More...

#include <Fish.hpp>

Inheritance diagram for Wizt::Fish< VObject >:
Wizt::VSkale Wizt::VConnectable Wizt::VSlotContainer< int ExpertLevel > Wizt::VManagedObjectBase Wizt::VConnectionValidatorList Wizt::ValueCacheable MemCore::ReferenceBase< VManagedObjectBase > Wizt::Fish< Fiber::Bundle > Wizt::Fish< Fiber::FragmentCluster > Wizt::Fish< double > FlyingFish Wizt::GridObject Wizt::VertexRenderObject Wizt::Fish< Fiber::Field > Wizt::Fish< Fiber::Grid > Wizt::Fish< Fiber::Skeleton > Wizt::Fish< Fiber::Slice > Wizt::GridAnemone

Additional Inherited Members

- Public Types inherited from Wizt::VSlotContainer< int ExpertLevel >
enum  AttachErrorCode
 
typedef void AcceptableInputTypes
 
typedef VSlotSet CreationSlots_t
 
typedef VSlot::Empty< IEmpty
 
- Public Types inherited from MemCore::ReferenceBase< VManagedObjectBase >
typedef Object reference_domain_t
 
typedef WeakPtr< Object, Object > SelfPtr_t
 
- Public Member Functions inherited from Wizt::VConnectable
virtual void adjustConnections (const RefPtr< VSlot > &ChangedSlot, const RefPtr< VParameter > &par)
 
VSlotContainer::AttachErrorCode attach (const ParameterID &whichone, VSlotContainer &sourceObject, const ParameterID &sourceName)
 
AttachErrorCode attach (const RefPtr< VParameter > &OldParam, const RefPtr< VParameter > &NewParam, const string &Member={})
 
AttachErrorCode attachUniqueObject (const RefPtr< VParameter > &param, const RefPtr< VCreationPreferences > &VCP=NullPtr(), bool ReallyUnique=true)
 
AttachErrorCode attachUniqueObject (const RefPtr< VSlot > &slot, const RefPtr< VCreationPreferences > &VCP=NullPtr(), bool ReallyUnique=true)
 
RefPtr< VSlotConnect (const RefPtr< VParameter > &SourceParam)
 
RefPtr< VSlotConnectInterface (const RefPtr< VSlotContainer > &Provider, const RefPtr< InterfaceBase > &IB)
 
virtual bool CreatedFilteredConnection (const RefPtr< VParameter > &SourceParam)
 
- Public Member Functions inherited from Wizt::VSlotContainer< int ExpertLevel >
Ageableage (const RefPtr< ValuePool > &VP)
 
const Ageableage (const RefPtr< ValuePool > &VP) const
 
const AgeableConnectionAge () const
 
bool ConnectionsHaveChanged (const RefPtr< ValuePool > &VP) const
 
bool HasYoungerInput (const RefPtr< ValuePool > &Context, int RecursionLevel=0) const
 
Ageable YoungestInput (const RefPtr< ValuePool > &Context) const
 
Ageable YoungestOutput (const RefPtr< ValuePool > &Context) const
 
Ageable YoungestUncachedInput (const RefPtr< ValuePool > &Context) const
 
bool CheckIfThereExistNewerOutputs (const VRequest &request, bool AdjustObjectAge) const
 
RefPtr< VSlotaddParameter (const ParameterID &name, int EL, const RefPtr< VParameter > &param, bool overwriteExistingSlot)
 
virtual bool allowParameterReplacement (const RefPtr< VParameter > &NewParam, const RefPtr< VParameter > &OldParam, const string &localName, int ExpertLevel)
 
virtual int connectSlots (const VSlotContainerPtr &vobj)
 
bool removeParameter (const ParameterID &s)
 
RefPtr< VParametergetParameter (const ParameterID &s) const
 
RefPtr< VSlotgetSlot (const ParameterID &s, int &EL) const
 
bool setSlotValueFromText (const ParameterID &s, const string &ValueText, const RefPtr< ValuePool > &VP, const string &theMember={})
 
RefPtr< VSlotfindSlot (const RefPtr< VParameter > &param) const
 
string getSlotName (const RefPtr< VParameter > &param) const
 
bool AddAction (const ParameterID &s, const RefPtr< ValueActionBase > &VAB)
 
bool AddAction (const RefPtr< VSlot > &ActionSlot, bool(DerivedObject::*Action)(const RefPtr< VValueBase > &value))
 
RefPtr< VParametermkUniqueParameterInput (const ParameterID &s, const string &ContainerName)
 
int getExpertLevel (const ParameterID &s) const
 
int setExpertLevel (const ParameterID &s, int EL)
 
int getExpertLevel (const RefPtr< VParameter > &) const
 
int getExpertLevel (const RefPtr< VSlot > &S) const
 
int setExpertLevel (const RefPtr< VSlot > &S, int EL)
 
int setExpertLevel (const RefPtr< VParameter > &s, int EL)
 
bool hasChanged (const ParameterID &s, const RefPtr< ValuePool > &Context) const
 
bool hasChanged (const RefPtr< VSlot > &, const RefPtr< ValuePool > &Context) const
 
bool hasChanged (const RefPtr< ValuePool > &Context, int n,...) const
 
bool hasChanged (RefPtr< ValuePool > Context,...) const
 
virtual bool ignoreInput (const RefPtr< VSlot > &theSlot) const
 
bool getParameterValue (Type &Variable, const ParameterID &s, const RefPtr< ValuePool > &VP) const
 
bool getParameterValue (Type &Variable, const ParameterID &s, const VContext &C) const
 
bool getParameterValue (Type &Variable, const ParameterID &s, const VRequest &R) const
 
bool setParameterValue (const Type &Variable, const ParameterID &s, const RefPtr< ValuePool > &VP, bool autoCreateLocalValue) const
 
bool setParameterValue (const Type &Variable, const ParameterID &s, VContext &C, bool autoCreateLocalValue) const
 
bool setParameterValue (const Type &Variable, const ParameterID &s, VRequest &R, bool autoCreateLocalValue=false) const
 
RefPtr< VSlotaddParam (const ParameterID &name, const Type &init, const RefPtr< VCreationPreferences > &VP=NullPtr(), int expertLevel=0, bool overwriteExistingSlot=true)
 
bool setParameterProperty (const ParameterID &param, const string &Properties, const RefPtr< VValueBase > &Value=NullPtr())
 
RefPtr< VSlotaddFloatParam (double init, const ParameterID &param, double min, double max, const RefPtr< VCreationPreferences > &IP=NullPtr(), int expertLevel=0)
 
AttachErrorCode attach (const RefPtr< VParameter > &OldParam, const RefPtr< VParameter > &NewParam, const string &Member={})
 
int iterateParameters (int expertLevel, VSlotIterator &VIIt) const
 
int iterateInputSlots (int expertLevel, VSlotIterator &VIIt) const
 
int iterateInputs (VSlotIterator &VIIt, int expertLevel=0)
 
int iterate_inputs (const std::function< bool(VSlot &what, int ExpertLevel)>) const
 
RefPtr< VSlotgetUniqueInputSlot (const type_info &what)
 
int getNumberOfParameters (int expertLevel) const
 
virtual bool implements (const type_info &what) const
 
virtual RefPtr< VParametergetImplementation (const type_info &what, const string &name={}, const string &member={}) const
 
RefPtr< VSlotgetImplementationSlot (const type_info &what, const string &Name={}, const string &Member={}) const
 
VAcceptInfoList_t getAcceptInfoList (const std::type_info &request_type) const
 
bool provides (const RefPtr< VSlot > &OutputSlot) const
 
RefPtr< VSlotfindOutputSlot (const RefPtr< VParameter > &Who) const
 
bool isYounger (const RefPtr< VParameter > &OutputParam, const RefPtr< ValuePool > &VP) const
 
bool isNewlyConnected (const RefPtr< VParameter > &Who, const RefPtr< ValuePool > &VP) const
 
bool hasNewlyConnectedOutputs (const RefPtr< ValuePool > &VP) const
 
void findNewlyConnectedOutputs (const RefPtr< ValuePool > &VP, VSlotSet &WhichOnes) const
 
RefPtr< VSlotgetOutput (const string &Name) const
 
RefPtr< MemCore::StringListgetOutputs (const type_info &what=typeid(void)) const
 
virtual int iterateOutputs (VOutputIterator &VOut, const type_info &just_these=typeid(void)) const
 
bool registerOutput (const RefPtr< VParameter > &P, const string &AsName={})
 
bool registerOutput (const RefPtr< VParameter > &P, const string &AsName, const type_info &MemberType, const string &UseMember)
 
bool registerOutput (const RefPtr< VParameter > &P, const type_info &MemberType, const string &UseMember)
 
int getNumberOfInputs () const
 
int getNumberOfOutputs () const
 
bool hasChangedSlots (const MemCore::Intercube &IC, const RefPtr< ValuePool > &Context) const
 
auto include_self (const std::tuple< SlotList... > &t) const -> decltype(std::tuple_cat(std::make_tuple(this), t))
 
 in (VSlotContainer *that, const string &name, int expertLevel=0)
 
 in (VSlotContainer *that, const string &name, const GridSelector &GS=GridSelector(), int expertLevel=0)
 
 out (VConnectable *Source, const string &initial_name, const Fiber::GridSelector &InitValue=GridSelector(), const RefPtr< VCreationPreferences > &CP=NullPtr())
 
- Public Member Functions inherited from MemCore::ReferenceBase< VManagedObjectBase >
auto getObjectCountID () const noexcept
 
bool isIdentical (const WeakPtr< Object, Object > &PossibleSelf) const noexcept
 
void mkAutoDestructive ()
 
refcount_t refcount () const noexcept
 
 ReferenceBase (Object *that) noexcept
 
const auto & self () const
 
refcount_t wrefcount () const noexcept
 
- Static Public Member Functions inherited from Wizt::VConnectable
static bool attachSlot (const WeakPtr< VSlot > &DestSlot, const RefPtr< VParameter > &ProvidedParam, const string &Member={})
 
static bool attachSlot (const WeakPtr< VSlot > &DestSlot, const RefPtr< VSlot > &SourceSlot, const string &Member={})
 
static bool detachSlot (const RefPtr< VSlot > &SourceSlot)
 
- Static Public Member Functions inherited from Wizt::VSlotContainer< int ExpertLevel >
static const charAttachErrorCodeMessage (AttachErrorCode)
 
static bool attachParameter (const RefPtr< VParameter > &theProvidedParam, const WeakPtr< VSlot > &theDestSlot, const string &theMember={})
 
- Static Public Member Functions inherited from Wizt::ValueCacheable
static ValueCacheconsider (MemCore::Intercube &IC, const WeakPtr< VSlot > &VS, const RefPtr< ValuePool > &Context)
 
static ValueCachegetValueCache (MemCore::Intercube &IC)
 
static bool hasChangedSlots (const WeakPtrToVSlotContainer &theSlotOwner, const MemCore::Intercube &IC, const RefPtr< ValuePool > &Context)
 
- Public Attributes inherited from Wizt::VSlotContainer< int ExpertLevel >
 AllLevels
 
 DestParameterNotFound
 
 InvalidDestParameter
 
- Protected Member Functions inherited from Wizt::VSlotContainer< int ExpertLevel >
virtual void setup (const CreationSlots_t &CreationSlots)
 
- Protected Member Functions inherited from MemCore::ReferenceBase< VManagedObjectBase >
virtual void extremeUnction ()
 
ReferenceBaseoperator= (const ReferenceBase &R)
 
void suicide ()
 

Detailed Description

This is an antique class which has been replaced by base class VSkale.

It should go away.

The Fish of a VObject is an abstract base class that holds a (native!) pointer to the Vish object that will be the owner of the various slots. It is only used for the initialization of the slot classes. Therefore all the Fish objects are virtually derived from the Fish object. This ensures that the Fish object is initialized first, and all Fish slots may just use this already initialized pointer from their base class.

The concept is like in the following example. Note that the constructor A(99) is never called here, the argument 99 is completely irrelevant. Using this mechanism, we can give B an argument-free default constructor, and still providing it a well-initialized base class A, since A is constructed in the derived class, not in B.

#include <stdio.h>
struct A
{
A(int i)
{
printf("A: %d\n", i);
}
};
struct B : virtual A
{
B()
: A(99)
{}
};
struct C : B
{
C()
: A(23)
{}
};
main()
{
C cc;
}