IOFireWireLibConfigDirectory.h [plain text]
#import "IOFireWireLibPriv.h"
namespace IOFireWireLib {
class ConfigDirectory: public IOFireWireIUnknown
{
protected:
typedef ::IOFireWireLibConfigDirectoryRef DirRef ;
public:
ConfigDirectory( IUnknownVTbl* interface, Device& inUserClient, FWKernConfigDirectoryRef inDirRef ) ;
ConfigDirectory( IUnknownVTbl* interface, Device& inUserClient ) ;
virtual ~ConfigDirectory() ;
IOReturn Update(UInt32 offset) ;
IOReturn GetKeyType(int key, IOConfigKeyType& type);
IOReturn GetKeyValue(int key, UInt32 &value, CFStringRef*& text);
IOReturn GetKeyValue(int key, CFDataRef* value, CFStringRef*& text);
IOReturn GetKeyValue(int key, DirRef& value, REFIID iid, CFStringRef*& text);
IOReturn GetKeyOffset(int key, FWAddress& value, CFStringRef*& text);
IOReturn GetKeyValue(int key, FWKernConfigDirectoryRef& value) ;
IOReturn GetIndexType(int index, IOConfigKeyType &type);
IOReturn GetIndexKey(int index, int &key);
IOReturn GetIndexValue(int index, UInt32& value);
IOReturn GetIndexValue(int index, CFDataRef* value);
IOReturn GetIndexValue(int index, CFStringRef* value);
IOReturn GetIndexValue(int index, FWKernConfigDirectoryRef& value) ;
IOReturn GetIndexValue(int index, DirRef& value, REFIID iid);
IOReturn GetIndexOffset(int index, FWAddress& value);
IOReturn GetIndexOffset(int index, UInt32& value);
IOReturn GetIndexEntry(int index, UInt32 &value);
IOReturn GetSubdirectories(io_iterator_t *outIterator);
IOReturn GetKeySubdirectories(int key, io_iterator_t *outIterator);
IOReturn GetType(int *outType) ;
IOReturn GetNumEntries(int *outNumEntries) ;
protected:
Device& mUserClient ;
FWKernConfigDirectoryRef mKernConfigDirectoryRef ;
} ;
class ConfigDirectoryCOM: public ConfigDirectory
{
protected:
typedef ::IOFireWireConfigDirectoryInterface Interface ;
public:
ConfigDirectoryCOM(Device& inUserClient) ;
ConfigDirectoryCOM(Device& inUserClient, FWKernConfigDirectoryRef inDirRef) ;
virtual ~ConfigDirectoryCOM() ;
private:
static Interface sInterface ;
public:
static IUnknownVTbl** Alloc(Device& inUserClient, FWKernConfigDirectoryRef inDirRef) ;
static IUnknownVTbl** Alloc(Device& inUserClient) ;
virtual HRESULT QueryInterface(REFIID iid, void ** ppv ) ;
protected:
static IOReturn SUpdate(
DirRef inDir,
UInt32 inOffset) ;
static IOReturn SGetKeyType(
DirRef inDir,
int inKey,
IOConfigKeyType* outType);
static IOReturn SGetKeyValue_UInt32(
DirRef inDir,
int inKey,
UInt32* outValue,
CFStringRef* outText);
static IOReturn SGetKeyValue_Data(
DirRef inDir,
int inKey,
CFDataRef* outValue,
CFStringRef* outText);
static IOReturn SGetKeyValue_ConfigDirectory(
DirRef inDir,
int inKey,
DirRef * outValue,
REFIID iid,
CFStringRef* outText);
static IOReturn SGetKeyOffset_FWAddress(
DirRef inDir,
int inKey,
FWAddress* outValue,
CFStringRef* text);
static IOReturn SGetIndexType(
DirRef inDir,
int inIndex,
IOConfigKeyType* type);
static IOReturn SGetIndexKey(
DirRef inDir,
int inIndex,
int * key);
static IOReturn SGetIndexValue_UInt32(
DirRef inDir,
int inIndex,
UInt32 * value);
static IOReturn SGetIndexValue_Data(
DirRef inDir,
int inIndex,
CFDataRef * value);
static IOReturn SGetIndexValue_String(
DirRef inDir,
int inIndex,
CFStringRef* outValue);
static IOReturn SGetIndexValue_ConfigDirectory(
DirRef inDir,
int inIndex,
DirRef * outValue,
REFIID iid);
static IOReturn SGetIndexOffset_FWAddress(
DirRef inDir,
int inIndex,
FWAddress* outValue);
static IOReturn SGetIndexOffset_UInt32(
DirRef inDir,
int inIndex,
UInt32* outValue);
static IOReturn SGetIndexEntry(
DirRef inDir,
int inIndex,
UInt32* outValue);
static IOReturn SGetSubdirectories(
DirRef inDir,
io_iterator_t* outIterator);
static IOReturn SGetKeySubdirectories(
DirRef inDir,
int inKey,
io_iterator_t * outIterator);
static IOReturn SGetType(
DirRef inDir,
int * outType) ;
static IOReturn SGetNumEntries(
DirRef inDir,
int * outNumEntries) ;
} ;
}