/* * IOStreamUserClient.h * IOStreamFamily * * Copyright 2006 Apple Computer, Inc. All rights reserved. * */ #if !defined( __IOKIT_IOSTREAMUSERCLIENT_H ) #define __IOKIT_IOSTREAMUSERCLIENT_H #include #include #include class IOStreamUserClient : public IOUserClient { OSDeclareDefaultStructors( IOStreamUserClient ) protected: IOStream * _owner; task_t _task; public: virtual bool initWithTask( task_t owningTask, void * securityToken, UInt32 type, OSDictionary * properties); virtual bool initWithTask( task_t owningTask, void * securityToken, UInt32 type); virtual IOReturn clientClose( void ); virtual IOReturn clientDied( void ); virtual IOService * getService( void ); virtual IOReturn registerNotificationPort( mach_port_t port, UInt32 type, UInt32 refCon ); virtual IOReturn connectClient( IOUserClient * client ); virtual IOExternalMethod * getTargetAndMethodForIndex( IOService ** targetP, UInt32 index ); virtual IOExternalTrap * getTargetAndTrapForIndex( IOService **targetP, UInt32 index ); virtual IOReturn clientMemoryForType( UInt32 type, IOOptionBits * options, IOMemoryDescriptor ** memory ); virtual bool start( IOService * provider ); protected: virtual IOReturn openMethod( char * dataIn, char * dataOut, IOByteCount inputSize, IOByteCount * outputSize ); virtual IOReturn closeMethod( void ); virtual IOReturn startMethod( void ); virtual IOReturn stopMethod( void ); virtual IOReturn suspendMethod( void ); virtual IOReturn getModeMethod( char * dataOut, IOByteCount * outputSize ); virtual IOReturn setModeMethod( char * dataIn, IOByteCount inputSize ); virtual IOReturn getBufferCountMethod( char * dataOut, IOByteCount * outputSize ); virtual IOReturn inputTrap( UInt32 token ); virtual IOReturn inputSyncTrap( UInt32 token ); }; #endif /* ! __IOKIT_IOSTREAMUSERCLIENT_H */