IOFireWireLibIRMAllocation.h [plain text]
#import "IOFireWireLibIUnknown.h"
#import "IOFireWireLibPriv.h"
#import "IOFireWireLib.h"
namespace IOFireWireLib {
class Device ;
class IRMAllocation: public IOFireWireIUnknown
{
public:
IRMAllocation( const IUnknownVTbl& interface,
Device& userclient,
UserObjectHandle inKernIRMAllocationRef,
void* inCallBack = 0,
void* inRefCon = 0) ;
virtual ~IRMAllocation() ;
public:
static void LostProc( IOFireWireLibIRMAllocationRef refcon, IOReturn result, void** args, int numArgs) ;
Boolean NotificationIsOn(IOFireWireLibIRMAllocationRef self ) ;
Boolean TurnOnNotification(IOFireWireLibIRMAllocationRef self ) ;
void TurnOffNotification(IOFireWireLibIRMAllocationRef self ) ;
void SetReleaseIRMResourcesOnFree (IOFireWireLibIRMAllocationRef self, Boolean doRelease ) ;
IOReturn AllocateIsochResources(IOFireWireLibIRMAllocationRef self, UInt8 isochChannel, UInt32 bandwidthUnits);
IOReturn DeallocateIsochResources(IOFireWireLibIRMAllocationRef self);
Boolean AreIsochResourcesAllocated(IOFireWireLibIRMAllocationRef self, UInt8 *pAllocatedIsochChannel, UInt32 *pAllocatedBandwidthUnits);
void SetRefCon(IOFireWireLibIRMAllocationRef self, void* refCon) ;
void* GetRefCon(IOFireWireLibIRMAllocationRef self) ;
protected:
Boolean mNotifyIsOn ;
Device& mUserClient ;
UserObjectHandle mKernIRMAllocationRef ;
IOFireWireLibIRMAllocationLostNotificationProc mLostHandler ;
void* mUserRefCon ;
IOFireWireLibIRMAllocationRef mRefInterface ;
} ;
class IRMAllocationCOM: public IRMAllocation
{
typedef ::IOFireWireLibIRMAllocationInterface Interface ;
public:
IRMAllocationCOM( Device& userclient,
UserObjectHandle inKernIRMAllocationRef,
void* inCallBack,
void* inRefCon ) ;
virtual ~IRMAllocationCOM() ;
private:
static Interface sInterface ;
public:
static IUnknownVTbl** Alloc( Device& inUserClient,
UserObjectHandle inKernIRMAllocationRef,
void* inCallBack,
void* inRefCon );
virtual HRESULT QueryInterface( REFIID iid, void ** ppv ) ;
protected:
static Boolean SNotificationIsOn (IOFireWireLibIRMAllocationRef self ) ;
static Boolean STurnOnNotification (IOFireWireLibIRMAllocationRef self ) ;
static void STurnOffNotification (IOFireWireLibIRMAllocationRef self ) ;
static const void SSetReleaseIRMResourcesOnFree (IOFireWireLibIRMAllocationRef self, Boolean doRelease ) ;
static IOReturn SAllocateIsochResources(IOFireWireLibIRMAllocationRef self, UInt8 isochChannel, UInt32 bandwidthUnits);
static IOReturn SDeallocateIsochResources(IOFireWireLibIRMAllocationRef self);
static Boolean SAreIsochResourcesAllocated(IOFireWireLibIRMAllocationRef self, UInt8 *pAllocatedIsochChannel, UInt32 *pAllocatedBandwidthUnits);
static void SSetRefCon(IOFireWireLibIRMAllocationRef self, void* refCon) ;
static void* SGetRefCon(IOFireWireLibIRMAllocationRef self) ;
};
}