Public Member Functions

IXTCAccess Class Reference

Search for all occurrences

Detailed Description

Provides an interface to access Extension Channels.

See also:
Class Object, Class XTCObject

#include <object.h>

Inheritance diagram for IXTCAccess:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual Interface_ID  GetID ()
  This method returns the IXTCAccess interface ID.
virtual LifetimeType  LifetimeControl ()
  This method allows inquiries into the actual lifetime policy of a client and provide a server-controlled delete notify callback.
virtual void  AddXTCObject (XTCObject *pObj, int priority=0, int branchID=-1)=0
  This method adds an extension object into the pipeline.
virtual int  NumXTCObjects ()=0
  This method returns the number of extension objects.
virtual XTCObject GetXTCObject (int index)=0
  This method returns the I-th extension object.
virtual void  RemoveXTCObject (int index)=0
  This method allows you to remove the I-th extension object.
virtual void  SetXTCObjectPriority (int index, int priority)=0
  This method allows you to set the priority for the I-th extension object.
virtual int  GetXTCObjectPriority (int index)=0
  This method returns the priority for the I-th extension object.
virtual void  SetXTCObjectBranchID (int index, int branchID)=0
  This method allows you to set the branch identifier for the I-th extension object.
virtual int  GetXTCObjectBranchID (int index)=0
  This method returns the branch identifier for the I-th extension object.
virtual void  MergeAdditionalChannels (Object *from, int branchID)=0
  This method has to be called whenever the CompoundObject updates a branch (calling Eval on it).
virtual void  BranchDeleted (int branchID, bool reorderChannels)=0
  This method has to be called on the CompoundObject, so it can delete the XTCObjects for the specific branch.
virtual void  CopyAdditionalChannels (Object *from, bool deleteOld=true, bool bShallowCopy=false)=0
  This method copies all extension objects from the "from" objects into the current object.
virtual void  DeleteAllAdditionalChannels ()=0
  This method allows you to delete all additional channels.

Member Function Documentation

virtual Interface_ID GetID ( ) [inline, virtual]

This method returns the IXTCAccess interface ID.

Reimplemented from BaseInterface.

{ return IXTCACCESS_INTERFACE_ID; }
virtual LifetimeType LifetimeControl ( ) [inline, virtual]

This method allows inquiries into the actual lifetime policy of a client and provide a server-controlled delete notify callback.

Returns:
One of the following LifetimeTypes:
  • noRelease Do not call release, use interface as long as you like.
  • immediateRelease The interface is only good for one calls. The release is implied so a call to release is not required.
  • wantsRelease The clients are controlling the lifetime, so the interface needs a Release() when the client has finished. This is the default.
  • serverControlled The server controls the lifetime and will use the InterfaceNotifyCallback to inform the code when it is gone.

Reimplemented from BaseInterface.

{ return noRelease; }
virtual void AddXTCObject ( XTCObject pObj,
int  priority = 0,
int  branchID = -1 
) [pure virtual]

This method adds an extension object into the pipeline.

Parameters:
pObj The extension object you wish to add.
priority The priority to set.
branchID The branch identifier to set.
virtual int NumXTCObjects ( ) [pure virtual]

This method returns the number of extension objects.

virtual XTCObject* GetXTCObject ( int  index ) [pure virtual]

This method returns the I-th extension object.

Parameters:
index The index of the extension object to return.
virtual void RemoveXTCObject ( int  index ) [pure virtual]

This method allows you to remove the I-th extension object.

Parameters:
index The index of the extension object you wish to remove.
virtual void SetXTCObjectPriority ( int  index,
int  priority 
) [pure virtual]

This method allows you to set the priority for the I-th extension object.

Parameters:
index The index of the extension object for which to set the priority.
priority The priority to set.
virtual int GetXTCObjectPriority ( int  index ) [pure virtual]

This method returns the priority for the I-th extension object.

Parameters:
index The index of the extension object.
virtual void SetXTCObjectBranchID ( int  index,
int  branchID 
) [pure virtual]

This method allows you to set the branch identifier for the I-th extension object.

Parameters:
index The index of the extension object.
branchID The branch identifier to set.
virtual int GetXTCObjectBranchID ( int  index ) [pure virtual]

This method returns the branch identifier for the I-th extension object.

Parameters:
index The index of the extension object.
virtual void MergeAdditionalChannels ( Object from,
int  branchID 
) [pure virtual]

This method has to be called whenever the CompoundObject updates a branch (calling Eval on it).

Object *from is the object returned from Eval (os.obj); branchID is an int, that specifies that branch. The extension channel will get a callback to RemoveXTCObjectOnMergeBranches() and MergeXTCObject(). By default it returns true to RemoveXTCObjectOnMergeBranches(), which means, that the existing XTCObjects with that branchID will be deleted. The method MergeXTCObject() simply copies the XTCObjects from the incoming branch into the compound object.

Parameters:
from The object from which to merge additional channels
branchID The branch identifier.
virtual void BranchDeleted ( int  branchID,
bool  reorderChannels 
) [pure virtual]

This method has to be called on the CompoundObject, so it can delete the XTCObjects for the specific branch.

The XTCObject will have again the final decision if the XTCObject gets really deleted or not in a callback to RemoveXTCObjectOnBranchDeleted(), which will return true, if the XTCObject should be removed.

Parameters:
branchID The branch identifier.
reorderChannels TRUE to reorder the channels, otherwise FALSE.
virtual void CopyAdditionalChannels ( Object from,
bool  deleteOld = true,
bool  bShallowCopy = false 
) [pure virtual]

This method copies all extension objects from the "from" objects into the current object.

In case deleteOld is false, the objects will be appended. In case it is true, the old XTCObjects will be deleted.

Parameters:
from The object to copy from.
deleteOld TRUE to delete the old channel, FALSE to append the channels.
bShallowCopy TRUE to create a shallow copy, FALSE to create a deep copy.
virtual void DeleteAllAdditionalChannels ( ) [pure virtual]

This method allows you to delete all additional channels.


IXTCAccess IXTCAccess IXTCAccess IXTCAccess IXTCAccess IXTCAccess IXTCAccess IXTCAccess IXTCAccess IXTCAccess
IXTCAccess IXTCAccess IXTCAccess IXTCAccess IXTCAccess IXTCAccess IXTCAccess IXTCAccess IXTCAccess IXTCAccess