Base Module VST 3.7
SDK for developing VST plug-in
FObject Class Reference

Implements FUnknown and IDependent. More...

#include <fobject.h>

+ Inheritance diagram for FObject:

Public Member Functions

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

Static Public Member Functions

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

Static Public Attributes

static const FUID iid
 Special UID that is used to cast an FUnknown pointer to a FObject. More...
 

Protected Attributes

int32 refCount = 1
 COM-model local reference count. More...
 

Static Protected Attributes

static IUpdateHandler * gUpdateHandler = nullptr
 

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
  • FUnknown
  • IDependent
  • IUpdateHandler

Constructor & Destructor Documentation

◆ FObject() [1/2]

FObject ( )
default

default constructor...

◆ FObject() [2/2]

FObject ( const FObject )
inline

◆ ~FObject()

~FObject ( )
virtual

destructor...

Member Function Documentation

◆ operator=()

FObject & operator= ( const FObject )
inline

overloads operator "=" as the reference assignment

◆ getFClassID()

static FClassID getFClassID ( )
inlinestatic

return Class ID as an ASCII string (statically)

◆ isA() [1/2]

virtual FClassID isA ( ) const
inlinevirtual

a local alternative to getFClassID ()

◆ isA() [2/2]

virtual bool isA ( FClassID  s) const
inlinevirtual

evaluates if the passed ID is of the FObject type

◆ isTypeOf()

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

evaluates if the passed ID is of the FObject type

◆ getRefCount()

int32 getRefCount ( )
inline

returns the current interface reference count

◆ unknownCast()

FUnknown * unknownCast ( )
inline

get FUnknown interface from object

◆ queryInterface()

tresult queryInterface ( const TUID  _iid,
void **  obj 
)

please refer to FUnknown::queryInterface ()

◆ addRef()

uint32 addRef ( )

please refer to FUnknown::addref ()

◆ release()

uint32 release ( )

please refer to FUnknown::release ()

◆ update()

void update ( FUnknown *  ,
int32   
)
inline

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

◆ addDependent()

void addDependent ( IDependent *  dep)
virtual

adds dependency to the object

Reimplemented in UpdateHandler.

◆ removeDependent()

void removeDependent ( IDependent *  dep)
virtual

removes dependency from the object

Reimplemented in UpdateHandler.

◆ changed()

void changed ( int32  msg = kChanged)
virtual

Inform all dependents, that the object has changed.

◆ deferUpdate()

void deferUpdate ( int32  msg = kChanged)
virtual

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

Reimplemented in UpdateHandler.

◆ updateDone()

virtual void updateDone ( int32  )
inlinevirtual

empty virtual method that should be overridden by derived classes

◆ isEqualInstance()

virtual bool isEqualInstance ( FUnknown *  d)
inlinevirtual

◆ setUpdateHandler()

static void setUpdateHandler ( IUpdateHandler *  handler)
inlinestatic

set method for the local attribute

◆ getUpdateHandler()

static IUpdateHandler * getUpdateHandler ( )
inlinestatic

get method for the local attribute

◆ classIDsEqual()

bool classIDsEqual ( FClassID  ci1,
FClassID  ci2 
)
inlinestatic

compares (evaluates) 2 class IDs

◆ unknownToObject()

FObject * unknownToObject ( FUnknown *  unknown)
inlinestatic

pointer conversion from FUnknown to FObject

◆ fromUnknown() [1/2]

static IPtr< Class > fromUnknown ( FUnknown *  unknown)
inlinestatic

convert from FUnknown to FObject

◆ fromUnknown() [2/2]

IPtr< C > fromUnknown ( FUnknown *  unknown)
inline

Member Data Documentation

◆ iid

const FUID iid
static

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

◆ refCount

int32 refCount = 1
protected

COM-model local reference count.

◆ gUpdateHandler

IUpdateHandler * gUpdateHandler = nullptr
staticprotected
Empty

Copyright © Steinberg Media Technologies GmbH. All Rights Reserved. This documentation is under this license.