Base Module VST 3.7
SDK for developing VST plug-in
Loading...
Searching...
No Matches
FObject Class Reference

Implements FUnknown and IDependent. More...

#include <fobject.h>

+ Inheritance diagram for FObject:

Public Member Functions

 FObject ()=default
 default constructor...
 
 FObject (const FObject &)
 
FObjectoperator= (const FObject &)
 overloads operator "=" as the reference assignment
 
virtual ~FObject ()
 destructor...
 
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
 
FUnknown * unknownCast ()
 get FUnknown interface from object
 
tresult queryInterface (const TUID _iid, void **obj) SMTG_OVERRIDE
 please refer to FUnknown::queryInterface ()
 
uint32 addRef () SMTG_OVERRIDE
 please refer to FUnknown::addref ()
 
uint32 release () SMTG_OVERRIDE
 please refer to FUnknown::release ()
 
void 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)
 
template<class C>
IPtr< C > fromUnknown (FUnknown *unknown)
 

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 IUpdateHandler * getUpdateHandler ()
 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
 
template<class Class>
static IPtr< Class > fromUnknown (FUnknown *unknown)
 convert from FUnknown to FObject
 

Static Public Attributes

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

Protected Attributes

int32 refCount = 1
 COM-model local reference count.
 

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]

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

convert from FUnknown to FObject

◆ fromUnknown() [2/2]

template<class C>
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.