IOFireWireLibUnitDirectory.h [plain text]
#ifndef _IOKIT_IOFireWireLibUnitDirectory_H_
#define _IOKIT_IOFireWireLibUnitDirectory_H_
#include "IOFireWireLib.h"
#include "IOFireWireLibPriv.h"
class IOFireWireLocalUnitDirectoryImp: public IOFireWireIUnknown
{
public:
struct InterfaceMap
{
IUnknownVTbl* pseudoVTable ;
IOFireWireLocalUnitDirectoryImp* obj ;
} ;
static IOFireWireLocalUnitDirectoryInterface sInterface ;
InterfaceMap mInterface ;
inline static IOFireWireLocalUnitDirectoryImp* GetThis(IOFireWireLibLocalUnitDirectoryRef self)
{ return ((InterfaceMap*)self)->obj ;}
static IUnknownVTbl** Alloc(
IOFireWireDeviceInterfaceImp& inUserClient) ;
HRESULT QueryInterface(
REFIID iid,
void ** ppv ) ;
static IOReturn SAddEntry_Ptr(
IOFireWireLibLocalUnitDirectoryRef self,
int key,
void* inBuffer,
size_t inLen,
CFStringRef inDesc = NULL) ;
static IOReturn SAddEntry_UInt32(
IOFireWireLibLocalUnitDirectoryRef self,
int key,
UInt32 value,
CFStringRef inDesc = NULL) ;
static IOReturn SAddEntry_FWAddress(
IOFireWireLibLocalUnitDirectoryRef self,
int key,
const FWAddress* value,
CFStringRef inDesc = NULL) ;
static IOReturn SPublish(IOFireWireLibLocalUnitDirectoryRef self) ;
static IOReturn SUnpublish(IOFireWireLibLocalUnitDirectoryRef self) ;
public:
IOFireWireLocalUnitDirectoryImp(IOFireWireDeviceInterfaceImp& inUserClient) ;
virtual ~IOFireWireLocalUnitDirectoryImp() ;
IOFireWireLibLocalUnitDirectoryRef CreateRef() ;
virtual IOReturn AddEntry(
int key,
void* inBuffer,
size_t inLen,
CFStringRef inDesc = NULL) ;
virtual IOReturn AddEntry(
int key,
UInt32 value,
CFStringRef inDesc = NULL) ;
virtual IOReturn AddEntry(
int key,
const FWAddress & value,
CFStringRef inDesc = NULL) ;
virtual IOReturn Publish() ;
virtual IOReturn Unpublish() ;
virtual IOFireWireDeviceAddedCallback SetDeviceAddedCallback(
IOFireWireDeviceAddedCallback ) {return mDeviceAddedCallback; }
virtual IOFireWireDeviceRemovedCallback SetDeviceRemovedCallback(
IOFireWireDeviceRemovedCallback ) { return mDeviceRemovedCallback; }
protected:
FWKernUnitDirRef mKernUnitDirRef ;
IOFireWireDeviceInterfaceImp& mUserClient ;
IOFireWireDeviceAddedCallback mDeviceAddedCallback ;
IOFireWireDeviceRemovedCallback mDeviceRemovedCallback ;
Boolean mPublished ;
} ;
#endif //_IOKIT_IOFireWireLibUnitDirectory_H_