LMMS
Loading...
Searching...
No Matches
Steinberg::FObject Class Reference

#include <fobject.h>

Inheritance diagram for Steinberg::FObject:
Steinberg::IDependent Steinberg::FUnknown Steinberg::Base::Thread::FLockObject Steinberg::CPluginView Steinberg::StringObject Steinberg::UpdateHandler Steinberg::Vst::Bus Steinberg::Vst::BusList Steinberg::Vst::ComponentBase Steinberg::Vst::Parameter Steinberg::Vst::PlugInterfaceSupport Steinberg::Vst::ProgramList Steinberg::Vst::Unit

Public Member Functions

 FObject ()
 default constructor...
 FObject (const FObject &)
 overloaded constructor...
virtual ~FObject ()
 destructor...
FObjectoperator= (const FObject &)
 overloads operator "=" as the reference assignment
virtual FClassID isA () const
 a local alternative to getFClassID ()
virtual bool isA (FClassID s) const
 evaluates if the passed ID is of the FObject type
virtual bool isTypeOf (FClassID s, bool=true) const
 evaluates if the passed ID is of the FObject type
int32 getRefCount ()
 returns the current interface reference count
FUnknownunknownCast ()
 get FUnknown interface from object
tresult PLUGIN_API queryInterface (const TUID _iid, void **obj) SMTG_OVERRIDE
 please refer to FUnknown::queryInterface ()
uint32 PLUGIN_API addRef () SMTG_OVERRIDE
 please refer to FUnknown::addref ()
uint32 PLUGIN_API release () SMTG_OVERRIDE
 please refer to FUnknown::release ()
void PLUGIN_API update (FUnknown *, int32) SMTG_OVERRIDE
 empty virtual method that should be overridden by derived classes for data updates upon changes
virtual void addDependent (IDependent *dep)
 adds dependency to the object
virtual void removeDependent (IDependent *dep)
 removes dependency from the object
virtual void changed (int32 msg=kChanged)
 Inform all dependents, that the object has changed.
virtual void deferUpdate (int32 msg=kChanged)
 Similar to triggerUpdates, except only delivered in idle (usefull in collecting updates).
virtual void updateDone (int32)
 empty virtual method that should be overridden by derived classes
virtual bool isEqualInstance (FUnknown *d)

Static Public Member Functions

static FClassID getFClassID ()
 return Class ID as an ASCII string (statically)
static void setUpdateHandler (IUpdateHandler *handler)
 set method for the local attribute
static IUpdateHandlergetUpdateHandler ()
 get method for the local attribute
static bool classIDsEqual (FClassID ci1, FClassID ci2)
 compares (evaluates) 2 class IDs
static FObjectunknownToObject (FUnknown *unknown)
 pointer conversion from FUnknown to FObject

Static Public Attributes

static const FUID iid
Static Public Attributes inherited from Steinberg::IDependent
static const FUID iid
Static Public Attributes inherited from Steinberg::FUnknown
static const FUID iid

Protected Attributes

int32 refCount
 COM-model local reference count.

Static Protected Attributes

static IUpdateHandlergUpdateHandler = nullptr

Additional Inherited Members

Public Types inherited from Steinberg::IDependent
enum  ChangeMessage {
  kWillChange , kChanged , kDestroyed , kWillDestroy ,
  kStdChangeMessageLast = kWillDestroy
}

Detailed Description

Implements FUnknown and IDependent.

FObject is a polymorphic class that implements IDependent (of SKI module) and therefore derived from FUnknown, which is the most abstract base class of all.

All COM-like virtual methods of FUnknown such as queryInterface(), addRef(), release() are implemented here. On top of that, dependency-related methods are implemented too.

Pointer casting is done via the template methods FCast, either FObject to FObject or FUnknown to FObject.

FObject supports a new singleton concept, therefore these objects are deleted automatically upon program termination.

  • Runtime type information: An object can be queried at runtime, of what class it is. To do this correctly, every class must override some methods. This is simplified by using the OBJ_METHODS macros
See also

Constructor & Destructor Documentation

◆ FObject() [1/2]

Steinberg::FObject::FObject ( )
inline

default constructor...

◆ FObject() [2/2]

Steinberg::FObject::FObject ( const FObject & )
inline

overloaded constructor...

◆ ~FObject()

virtual Steinberg::FObject::~FObject ( )
inlinevirtual

destructor...

Member Function Documentation

◆ addDependent()

void Steinberg::FObject::addDependent ( IDependent * dep)
virtual

adds dependency to the object

Reimplemented in Steinberg::UpdateHandler.

◆ addRef()

uint32 PLUGIN_API Steinberg::FObject::addRef ( )
virtual

please refer to FUnknown::addref ()

Implements Steinberg::FUnknown.

◆ changed()

void Steinberg::FObject::changed ( int32 msg = kChanged)
virtual

Inform all dependents, that the object has changed.

◆ classIDsEqual()

bool Steinberg::FObject::classIDsEqual ( FClassID ci1,
FClassID ci2 )
inlinestatic

compares (evaluates) 2 class IDs

◆ deferUpdate()

void Steinberg::FObject::deferUpdate ( int32 msg = kChanged)
virtual

Similar to triggerUpdates, except only delivered in idle (usefull in collecting updates).

Reimplemented in Steinberg::UpdateHandler.

◆ getFClassID()

FClassID Steinberg::FObject::getFClassID ( )
inlinestatic

return Class ID as an ASCII string (statically)

◆ getRefCount()

int32 Steinberg::FObject::getRefCount ( )
inline

returns the current interface reference count

◆ getUpdateHandler()

IUpdateHandler * Steinberg::FObject::getUpdateHandler ( )
inlinestatic

get method for the local attribute

◆ isA() [1/2]

virtual FClassID Steinberg::FObject::isA ( ) const
inlinevirtual

a local alternative to getFClassID ()

◆ isA() [2/2]

virtual bool Steinberg::FObject::isA ( FClassID s) const
inlinevirtual

evaluates if the passed ID is of the FObject type

◆ isEqualInstance()

virtual bool Steinberg::FObject::isEqualInstance ( FUnknown * d)
inlinevirtual

◆ isTypeOf()

virtual bool Steinberg::FObject::isTypeOf ( FClassID s,
bool = true ) const
inlinevirtual

evaluates if the passed ID is of the FObject type

◆ operator=()

FObject & Steinberg::FObject::operator= ( const FObject & )
inline

overloads operator "=" as the reference assignment

◆ queryInterface()

tresult PLUGIN_API Steinberg::FObject::queryInterface ( const TUID _iid,
void ** obj )
virtual

please refer to FUnknown::queryInterface ()

Implements Steinberg::FUnknown.

◆ release()

uint32 PLUGIN_API Steinberg::FObject::release ( )
virtual

please refer to FUnknown::release ()

Implements Steinberg::FUnknown.

◆ removeDependent()

void Steinberg::FObject::removeDependent ( IDependent * dep)
virtual

removes dependency from the object

Reimplemented in Steinberg::UpdateHandler.

◆ setUpdateHandler()

void Steinberg::FObject::setUpdateHandler ( IUpdateHandler * handler)
inlinestatic

set method for the local attribute

◆ unknownCast()

FUnknown * Steinberg::FObject::unknownCast ( )
inline

get FUnknown interface from object

◆ unknownToObject()

FObject * Steinberg::FObject::unknownToObject ( FUnknown * unknown)
inlinestatic

pointer conversion from FUnknown to FObject

◆ update()

void PLUGIN_API Steinberg::FObject::update ( FUnknown * ,
int32  )
inlinevirtual

empty virtual method that should be overridden by derived classes for data updates upon changes

Implements Steinberg::IDependent.

◆ updateDone()

virtual void Steinberg::FObject::updateDone ( int32 )
inlinevirtual

empty virtual method that should be overridden by derived classes

Member Data Documentation

◆ gUpdateHandler

IUpdateHandler * Steinberg::FObject::gUpdateHandler = nullptr
staticprotected

◆ iid

const FUID Steinberg::FObject::iid
static

Special UID that is used to cast an FUnknown pointer to a FObject

◆ refCount

int32 Steinberg::FObject::refCount
protected

COM-model local reference count.


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