ADTF
IObjectabstract

Base class for every interface type within the uCOM. More...

Inherited by object< ant::cFilterGraph, base::ant::IConfiguration >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::ISampleStream, hollow::IInternalBindingProxy, base::flash::IRunnable >, object< IStreamType >, object< flash::cSampleStreamOutPort, ITriggerPipeHierachy >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::ISampleStream, ant::IStreamingPort, ant::IStreamingInPort, ant::ISampleStreamInPort, base::flash::IRunnable >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::IPin, ant::IInPin, base::flash::IRunnable, flash::IStreamerPin >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, IPin, IOutPin, IFilterGraphPort, IFilterGraphDataPort, IFilterGraphDataOutPort, base::flash::IRunnable >, object< ITriggerPipeItem, trigger_pipe_source< ITriggerPipeItem > >, object< IPin, named_graph_object< trigger_pipe_item< IInPin > > >, object< IPin, IInPin, IFilterGraphPort, IFilterGraphDataPort, named_graph_object< trigger_pipe_item< IFilterGraphDataInPort > > >, object< IBindingObject, named_graph_object< IBindingClient > >, object< adtf::streaming::ant::IStreamType >, object< IStreamMetaType >, object< IPin, named_graph_object< trigger_pipe_item< IOutPin > > >, object< cServiceLevelmachine, IClassInfo, IObjectInfo, IService >, object< ucom::ant::cClassInfo, ant::INamedGraphObject, ant::ITriggerPipeSource, ant::IActiveRunner, base::ant::configuration<> >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::IRunner, ant::IFilterGraphPort, ant::IFilterGraphRunnerPort, base::flash::IRunnable >, object< ITriggerPipeSource, ITriggerPipeSource >, object< ant::ISample, flash::ISample, hollow::ISample, ucom::ant::IClassInfo >, object< IPin, IOutPin, IFilterGraphPort, IFilterGraphDataPort, named_graph_object< trigger_pipe_item< IFilterGraphDataOutPort > > >, object< IRunnable, IRunnable >, object< IInputStream, IOutputStream, IStream >, object< flash::cOutPin, ITriggerPipeHierachy >, object< IStreamingRequests >, object< IStreamingPort, IStreamingOutPort, sample_stream< ISampleStreamOutPort > >, object< IBindingObject, IBindingClient, IFilterGraphPort, IFilterGraphInterfacePort, named_graph_object< IFilterGraphInterfaceClientPort > >, object< cInPin, adtf::base::configuration<> >, object< streaming::ant::cFilterBase, base::ant::configuration<> >, object< IPlugin, IPluginLogging, level_machine< cPlugin, IPlugin::tPluginState, IPlugin::tPluginState::Deinitialized > >, object< services::ant::IReferenceClock::IClock, services::flash::IReferenceClock::IClock, ucom::cEventSource >, object< ant::IBindingObject, ant::named_graph_object< ant::IBindingServer > >, object< ucom::ant::cClassInfo, base::ant::configuration<>, IDynamicDataBinding, IStreamingService, IStreamingSource, data_binding< named_graph_object< ISampleStreamingSource > > >, object< quiet::cADTFRuntime, ucom::spider::IRuntimeStartup >, object< ant::IRunnable, ant::IRunnable, IRunnable, IRunnable >, object< ifunction< ResultType(Arguments...)> >, object< streaming::ant::INamedGraphObject, streaming::ant::IDataBinding, streaming::ant::IInterfaceBinding, streaming::ant::IRuntimeBehaviour, streaming::ant::IDynamicDataBinding, streaming::ant::IDynamicInterfaceBinding, streaming::ant::IStreamingService, streaming::ant::IStreamingSource, streaming::ant::ISampleStreamingSource, base::ant::IConfiguration >, object< streaming::ant::INamedGraphObject, streaming::ant::IDataBinding, streaming::ant::IInterfaceBinding, streaming::ant::IRuntimeBehaviour, streaming::ant::IDynamicDataBinding, streaming::ant::IDynamicInterfaceBinding, streaming::ant::IStreamingService, streaming::ant::IStreamingSink, streaming::ant::ISampleStreamingSink, base::ant::IConfiguration >, object< IProperties >, object< IClassFactory >, object< ISharedLockedObject >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::IPin, ant::IOutPin, base::flash::IRunnable, flash::IStreamerPin >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, IPin, IInPin, IFilterGraphPort, IFilterGraphDataPort, IFilterGraphDataInPort, base::flash::IRunnable >, object< IGraphConnection, named_graph_object< IGraphConnection > >, object< IDataBinding, IDataBinding >, object< IBindingType, ucom::ant::IClassInfo, ucom::ant::ISerializable >, object< IConfiguration, IConfiguration >, object< ant::IPluginInfo >, object< flash::cFilterGraphRunnerPort, ITriggerPipeHierachy >, object< ant::cSampleStreamingSink, interface_binding<> >, object< IRuntimeBehaviour, Interface >, object< cOutPin, adtf::base::configuration<> >, object< IBindingProxyOutPort, binding_proxy< adtf::ucom::ant::IObject, false > >, object< IEventSource >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::IRunner, base::flash::IRunnable >, object< IInterfaceBinding, IInterfaceBinding >, object< IFilter, graph< runtime_behaviour< interface_binding< data_binding< named_graph_object< IFilterGraph > > > > > >, object< IErrorHandling::IErrorHandler >, object< services::ant::IReferenceClock::IClock, ucom::cEventSource >, object< flash::cFilterGraphDataOutPort, ITriggerPipeHierachy >, object< IBindingProxyInPort, binding_proxy< adtf::ucom::ant::IObject, false > >, object< detail::cSampleStreamBase, ISampleStream, named_graph_object< trigger_pipe_item< ISampleStream > > >, object< INamedGraphObject, INamedGraphObject >, object< cFilterLevelmachine, ucom::ant::cClassInfo, runtime_behaviour< interface_binding< data_binding< named_graph_object< IFilter > > > > >, object< ILockedObject >, object< flash::cFilterGraphDataInPort, ITriggerPipeHierachy >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::ISampleStream, ant::IStreamingPort, ant::IStreamingOutPort, ant::ISampleStreamOutPort, base::flash::IRunnable >, object< ant::cSampleStreamingSource, interface_binding<> >, object< IBindingObject, IBindingServer, IFilterGraphPort, IFilterGraphInterfacePort, named_graph_object< IFilterGraphInterfaceServerPort > >, object< IRunner, IFilterGraphPort, trigger_pipe_item< named_graph_object< IFilterGraphRunnerPort > > >, object< cFilter, streaming::ant::IDynamicDataBinding, streaming::ant::IDynamicInterfaceBinding >, object< IObjectPool, IClassFactory >, object< IStreamingPort, IStreamingInPort, sample_stream< ISampleStreamInPort > >, object< remote::ant::IRPCObjectServer, remote::catwo::IRPCInterfaceDefinition >, object< streaming::ant::INamedGraphObject, streaming::ant::IDataBinding, streaming::ant::IInterfaceBinding, streaming::ant::IRuntimeBehaviour, streaming::ant::IDynamicDataBinding, streaming::ant::IDynamicInterfaceBinding, streaming::ant::IFilter, base::ant::IConfiguration >, object< ant::IProperties >, object< ucom::ant::detail::cRuntime, IADTFRuntime >, object< ant::runtime< LAST_RUN_LEVEL >, spider::IRuntimeStartup >, object< IRuntime >, object< IGraph, IGraph >, object< ucom::ant::cClassInfo, base::ant::configuration<>, IDynamicDataBinding, IStreamingService, IStreamingSink, data_binding< named_graph_object< ISampleStreamingSink > > >, object< ucom::ant::cService, base::ant::configuration<> >, object< ucom::ant::cClassInfo, ant::INamedGraphObject, ant::ITriggerPipeSource, ant::IActiveRunner, spider::IActiveRunner, base::ant::configuration<> >, object< flash::cSampleStreamInPort, ITriggerPipeHierachy >, object< flash::cSampleStream, ITriggerPipeHierachy >, object< flash::cInPin, ITriggerPipeHierachy >, object< ISampleQueue >, object< IBindingObject, named_graph_object< IBindingServer > >, object< IClassInfo >, object< flash::cRunner, ITriggerPipeHierachy >, IProperties, IErrorHandling, IErrorHandling::IErrorHandler, IADTFRuntime, ITriggerConfiguration, IRPCObjectServer, IRPCInterfaceDefinition, IApplication, IApplication::IJob, IKernel, IKernel::IKernelRunnable, IKernel::IScheduling, IKernel::ISignal, IKernel::IThread, IKernel::ITimer, ILogging, IMacroResolver, IMediaDescriptionService, IMemoryAllocator, IPlayer, IRPCObjectServerRegistry, IRecorder, IRecordingFile, IReferenceClock, IReferenceClock::IClock, IReferenceClock::ISync2RefChannel, IReferenceClock::ISync2RefChannelFactory, ISession, ISessionManager, ISignalListening, ISignalRegistry, ISignalRegistry::ISignalProvider, ISampleStreamTracer, IADTFFileSupport, IKernel::INamedKernelObject, IReferenceClock::ISystemClock, IReferenceClock::IGuardableClock, IReferenceClock::ITimeBarrier, IReferenceClock::ITimeGuard, IBindingType, IFilterGraphPort, IGraph, INamedGraphObject, ISample, ISampleBufferFactory, ISampleInStream, ISampleInfo, ISampleLog, ISampleOutStream, ISampleQueue, ISampleSerialization, IStreamMetaType, IStreamType, IStreamingPort, ITriggerPipe, ITriggerPipeSource, IStreamerPin, IInternalBindingProxy, IStreamingRequest, IStreamingRequests, ITriggerPipeHierachy, ICacheStatus, IClassFactory, IClassInfo, IDevice, IEventSource, IInputStream, ILockedObject, IObjectPool, IOutputStream, IPlugin, IPluginInfo, IPluginLogging, IRuntime, IScriptable, object< Bases >, ifunction< ResultType(Arguments...)>, IRuntimeStartup, IQtXSystem, and IQtShared.

Public Member Functions

 ADTF_IID (IObject, "object.ant.ucom.adtf.iid")
 Marks the IObject to be castable with the ucom_cast() More...
 

Protected Member Functions

 ~IObject ()=default
 Protected destructor --> Use implemented Destroy() instead of delete!
 

Private Member Functions

virtual tResult GetInterface (const char *i_strIID, void *&o_pInterface)=0
 Query interfaces on an object. More...
 
virtual tResult GetInterface (const char *i_strIID, const void *&o_pInterface) const =0
 Provides const correct interface querying. More...
 
virtual void Destroy () const =0
 Destruct and deallocate instantiations of type IObject. More...
 

Detailed Description

Base class for every interface type within the uCOM.

Deriving from this interface enables the inherited type to be usable with ucom_cast.

See also
Page The ucom_cast<> in depth explanation for further information

Definition at line 30 of file object_intf.h.

Member Function Documentation

◆ ADTF_IID()

ADTF_IID ( IObject  ,
"object.ant.ucom.adtf.iid"   
)

Marks the IObject to be castable with the ucom_cast()

See also
ADTF_IID(_interface, _striid)

◆ Destroy()

virtual void Destroy ( ) const
privatepure virtual

Destruct and deallocate instantiations of type IObject.

To safely deallocate arbitrary objects between binary boundaries, the usage of ordinary deallocation (e.g. delete or free) is strongly disadvised. Allocators and deallocator implementations might differ in different compiling modes which might result in undefined behavior if allocating an object in mode A (e.g. Release) and deallocating it in mode B (e.g. Debug). To ensure that an object is always allocated and deallocated on the same side of a DLL, method Destroy() can be used. The usual implementation of Destroy() just calls delete *this as allocating usually works using new. When calling IObject::Destroy() on an instantiated object, the vtable of pure abstract interface IObject points to the correct implementation of Destroy() ensuring correct destructor calling and deallocation.

Returns
Nothing
See also
default_object to use the standard implementation.

Implemented in object< Bases >, object< ant::cFilterGraph, base::ant::IConfiguration >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::ISampleStream, hollow::IInternalBindingProxy, base::flash::IRunnable >, object< IStreamType >, object< flash::cSampleStreamOutPort, ITriggerPipeHierachy >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::ISampleStream, ant::IStreamingPort, ant::IStreamingInPort, ant::ISampleStreamInPort, base::flash::IRunnable >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::IPin, ant::IInPin, base::flash::IRunnable, flash::IStreamerPin >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, IPin, IOutPin, IFilterGraphPort, IFilterGraphDataPort, IFilterGraphDataOutPort, base::flash::IRunnable >, object< ITriggerPipeItem, trigger_pipe_source< ITriggerPipeItem > >, object< IPin, named_graph_object< trigger_pipe_item< IInPin > > >, object< IPin, IInPin, IFilterGraphPort, IFilterGraphDataPort, named_graph_object< trigger_pipe_item< IFilterGraphDataInPort > > >, object< IBindingObject, named_graph_object< IBindingClient > >, object< adtf::streaming::ant::IStreamType >, object< IStreamMetaType >, object< IPin, named_graph_object< trigger_pipe_item< IOutPin > > >, object< cServiceLevelmachine, IClassInfo, IObjectInfo, IService >, object< ucom::ant::cClassInfo, ant::INamedGraphObject, ant::ITriggerPipeSource, ant::IActiveRunner, base::ant::configuration<> >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::IRunner, ant::IFilterGraphPort, ant::IFilterGraphRunnerPort, base::flash::IRunnable >, object< ITriggerPipeSource, ITriggerPipeSource >, object< ant::ISample, flash::ISample, hollow::ISample, ucom::ant::IClassInfo >, object< IPin, IOutPin, IFilterGraphPort, IFilterGraphDataPort, named_graph_object< trigger_pipe_item< IFilterGraphDataOutPort > > >, object< IRunnable, IRunnable >, object< IInputStream, IOutputStream, IStream >, object< flash::cOutPin, ITriggerPipeHierachy >, object< IStreamingRequests >, object< IStreamingPort, IStreamingOutPort, sample_stream< ISampleStreamOutPort > >, object< IBindingObject, IBindingClient, IFilterGraphPort, IFilterGraphInterfacePort, named_graph_object< IFilterGraphInterfaceClientPort > >, object< cInPin, adtf::base::configuration<> >, object< streaming::ant::cFilterBase, base::ant::configuration<> >, object< IPlugin, IPluginLogging, level_machine< cPlugin, IPlugin::tPluginState, IPlugin::tPluginState::Deinitialized > >, object< services::ant::IReferenceClock::IClock, services::flash::IReferenceClock::IClock, ucom::cEventSource >, object< ant::IBindingObject, ant::named_graph_object< ant::IBindingServer > >, object< ucom::ant::cClassInfo, base::ant::configuration<>, IDynamicDataBinding, IStreamingService, IStreamingSource, data_binding< named_graph_object< ISampleStreamingSource > > >, object< quiet::cADTFRuntime, ucom::spider::IRuntimeStartup >, object< ant::IRunnable, ant::IRunnable, IRunnable, IRunnable >, object< ifunction< ResultType(Arguments...)> >, object< streaming::ant::INamedGraphObject, streaming::ant::IDataBinding, streaming::ant::IInterfaceBinding, streaming::ant::IRuntimeBehaviour, streaming::ant::IDynamicDataBinding, streaming::ant::IDynamicInterfaceBinding, streaming::ant::IStreamingService, streaming::ant::IStreamingSource, streaming::ant::ISampleStreamingSource, base::ant::IConfiguration >, object< streaming::ant::INamedGraphObject, streaming::ant::IDataBinding, streaming::ant::IInterfaceBinding, streaming::ant::IRuntimeBehaviour, streaming::ant::IDynamicDataBinding, streaming::ant::IDynamicInterfaceBinding, streaming::ant::IStreamingService, streaming::ant::IStreamingSink, streaming::ant::ISampleStreamingSink, base::ant::IConfiguration >, object< IProperties >, object< IClassFactory >, object< ISharedLockedObject >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::IPin, ant::IOutPin, base::flash::IRunnable, flash::IStreamerPin >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, IPin, IInPin, IFilterGraphPort, IFilterGraphDataPort, IFilterGraphDataInPort, base::flash::IRunnable >, object< IGraphConnection, named_graph_object< IGraphConnection > >, object< IDataBinding, IDataBinding >, object< IBindingType, ucom::ant::IClassInfo, ucom::ant::ISerializable >, object< IConfiguration, IConfiguration >, object< ant::IPluginInfo >, object< flash::cFilterGraphRunnerPort, ITriggerPipeHierachy >, object< ant::cSampleStreamingSink, interface_binding<> >, object< IRuntimeBehaviour, Interface >, object< cOutPin, adtf::base::configuration<> >, object< IBindingProxyOutPort, binding_proxy< adtf::ucom::ant::IObject, false > >, object< IEventSource >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::IRunner, base::flash::IRunnable >, object< IInterfaceBinding, IInterfaceBinding >, object< IFilter, graph< runtime_behaviour< interface_binding< data_binding< named_graph_object< IFilterGraph > > > > > >, object< IErrorHandling::IErrorHandler >, object< services::ant::IReferenceClock::IClock, ucom::cEventSource >, object< flash::cFilterGraphDataOutPort, ITriggerPipeHierachy >, object< IBindingProxyInPort, binding_proxy< adtf::ucom::ant::IObject, false > >, object< detail::cSampleStreamBase, ISampleStream, named_graph_object< trigger_pipe_item< ISampleStream > > >, object< INamedGraphObject, INamedGraphObject >, object< cFilterLevelmachine, ucom::ant::cClassInfo, runtime_behaviour< interface_binding< data_binding< named_graph_object< IFilter > > > > >, object< ILockedObject >, object< flash::cFilterGraphDataInPort, ITriggerPipeHierachy >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::ISampleStream, ant::IStreamingPort, ant::IStreamingOutPort, ant::ISampleStreamOutPort, base::flash::IRunnable >, object< ant::cSampleStreamingSource, interface_binding<> >, object< IBindingObject, IBindingServer, IFilterGraphPort, IFilterGraphInterfacePort, named_graph_object< IFilterGraphInterfaceServerPort > >, object< IRunner, IFilterGraphPort, trigger_pipe_item< named_graph_object< IFilterGraphRunnerPort > > >, object< cFilter, streaming::ant::IDynamicDataBinding, streaming::ant::IDynamicInterfaceBinding >, object< IObjectPool, IClassFactory >, object< IStreamingPort, IStreamingInPort, sample_stream< ISampleStreamInPort > >, object< remote::ant::IRPCObjectServer, remote::catwo::IRPCInterfaceDefinition >, object< streaming::ant::INamedGraphObject, streaming::ant::IDataBinding, streaming::ant::IInterfaceBinding, streaming::ant::IRuntimeBehaviour, streaming::ant::IDynamicDataBinding, streaming::ant::IDynamicInterfaceBinding, streaming::ant::IFilter, base::ant::IConfiguration >, object< ant::IProperties >, object< ucom::ant::detail::cRuntime, IADTFRuntime >, object< ant::runtime< LAST_RUN_LEVEL >, spider::IRuntimeStartup >, object< IRuntime >, object< IGraph, IGraph >, object< ucom::ant::cClassInfo, base::ant::configuration<>, IDynamicDataBinding, IStreamingService, IStreamingSink, data_binding< named_graph_object< ISampleStreamingSink > > >, object< ucom::ant::cService, base::ant::configuration<> >, object< ucom::ant::cClassInfo, ant::INamedGraphObject, ant::ITriggerPipeSource, ant::IActiveRunner, spider::IActiveRunner, base::ant::configuration<> >, object< flash::cSampleStreamInPort, ITriggerPipeHierachy >, object< flash::cSampleStream, ITriggerPipeHierachy >, object< flash::cInPin, ITriggerPipeHierachy >, object< ISampleQueue >, object< IBindingObject, named_graph_object< IBindingServer > >, object< IClassInfo >, and object< flash::cRunner, ITriggerPipeHierachy >.

◆ GetInterface() [1/2]

virtual tResult GetInterface ( const char *  i_strIID,
const void *&  o_pInterface 
) const
privatepure virtual

Provides const correct interface querying.

Query interfaces on an object. The IObject::GetInterface method returns a pointer to a specified interface on an object to which a client currently holds an interface pointer. Due to the fact that this querying of interfaces is not at all type safe, the IObject::GetInterface methods reside inside the private section of the interface and can only be accessed by ucom_cast() function template.

Parameters
[in]i_strIIDIdentifier of the interface being requested.
[out]o_pInterfaceAddress of pointer variable that receives the interface pointer requested in idInterface. Upon successful return, *o_pInterface contains the requested interface pointer to the object. If the object does not expose the interface specified in i_strIID, i_pInterface is set to NULL.
Returns
Standard error.
Return values
ERR_NOERRORThe interface identified by i_strIID was implemented and exposed by the implementation of *this. o_pInterface points to the queried interface.
ERR_NO_INTERFACEThe requested interface is not exposed. o_pInterface==NULL
See also
ucom_cast() function template
The ucom_cast<> in depth explanation

Implemented in object< Bases >, object< ant::cFilterGraph, base::ant::IConfiguration >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::ISampleStream, hollow::IInternalBindingProxy, base::flash::IRunnable >, object< IStreamType >, object< flash::cSampleStreamOutPort, ITriggerPipeHierachy >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::ISampleStream, ant::IStreamingPort, ant::IStreamingInPort, ant::ISampleStreamInPort, base::flash::IRunnable >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::IPin, ant::IInPin, base::flash::IRunnable, flash::IStreamerPin >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, IPin, IOutPin, IFilterGraphPort, IFilterGraphDataPort, IFilterGraphDataOutPort, base::flash::IRunnable >, object< ITriggerPipeItem, trigger_pipe_source< ITriggerPipeItem > >, object< IPin, named_graph_object< trigger_pipe_item< IInPin > > >, object< IPin, IInPin, IFilterGraphPort, IFilterGraphDataPort, named_graph_object< trigger_pipe_item< IFilterGraphDataInPort > > >, object< IBindingObject, named_graph_object< IBindingClient > >, object< adtf::streaming::ant::IStreamType >, object< IStreamMetaType >, object< IPin, named_graph_object< trigger_pipe_item< IOutPin > > >, object< cServiceLevelmachine, IClassInfo, IObjectInfo, IService >, object< ucom::ant::cClassInfo, ant::INamedGraphObject, ant::ITriggerPipeSource, ant::IActiveRunner, base::ant::configuration<> >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::IRunner, ant::IFilterGraphPort, ant::IFilterGraphRunnerPort, base::flash::IRunnable >, object< ITriggerPipeSource, ITriggerPipeSource >, object< ant::ISample, flash::ISample, hollow::ISample, ucom::ant::IClassInfo >, object< IPin, IOutPin, IFilterGraphPort, IFilterGraphDataPort, named_graph_object< trigger_pipe_item< IFilterGraphDataOutPort > > >, object< IRunnable, IRunnable >, object< IInputStream, IOutputStream, IStream >, object< flash::cOutPin, ITriggerPipeHierachy >, object< IStreamingRequests >, object< IStreamingPort, IStreamingOutPort, sample_stream< ISampleStreamOutPort > >, object< IBindingObject, IBindingClient, IFilterGraphPort, IFilterGraphInterfacePort, named_graph_object< IFilterGraphInterfaceClientPort > >, object< cInPin, adtf::base::configuration<> >, object< streaming::ant::cFilterBase, base::ant::configuration<> >, object< IPlugin, IPluginLogging, level_machine< cPlugin, IPlugin::tPluginState, IPlugin::tPluginState::Deinitialized > >, object< services::ant::IReferenceClock::IClock, services::flash::IReferenceClock::IClock, ucom::cEventSource >, object< ant::IBindingObject, ant::named_graph_object< ant::IBindingServer > >, object< ucom::ant::cClassInfo, base::ant::configuration<>, IDynamicDataBinding, IStreamingService, IStreamingSource, data_binding< named_graph_object< ISampleStreamingSource > > >, object< quiet::cADTFRuntime, ucom::spider::IRuntimeStartup >, object< ant::IRunnable, ant::IRunnable, IRunnable, IRunnable >, object< ifunction< ResultType(Arguments...)> >, object< streaming::ant::INamedGraphObject, streaming::ant::IDataBinding, streaming::ant::IInterfaceBinding, streaming::ant::IRuntimeBehaviour, streaming::ant::IDynamicDataBinding, streaming::ant::IDynamicInterfaceBinding, streaming::ant::IStreamingService, streaming::ant::IStreamingSource, streaming::ant::ISampleStreamingSource, base::ant::IConfiguration >, object< streaming::ant::INamedGraphObject, streaming::ant::IDataBinding, streaming::ant::IInterfaceBinding, streaming::ant::IRuntimeBehaviour, streaming::ant::IDynamicDataBinding, streaming::ant::IDynamicInterfaceBinding, streaming::ant::IStreamingService, streaming::ant::IStreamingSink, streaming::ant::ISampleStreamingSink, base::ant::IConfiguration >, object< IProperties >, object< IClassFactory >, object< ISharedLockedObject >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::IPin, ant::IOutPin, base::flash::IRunnable, flash::IStreamerPin >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, IPin, IInPin, IFilterGraphPort, IFilterGraphDataPort, IFilterGraphDataInPort, base::flash::IRunnable >, object< IGraphConnection, named_graph_object< IGraphConnection > >, object< IDataBinding, IDataBinding >, object< IBindingType, ucom::ant::IClassInfo, ucom::ant::ISerializable >, object< IConfiguration, IConfiguration >, object< ant::IPluginInfo >, object< flash::cFilterGraphRunnerPort, ITriggerPipeHierachy >, object< ant::cSampleStreamingSink, interface_binding<> >, object< IRuntimeBehaviour, Interface >, object< cOutPin, adtf::base::configuration<> >, object< IBindingProxyOutPort, binding_proxy< adtf::ucom::ant::IObject, false > >, object< IEventSource >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::IRunner, base::flash::IRunnable >, object< IInterfaceBinding, IInterfaceBinding >, object< IFilter, graph< runtime_behaviour< interface_binding< data_binding< named_graph_object< IFilterGraph > > > > > >, object< IErrorHandling::IErrorHandler >, object< services::ant::IReferenceClock::IClock, ucom::cEventSource >, object< flash::cFilterGraphDataOutPort, ITriggerPipeHierachy >, object< IBindingProxyInPort, binding_proxy< adtf::ucom::ant::IObject, false > >, object< detail::cSampleStreamBase, ISampleStream, named_graph_object< trigger_pipe_item< ISampleStream > > >, object< INamedGraphObject, INamedGraphObject >, object< cFilterLevelmachine, ucom::ant::cClassInfo, runtime_behaviour< interface_binding< data_binding< named_graph_object< IFilter > > > > >, object< ILockedObject >, object< flash::cFilterGraphDataInPort, ITriggerPipeHierachy >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::ISampleStream, ant::IStreamingPort, ant::IStreamingOutPort, ant::ISampleStreamOutPort, base::flash::IRunnable >, object< ant::cSampleStreamingSource, interface_binding<> >, object< IBindingObject, IBindingServer, IFilterGraphPort, IFilterGraphInterfacePort, named_graph_object< IFilterGraphInterfaceServerPort > >, object< IRunner, IFilterGraphPort, trigger_pipe_item< named_graph_object< IFilterGraphRunnerPort > > >, object< cFilter, streaming::ant::IDynamicDataBinding, streaming::ant::IDynamicInterfaceBinding >, object< IObjectPool, IClassFactory >, object< IStreamingPort, IStreamingInPort, sample_stream< ISampleStreamInPort > >, object< remote::ant::IRPCObjectServer, remote::catwo::IRPCInterfaceDefinition >, object< streaming::ant::INamedGraphObject, streaming::ant::IDataBinding, streaming::ant::IInterfaceBinding, streaming::ant::IRuntimeBehaviour, streaming::ant::IDynamicDataBinding, streaming::ant::IDynamicInterfaceBinding, streaming::ant::IFilter, base::ant::IConfiguration >, object< ant::IProperties >, object< ucom::ant::detail::cRuntime, IADTFRuntime >, object< ant::runtime< LAST_RUN_LEVEL >, spider::IRuntimeStartup >, object< IRuntime >, object< IGraph, IGraph >, object< ucom::ant::cClassInfo, base::ant::configuration<>, IDynamicDataBinding, IStreamingService, IStreamingSink, data_binding< named_graph_object< ISampleStreamingSink > > >, object< ucom::ant::cService, base::ant::configuration<> >, object< ucom::ant::cClassInfo, ant::INamedGraphObject, ant::ITriggerPipeSource, ant::IActiveRunner, spider::IActiveRunner, base::ant::configuration<> >, object< flash::cSampleStreamInPort, ITriggerPipeHierachy >, object< flash::cSampleStream, ITriggerPipeHierachy >, object< flash::cInPin, ITriggerPipeHierachy >, object< ISampleQueue >, object< IBindingObject, named_graph_object< IBindingServer > >, object< IClassInfo >, and object< flash::cRunner, ITriggerPipeHierachy >.

◆ GetInterface() [2/2]

virtual tResult GetInterface ( const char *  i_strIID,
void *&  o_pInterface 
)
privatepure virtual

Query interfaces on an object.

The IObject::GetInterface method returns a pointer to a specified interface on an object to which a client currently holds an interface pointer. Due to the fact that this querying of interfaces is not at all type safe, the IObject::GetInterface methods reside inside the private section of the interface and can only be accessed by ucom_cast() function template.

Parameters
[in]i_strIIDIdentifier of the interface being requested.
[out]o_pInterfaceAddress of pointer variable that receives the interface pointer requested in idInterface. Upon successful return, *o_pInterface contains the requested interface pointer to the object. If the object does not expose the interface specified in i_strIID, i_pInterface is set to NULL.
Returns
Standard error.
Return values
ERR_NOERRORThe interface identified by i_strIID was implemented and exposed by the implementation of *this. o_pInterface points to the queried interface.
ERR_NO_INTERFACEThe requested interface is not exposed. o_pInterface==NULL
See also
ucom_cast() function template
The ucom_cast<> in depth explanation

Implemented in object< Bases >, object< ant::cFilterGraph, base::ant::IConfiguration >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::ISampleStream, hollow::IInternalBindingProxy, base::flash::IRunnable >, object< IStreamType >, object< flash::cSampleStreamOutPort, ITriggerPipeHierachy >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::ISampleStream, ant::IStreamingPort, ant::IStreamingInPort, ant::ISampleStreamInPort, base::flash::IRunnable >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::IPin, ant::IInPin, base::flash::IRunnable, flash::IStreamerPin >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, IPin, IOutPin, IFilterGraphPort, IFilterGraphDataPort, IFilterGraphDataOutPort, base::flash::IRunnable >, object< ITriggerPipeItem, trigger_pipe_source< ITriggerPipeItem > >, object< IPin, named_graph_object< trigger_pipe_item< IInPin > > >, object< IPin, IInPin, IFilterGraphPort, IFilterGraphDataPort, named_graph_object< trigger_pipe_item< IFilterGraphDataInPort > > >, object< IBindingObject, named_graph_object< IBindingClient > >, object< adtf::streaming::ant::IStreamType >, object< IStreamMetaType >, object< IPin, named_graph_object< trigger_pipe_item< IOutPin > > >, object< cServiceLevelmachine, IClassInfo, IObjectInfo, IService >, object< ucom::ant::cClassInfo, ant::INamedGraphObject, ant::ITriggerPipeSource, ant::IActiveRunner, base::ant::configuration<> >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::IRunner, ant::IFilterGraphPort, ant::IFilterGraphRunnerPort, base::flash::IRunnable >, object< ITriggerPipeSource, ITriggerPipeSource >, object< ant::ISample, flash::ISample, hollow::ISample, ucom::ant::IClassInfo >, object< IPin, IOutPin, IFilterGraphPort, IFilterGraphDataPort, named_graph_object< trigger_pipe_item< IFilterGraphDataOutPort > > >, object< IRunnable, IRunnable >, object< IInputStream, IOutputStream, IStream >, object< flash::cOutPin, ITriggerPipeHierachy >, object< IStreamingRequests >, object< IStreamingPort, IStreamingOutPort, sample_stream< ISampleStreamOutPort > >, object< IBindingObject, IBindingClient, IFilterGraphPort, IFilterGraphInterfacePort, named_graph_object< IFilterGraphInterfaceClientPort > >, object< cInPin, adtf::base::configuration<> >, object< streaming::ant::cFilterBase, base::ant::configuration<> >, object< IPlugin, IPluginLogging, level_machine< cPlugin, IPlugin::tPluginState, IPlugin::tPluginState::Deinitialized > >, object< services::ant::IReferenceClock::IClock, services::flash::IReferenceClock::IClock, ucom::cEventSource >, object< ant::IBindingObject, ant::named_graph_object< ant::IBindingServer > >, object< ucom::ant::cClassInfo, base::ant::configuration<>, IDynamicDataBinding, IStreamingService, IStreamingSource, data_binding< named_graph_object< ISampleStreamingSource > > >, object< quiet::cADTFRuntime, ucom::spider::IRuntimeStartup >, object< ant::IRunnable, ant::IRunnable, IRunnable, IRunnable >, object< ifunction< ResultType(Arguments...)> >, object< streaming::ant::INamedGraphObject, streaming::ant::IDataBinding, streaming::ant::IInterfaceBinding, streaming::ant::IRuntimeBehaviour, streaming::ant::IDynamicDataBinding, streaming::ant::IDynamicInterfaceBinding, streaming::ant::IStreamingService, streaming::ant::IStreamingSource, streaming::ant::ISampleStreamingSource, base::ant::IConfiguration >, object< streaming::ant::INamedGraphObject, streaming::ant::IDataBinding, streaming::ant::IInterfaceBinding, streaming::ant::IRuntimeBehaviour, streaming::ant::IDynamicDataBinding, streaming::ant::IDynamicInterfaceBinding, streaming::ant::IStreamingService, streaming::ant::IStreamingSink, streaming::ant::ISampleStreamingSink, base::ant::IConfiguration >, object< IProperties >, object< IClassFactory >, object< ISharedLockedObject >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::IPin, ant::IOutPin, base::flash::IRunnable, flash::IStreamerPin >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, IPin, IInPin, IFilterGraphPort, IFilterGraphDataPort, IFilterGraphDataInPort, base::flash::IRunnable >, object< IGraphConnection, named_graph_object< IGraphConnection > >, object< IDataBinding, IDataBinding >, object< IBindingType, ucom::ant::IClassInfo, ucom::ant::ISerializable >, object< IConfiguration, IConfiguration >, object< ant::IPluginInfo >, object< flash::cFilterGraphRunnerPort, ITriggerPipeHierachy >, object< ant::cSampleStreamingSink, interface_binding<> >, object< IRuntimeBehaviour, Interface >, object< cOutPin, adtf::base::configuration<> >, object< IBindingProxyOutPort, binding_proxy< adtf::ucom::ant::IObject, false > >, object< IEventSource >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::IRunner, base::flash::IRunnable >, object< IInterfaceBinding, IInterfaceBinding >, object< IFilter, graph< runtime_behaviour< interface_binding< data_binding< named_graph_object< IFilterGraph > > > > > >, object< IErrorHandling::IErrorHandler >, object< services::ant::IReferenceClock::IClock, ucom::cEventSource >, object< flash::cFilterGraphDataOutPort, ITriggerPipeHierachy >, object< IBindingProxyInPort, binding_proxy< adtf::ucom::ant::IObject, false > >, object< detail::cSampleStreamBase, ISampleStream, named_graph_object< trigger_pipe_item< ISampleStream > > >, object< INamedGraphObject, INamedGraphObject >, object< cFilterLevelmachine, ucom::ant::cClassInfo, runtime_behaviour< interface_binding< data_binding< named_graph_object< IFilter > > > > >, object< ILockedObject >, object< flash::cFilterGraphDataInPort, ITriggerPipeHierachy >, object< base::ant::IRunnable, ant::ITriggerPipeSource, ant::ITriggerPipeItem, ant::INamedGraphObject, ant::ISampleStream, ant::IStreamingPort, ant::IStreamingOutPort, ant::ISampleStreamOutPort, base::flash::IRunnable >, object< ant::cSampleStreamingSource, interface_binding<> >, object< IBindingObject, IBindingServer, IFilterGraphPort, IFilterGraphInterfacePort, named_graph_object< IFilterGraphInterfaceServerPort > >, object< IRunner, IFilterGraphPort, trigger_pipe_item< named_graph_object< IFilterGraphRunnerPort > > >, object< cFilter, streaming::ant::IDynamicDataBinding, streaming::ant::IDynamicInterfaceBinding >, object< IObjectPool, IClassFactory >, object< IStreamingPort, IStreamingInPort, sample_stream< ISampleStreamInPort > >, object< remote::ant::IRPCObjectServer, remote::catwo::IRPCInterfaceDefinition >, object< streaming::ant::INamedGraphObject, streaming::ant::IDataBinding, streaming::ant::IInterfaceBinding, streaming::ant::IRuntimeBehaviour, streaming::ant::IDynamicDataBinding, streaming::ant::IDynamicInterfaceBinding, streaming::ant::IFilter, base::ant::IConfiguration >, object< ant::IProperties >, object< ucom::ant::detail::cRuntime, IADTFRuntime >, object< ant::runtime< LAST_RUN_LEVEL >, spider::IRuntimeStartup >, object< IRuntime >, object< IGraph, IGraph >, object< ucom::ant::cClassInfo, base::ant::configuration<>, IDynamicDataBinding, IStreamingService, IStreamingSink, data_binding< named_graph_object< ISampleStreamingSink > > >, object< ucom::ant::cService, base::ant::configuration<> >, object< ucom::ant::cClassInfo, ant::INamedGraphObject, ant::ITriggerPipeSource, ant::IActiveRunner, spider::IActiveRunner, base::ant::configuration<> >, object< flash::cSampleStreamInPort, ITriggerPipeHierachy >, object< flash::cSampleStream, ITriggerPipeHierachy >, object< flash::cInPin, ITriggerPipeHierachy >, object< ISampleQueue >, object< IBindingObject, named_graph_object< IBindingServer > >, object< IClassInfo >, and object< flash::cRunner, ITriggerPipeHierachy >.