Base Module VST 3.7 SDK for developing VST plug-in

Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Attributes | Static Protected Attributes | List of all members
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 &)
FObject & | operator= (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 FObject * | unknownToObject (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 | ( |  | ) |
| inline static

return Class ID as an ASCII string (statically)

## ◆ isA() [1/2]

virtual FClassID isA | ( |  | ) | const
| inline virtual

a local alternative to getFClassID ()

## ◆ isA() [2/2]

virtual bool isA | ( | FClassID | s | ) | const
| inline virtual

evaluates if the passed ID is of the FObject type

## ◆ isTypeOf()

virtual bool isTypeOf | ( | FClassID | s,
|  | bool | = `true`
| ) |  | const
| inline virtual

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 |  | ) |
| inline virtual

empty virtual method that should be overridden by derived classes

## ◆ isEqualInstance()

virtual bool isEqualInstance | ( | FUnknown * | d | ) |
| inline virtual

## ◆ setUpdateHandler()

static void setUpdateHandler | ( | IUpdateHandler * | handler | ) |
| inline static

set method for the local attribute

## ◆ getUpdateHandler()

static IUpdateHandler * getUpdateHandler | ( |  | ) |
| inline static

get method for the local attribute

## ◆ classIDsEqual()

bool classIDsEqual | ( | FClassID | ci1,
|  | FClassID | ci2
| ) |  |
| inline static

compares (evaluates) 2 class IDs

## ◆ unknownToObject()

FObject * unknownToObject | ( | FUnknown * | unknown | ) |
| inline static

pointer conversion from FUnknown to FObject

## ◆ fromUnknown() [1/2]

static IPtr< Class > fromUnknown | ( | FUnknown * | unknown | ) |
| inline static

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
| static protected

Empty

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