FrT;@1|>>0|$15|HeaderDoc::Test%22|$4|CODE$7|COMMENT$7|CPPCODE$15|EXPECTED_RESULT$23|EXPECTED_RESULT_ALLDECS$7|FAILMSG$8|FILENAME$4|LANG$4|NAME$7|SUBLANG$4|TYPE$5215|class IOEventSource : public OSObject { OSDeclareAbstractStructors(IOEventSource) friend class IOWorkLoop; public: /*! @typedef Action @discussion Placeholder type for C++ function overloading discrimination. As the all event sources require an action and it has to be stored somewhere and be of some type, this is that type. @param owner Target of the function, can be used as a refcon. The owner is set during initialisation. Note if a C++ function was specified this parameter is implicitly the first paramter in the target member function's parameter list. */ typedef void (*Action)(OSObject *owner, ...); protected: /*! @var eventChainNext The next event source in the event chain. nil at end of chain. */ IOEventSource *eventChainNext; /*! @var owner The owner object called when an event has been delivered. */ OSObject *owner; /*! @var action The action method called when an event has been delivered */ Action action; /*! @var enabled Is this event source enabled to deliver requests to the work-loop. */ bool enabled; /*! @var workLoop What is the work-loop for this event source. */ IOWorkLoop *workLoop; /*! @function getID HeaderDoc test of multiline inline function definition. */ int getID() { return id; } /*! @function init @abstract Primary initialiser for the IOEventSource class. @throws halibut @throws mackeral @throws peanuts @param owner Owner of this instance of an event source. Used as the first parameter of the action callout. Owner will generally be an OSObject it doesn't have to be as no member functions will be called directly in it. It can just be a refcon for a client routine. @param action Pointer to C call out function. Action is a pointer to a C function that gets called when this event source has outstanding work. It will usually be called by the checkForWork member function. The first parameter of the action call out will always be the owner, this allows C++ member functions to be used as actions. Defaults to 0. @result true if the inherited classes and this instance initialise successfully. */ virtual bool init(OSObject *owner, IOEventSource::Action action = 0); /*! @function checkForWork @abstract Pure Virtual member function used by IOWorkLoop for work scheduling. @discussion This function will be called to request a subclass to check it's internal state for any work to do and then to call out the owner/action. @param moreP Pointer to the more-work output variable. Set to true if this function needs to be called again before all its outstanding events have been processed. @param wakeupTimeP Pointer to no-later wake up time output variable. Return variable to indicate when this object wishes to be called again; used for timeouts. Note the checkForWork method may be called before the timeout fires. Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout requested. */ virtual void checkForWork(bool *moreP, mach_timespec_t *wakeupTimeP) = 0; /*! @function setWorkLoop @abstract Set'ter for workLoop variable. @param workLoop Target work-loop of this event source instance. A subclass of IOWorkLoop that at least reacts to signalWorkAvailable() and onThread functions. */ virtual void setWorkLoop(IOWorkLoop *workLoop); /*! @function setNext @abstract Set'ter for eventChainNext variable. @param next Pointer to another IOEventSource instance. */ virtual void setNext(IOEventSource *next); /*! @function getNext @abstract Get'ter for eventChainNext variable. @result value of eventChainNext. */ virtual IOEventSource *getNext() const; public: /*! @function setAction @abstract Set'ter for action variable. @param action Pointer to a C function of type IOEventSource::Action. */ virtual void setAction(IOEventSource::Action action); /*! @function getAction @abstract Get'ter for action variable. @result value of action. */ virtual IOEventSource::Action getAction() const; /*! @function enable @abstract Enable event source. @discussion A subclass implementation is expected to respect the enabled state when checkForWork is called. Calling this function will cause the work-loop to be signalled so that a checkForWork is performed. */ virtual void enable(); /*! @function disable @abstract Disable event source. @discussion A subclass implementation is expected to respect the enabled state when checkForWork is called. */ virtual void disable(); /*! @function isEnabled @abstract Get'ter for enable variable. @result true if enabled. */ virtual bool isEnabled() const; /*! @function getWorkLoop @abstract Get'ter for workLoop variable. @result value of workLoop. */ virtual IOWorkLoop *getWorkLoop() const; /*! @function onThread @abstract Convenience function for workLoop->onThread. @result true if called on the work-loop thread. */ virtual bool onThread() const; }; $2331|/*! @class IOEventSource @abstract Abstract class for all work-loop event sources. @namespace I/O Kit @updated 2007-03-07 @throws sandwiches @discussion The IOEventSource declares the abstract super class that all event sources must inherit from if an IOWorkLoop is to receive events from them. An event source can represent any event that should cause the work-loop of a device to wake up and perform work. Two examples of event sources are the IOInterruptEventSource which delivers interrupt notifications and IOCommandGate which delivers command requests. A kernel module can always use the work-loop model for serialising access to anything at all. The IOEventSource is used for communicating events to the work-loop, and the chain of event sources should be used to walk the possible event sources and demultipex them. Note a particular instance of an event source may only be a member of 1 linked list chain. If you need to move it between chains than make sure it is removed from the original chain before attempting to move it. The IOEventSource makes no attempt to maintain the consitency of it's internal data across multi-threading. It is assumed that the user of these basic tools will protect the data that these objects represent in some sort of device wide instance lock. For example the IOWorkLoop maintains the event chain by handing off change request to its own thread and thus single threading access to its state. All subclasses of the IOEventSource are expected to implement the checkForWork() member function. checkForWork() is the key method in this class. It is called by some work-loop when convienient and is expected to evaluate it's internal state and determine if an event has occured since the last call. In the case of an event having occurred then the instance defined target(owner)/action will be called. The action is stored as an ordinary C function pointer but the first parameter is always the owner. This means that a C++ member function can be used as an action function though this depends on the ABI. Although the eventChainNext variable contains a reference to the next event source in the chain this reference is not retained. The list 'owner' i.e. the client that creates the event, not the work-loop, is expected to retain the source. */ $0|$197443|-=: TOP LEVEL COMMENT PARSE VALUES :=- inHeader: 0 inClass: 1 inInterface: 0 inCPPHeader: 0 inOCCHeader: 0 inPerlScript: 0 inShellScript: 0 inPHPScript: 0 inJavaSource: 0 inFunctionGroup: 0 inGroup: 0 inFunction: 0 inPDefine: 0 inTypedef: 0 inUnion: 0 inStruct: 0 inConstant: 0 inVar: 0 inEnum: 0 inMethod: 0 inAvailabilityMacro: 0 inUnknown: 0 classType: unknown inputCounter: 0 blockOffset: 0 fullpath: /test_suite_bogus_path/class_3.test -=: BLOCKPARSE PARSER STATE KEYS :=- $parserState->{FULLPATH} => /test_suite_bogus_path/class_3.test $parserState->{ISFORWARDDECLARATION} => 0 $parserState->{NEXTTOKENNOCPP} => 0 $parserState->{availability} => $parserState->{backslashcount} => 0 $parserState->{basetype} => $parserState->{bracePending} => 0 $parserState->{callbackIsTypedef} => 0 $parserState->{callbackName} => $parserState->{callbackNamePending} => -1 $parserState->{categoryClass} => $parserState->{classNameFound} => 1 $parserState->{classtype} => class $parserState->{forceClassDone} => 1 $parserState->{forceClassName} => IOEventSource $parserState->{forceClassSuper} => public OSObject $parserState->{freezeStack} => ARRAY(OBJID) $parserState->{freezereturn} => 1 $parserState->{frozensodname} => $parserState->{functionReturnsCallback} => 0 $parserState->{hollow} => HeaderDoc::ParseTree=HASH(OBJID) $parserState->{inBrackets} => 0 $parserState->{inChar} => 0 $parserState->{inClass} => 1 $parserState->{inComment} => 0 $parserState->{inInlineComment} => 0 $parserState->{inMacro} => 0 $parserState->{inMacroLine} => 0 $parserState->{inOperator} => 0 $parserState->{inPrivateParamTypes} => 0 $parserState->{inString} => 0 $parserState->{inTemplate} => 0 $parserState->{initbsCount} => 0 $parserState->{inputCounter} => 67 $parserState->{kr_c_function} => 0 $parserState->{kr_c_name} => $parserState->{lang} => C $parserState->{lastTreeNode} => HeaderDoc::ParseTree=HASH(OBJID) $parserState->{lastsymbol} => ; $parserState->{macroNoTrunc} => 1 $parserState->{name} => $parserState->{namePending} => 0 $parserState->{noInsert} => 0 $parserState->{occmethod} => 0 $parserState->{occmethodname} => $parserState->{occparmlabelfound} => 4 $parserState->{onlyComments} => 0 $parserState->{parsedParamAtBrace} => ARRAY(OBJID) $parserState->{parsedParamList} => ARRAY(OBJID) $parserState->{parsedParamParse} => 1 $parserState->{parsedParamStateAtBrace} => ARRAY(OBJID) $parserState->{posstypes} => $parserState->{posstypesPending} => 0 $parserState->{pplStack} => ARRAY(OBJID) $parserState->{preEqualsSymbol} => $parserState->{preTemplateSymbol} => $parserState->{preclasssodtype} => class $parserState->{prekeywordsodname} => $parserState->{prekeywordsodtype} => $parserState->{returntype} => class IOEventSource : public OSObject $parserState->{seenBraces} => 0 $parserState->{seenMacroPart} => 0 $parserState->{seenTilde} => 0 $parserState->{simpleTDcontents} => $parserState->{simpleTypedef} => 0 $parserState->{sodclass} => class $parserState->{sodname} => OSObject $parserState->{sodtype} => public $parserState->{sodtypeclasstoken} => class $parserState->{stackFrozen} => 0 $parserState->{startOfDec} => 1 $parserState->{storeDec} => $parserState->{sublang} => C $parserState->{temponlyComments} => 0 $parserState->{treePopTwo} => 0 $parserState->{value} => $parserState->{valuepending} => 0 -=: BLOCKPARSE RETURN VALUES :=- newcount: 67 typelist: class namelist: IOEventSource posstypes: OSObject value: returntype: public pridec: simpleTDcontents: bpavail: blockOffset: 86 conformsToList: functionContents: extendsClass: implementsClass: -=: LIST OF PARSED PARAMETERS :=- -=: DUMP OF PARSE TREE :=- +---class +--- +---IOEventSource +--- +---: +--- +---public +--- +---OSObject +---[ NEWLINE ] +---{ | +---[ NEWLINE ] | +--- | +-*-OSDeclareAbstractStructors (HAS STATE) | +---( | | +---IOEventSource | | +---) | +---[ NEWLINE ] | +--- | +---friend | +--- | +---class | +--- | +---IOWorkLoop | +---; | +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---public | +---: | +---[ NEWLINE ] | +---/* | | +---! | | +--- @typedef Action | | +--- @discussion Placeholder type for C++ function overloading discrimination. | | +--- As the all event sources require an action and it has to be stored somewhere | | +--- and be of some type, this is that type. | | +--- @param owner | | +--- Target of the function, can be used as a refcon. The owner is set | | +--- during initialisation. Note if a C++ function was specified this parameter | | +--- is implicitly the first paramter in the target member function's | | +--- parameter list. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-typedef (HAS STATE) | +--- | +---void | +--- | +---( | | +---* | | +---Action | | +---) | +---( | | +---OSObject | | +--- | | +---* | | +---owner | | +---, | | +--- | | +---. | | +---. | | +---. | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---protected | +---: | +---[ NEWLINE ] | +---/* | | +---! | | +--- @var eventChainNext | | +--- The next event source in the event chain. nil at end of chain. | | +---*/ | +---[ NEWLINE ] | +--- | +-*-IOEventSource (HAS STATE) | +--- | +---* | +---eventChainNext | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @var owner The owner object called when an event has been delivered. | | +---*/ | +---[ NEWLINE ] | +--- | +-*-OSObject (HAS STATE) | +--- | +---* | +---owner | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @var action | | +--- The action method called when an event has been delivered | | +---*/ | +---[ NEWLINE ] | +--- | +-*-Action (HAS STATE) | +--- | +---action | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @var enabled | | +--- Is this event source enabled to deliver requests to the work-loop. | | +---*/ | +---[ NEWLINE ] | +--- | +-*-bool (HAS STATE) | +--- | +---enabled | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @var workLoop What is the work-loop for this event source. | | +---*/ | +---[ NEWLINE ] | +--- | +-*-IOWorkLoop (HAS STATE) | +--- | +---* | +---workLoop | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- | | +--- @function getID | | +--- HeaderDoc test of multiline inline function definition. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +-*-int (HAS STATE) | +--- | +---getID | +---( | | +---) | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function init | | +--- @abstract Primary initialiser for the IOEventSource class. | | +--- @throws halibut | | +--- @throws mackeral | | +--- @throws peanuts | | +--- @param owner | | +--- Owner of this instance of an event source. Used as the first parameter | | +--- of the action callout. Owner will generally be an OSObject it doesn't have to | | +--- be as no member functions will be called directly in it. It can just be a | | +--- refcon for a client routine. | | +--- @param action | | +--- Pointer to C call out function. Action is a pointer to a C function | | +--- that gets called when this event source has outstanding work. It will usually | | +--- be called by the checkForWork member function. The first parameter of the | | +--- action call out will always be the owner, this allows C++ member functions to | | +--- be used as actions. Defaults to 0. | | +--- @result true if the inherited classes and this instance initialise | | +--- successfully. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---bool | +--- | +---init | +---( | | +---OSObject | | +--- | | +---* | | +---owner | | +---, | | +--- | | +---IOEventSource | | +---:: | | +---Action | | +--- | | +---action | | +--- | | +---= | | +--- | | +---0 | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function checkForWork | | +--- @abstract Pure Virtual member function used by IOWorkLoop for work | | +--- scheduling. | | +--- @discussion This function will be called to request a subclass to check | | +--- it's internal state for any work to do and then to call out the owner/action. | | +--- @param moreP | | +--- Pointer to the more-work output variable. Set to true if this function | | +--- needs to be called again before all its outstanding events have been processed. | | +--- @param wakeupTimeP | | +--- Pointer to no-later wake up time output variable. Return variable to | | +--- indicate when this object wishes to be called again; used for timeouts. | | +--- Note the checkForWork method may be called before the timeout fires. | | +--- Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout | | +--- requested. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---checkForWork | +---( | | +---bool | | +--- | | +---* | | +---moreP | | +---, | | +--- | | +---mach_timespec_t | | +--- | | +---* | | +---wakeupTimeP | | +---) | +--- | +---= | +--- | +---0 | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function setWorkLoop | | +--- @abstract Set'ter for workLoop variable. | | +--- @param workLoop | | +--- Target work-loop of this event source instance. A subclass of | | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | | +--- functions. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---setWorkLoop | +---( | | +---IOWorkLoop | | +--- | | +---* | | +---workLoop | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function setNext | | +--- @abstract Set'ter for eventChainNext variable. | | +--- @param next | | +--- Pointer to another IOEventSource instance. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---setNext | +---( | | +---IOEventSource | | +--- | | +---* | | +---next | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function getNext | | +--- @abstract Get'ter for eventChainNext variable. | | +--- @result value of eventChainNext. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---IOEventSource | +--- | +---* | +---getNext | +---( | | +---) | +--- | +---const | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---public | +---: | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function setAction | | +--- @abstract Set'ter for action variable. | | +--- @param action | | +--- Pointer to a C function of type IOEventSource::Action. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---setAction | +---( | | +---IOEventSource | | +---:: | | +---Action | | +--- | | +---action | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function getAction | | +--- @abstract Get'ter for action variable. | | +--- @result value of action. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---IOEventSource | +---:: | +---Action | +--- | +---getAction | +---( | | +---) | +--- | +---const | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function enable | | +--- @abstract Enable event source. | | +--- @discussion A subclass implementation is expected to respect the enabled | | +--- state when checkForWork is called. Calling this function will cause the | | +--- work-loop to be signalled so that a checkForWork is performed. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---enable | +---( | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function disable | | +--- @abstract Disable event source. | | +--- @discussion A subclass implementation is expected to respect the enabled | | +--- state when checkForWork is called. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---disable | +---( | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function isEnabled | | +--- @abstract Get'ter for enable variable. | | +--- @result true if enabled. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---bool | +--- | +---isEnabled | +---( | | +---) | +--- | +---const | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function getWorkLoop | | +--- @abstract Get'ter for workLoop variable. | | +--- @result value of workLoop. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---IOWorkLoop | +--- | +---* | +---getWorkLoop | +---( | | +---) | +--- | +---const | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function onThread | | +--- @abstract Convenience function for workLoop->onThread. | | +--- @result true if called on the work-loop thread. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---bool | +--- | +---onThread | +---( | | +---) | +--- | +---const | +---; | +--- | +---[ NEWLINE ] | +---} +---; +--- +---[ NEWLINE ] -=: COMPUTED VALUE :=- SUCCESS: 0 VALUE: 0 -=: CPP CHANGES :=- NO CPP CHANGES -=: FOUND MATCH :=- 1 -=: NAMED OBJECTS :=- TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Header NAME: class 3 APIUID: //test_ref/doc/header/class_3.test ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::Header" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::CPPClass NAME: IOEventSource APIUID: ABSTRACT: "<p>Abstract class for all work-loop event sources. " DISCUSSION: "<p>The IOEventSource declares the abstract super class that all event sources must inherit from if an IOWorkLoop is to receive events from them. </p> <p>An event source can represent any event that should cause the work-loop of a device to wake up and perform work. Two examples of event sources are the IOInterruptEventSource which delivers interrupt notifications and IOCommandGate which delivers command requests. </p> <p>A kernel module can always use the work-loop model for serialising access to anything at all. The IOEventSource is used for communicating events to the work-loop, and the chain of event sources should be used to walk the possible event sources and demultipex them. Note a particular instance of an event source may only be a member of 1 linked list chain. If you need to move it between chains than make sure it is removed from the original chain before attempting to move it. </p> <p>The IOEventSource makes no attempt to maintain the consitency of it's internal data across multi-threading. It is assumed that the user of these basic tools will protect the data that these objects represent in some sort of device wide instance lock. For example the IOWorkLoop maintains the event chain by handing off change request to its own thread and thus single threading access to its state. </p> <p>All subclasses of the IOEventSource are expected to implement the checkForWork() member function. </p> <p>checkForWork() is the key method in this class. It is called by some work-loop when convienient and is expected to evaluate it's internal state and determine if an event has occured since the last call. In the case of an event having occurred then the instance defined target(owner)/action will be called. The action is stored as an ordinary C function pointer but the first parameter is always the owner. This means that a C++ member function can be used as an action function though this depends on the ABI. </p> <p>Although the eventChainNext variable contains a reference to the next event source in the chain this reference is not retained. The list 'owner' i.e. the client that creates the event, not the work-loop, is expected to retain the source. " UPDATED: "March 07, 2007" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: " sandwiches<br> " XMLTHROWS: "<throw> sandwiches</throw> " UPDATED: "March 07, 2007" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::CPPClass" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: <p><b>Superclass</b></p> <p><!-- a logicalPath="//test_ref/cpp/cl/OSObject //test_ref/cpp/tdef/OSObject //test_ref/cpp/tag/OSObject //test_ref/cpp/struct/OSObject //test_ref/cpp/intf/OSObject //test_ref/cpp/econst/OSObject //test_ref/cpp/data/OSObject //test_ref/cpp/clconst/OSObject //test_ref/cpp/instm/OSObject //test_ref/cpp/clm/OSObject //test_ref/cpp/intfcm/OSObject //test_ref/cpp/intfm/OSObject //test_ref/cpp/func/OSObject //test_ref/cpp/ftmplt/OSObject //test_ref/cpp/defn/OSObject //test_ref/cpp/macro/OSObject //test_ref/doc/com/intfm/OSObject //test_ref/doc/anysymbol/OSObject" machineGenerated="true" -->OSObject<!-- /a --></p> <p><b>Declared In</b></p><p><a href="../../index.html" logicalPath="//test_ref/doc/header/class_3.test" target="_top" machineGenerated="true">class 3</a></p> LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: getID APIUID: //test_ref/cpp/instm/IOEventSource/getID/int/() ABSTRACT: "" DISCUSSION: "<p>HeaderDoc test of multiline inline function definition." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " int" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: init APIUID: //test_ref/cpp/instm/IOEventSource/init/bool/(OSObject*,IOEventSource::Action) ABSTRACT: "<p>Primary initialiser for the IOEventSource class. " DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: " halibut<br> mackeral<br> peanuts<br> " XMLTHROWS: "<throw> halibut</throw> <throw> mackeral</throw> <throw> peanuts</throw> " UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual bool" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: PARSED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: owner TYPE: OSObject * APIUID: ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: action TYPE: IOEventSource :: Action APIUID: ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TAGGED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: owner TYPE: APIUID: //test_ref/doc/functionparam/IOEventSource/init/owner ABSTRACT: "" DISCUSSION: "<p>Owner of this instance of an event source. Used as the first parameter of the action callout. Owner will generally be an OSObject it doesn't have to be as no member functions will be called directly in it. It can just be a refcon for a client routine." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: action TYPE: APIUID: //test_ref/doc/functionparam/IOEventSource/init/action ABSTRACT: "" DISCUSSION: "<p>Pointer to C call out function. Action is a pointer to a C function that gets called when this event source has outstanding work. It will usually be called by the checkForWork member function. The first parameter of the action call out will always be the owner, this allows C++ member functions to be used as actions. Defaults to 0." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: checkForWork APIUID: //test_ref/cpp/instm/IOEventSource/checkForWork/void/(bool*,mach_timespec_t*) ABSTRACT: "<p>Pure Virtual member function used by IOWorkLoop for work scheduling. " DISCUSSION: "<p>This function will be called to request a subclass to check it's internal state for any work to do and then to call out the owner/action. " UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual void" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: PARSED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: moreP TYPE: bool * APIUID: ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: wakeupTimeP TYPE: mach_timespec_t * APIUID: ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TAGGED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: moreP TYPE: APIUID: //test_ref/doc/functionparam/IOEventSource/checkForWork/moreP ABSTRACT: "" DISCUSSION: "<p>Pointer to the more-work output variable. Set to true if this function needs to be called again before all its outstanding events have been processed." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: wakeupTimeP TYPE: APIUID: //test_ref/doc/functionparam/IOEventSource/checkForWork/wakeupTimeP ABSTRACT: "" DISCUSSION: "<p>Pointer to no-later wake up time output variable. Return variable to indicate when this object wishes to be called again; used for timeouts. Note the checkForWork method may be called before the timeout fires. Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout requested." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: setWorkLoop APIUID: //test_ref/cpp/instm/IOEventSource/setWorkLoop/void/(IOWorkLoop*) ABSTRACT: "<p>Set'ter for workLoop variable. " DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual void" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: PARSED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: workLoop TYPE: IOWorkLoop * APIUID: ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TAGGED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: workLoop TYPE: APIUID: //test_ref/doc/functionparam/IOEventSource/setWorkLoop/workLoop ABSTRACT: "" DISCUSSION: "<p>Target work-loop of this event source instance. A subclass of IOWorkLoop that at least reacts to signalWorkAvailable() and onThread functions." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: setNext APIUID: //test_ref/cpp/instm/IOEventSource/setNext/void/(IOEventSource*) ABSTRACT: "<p>Set'ter for eventChainNext variable. " DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual void" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: PARSED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: next TYPE: IOEventSource * APIUID: ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TAGGED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: next TYPE: APIUID: //test_ref/doc/functionparam/IOEventSource/setNext/next ABSTRACT: "" DISCUSSION: "<p>Pointer to another IOEventSource instance." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: getNext APIUID: //test_ref/cpp/instm/IOEventSource/getNext/IOEventSource*/() ABSTRACT: "<p>Get'ter for eventChainNext variable. " DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual IOEventSource *" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: setAction APIUID: //test_ref/cpp/instm/IOEventSource/setAction/void/(IOEventSource::Action) ABSTRACT: "<p>Set'ter for action variable. " DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "public" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual void" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: PARSED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: action TYPE: IOEventSource :: Action APIUID: ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TAGGED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: action TYPE: APIUID: //test_ref/doc/functionparam/IOEventSource/setAction/action ABSTRACT: "" DISCUSSION: "<p>Pointer to a C function of type IOEventSource::Action." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: getAction APIUID: //test_ref/cpp/instm/IOEventSource/getAction/IOEventSource::Action/() ABSTRACT: "<p>Get'ter for action variable. " DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "public" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual IOEventSource :: Action" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: enable APIUID: //test_ref/cpp/instm/IOEventSource/enable/void/() ABSTRACT: "<p>Enable event source. " DISCUSSION: "<p>A subclass implementation is expected to respect the enabled state when checkForWork is called. Calling this function will cause the work-loop to be signalled so that a checkForWork is performed. " UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "public" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual void" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: disable APIUID: //test_ref/cpp/instm/IOEventSource/disable/void/() ABSTRACT: "<p>Disable event source. " DISCUSSION: "<p>A subclass implementation is expected to respect the enabled state when checkForWork is called. " UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "public" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual void" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: isEnabled APIUID: //test_ref/cpp/instm/IOEventSource/isEnabled/bool/() ABSTRACT: "<p>Get'ter for enable variable. " DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "public" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual bool" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: getWorkLoop APIUID: //test_ref/cpp/instm/IOEventSource/getWorkLoop/IOWorkLoop*/() ABSTRACT: "<p>Get'ter for workLoop variable. " DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "public" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual IOWorkLoop *" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: onThread APIUID: //test_ref/cpp/instm/IOEventSource/onThread/bool/() ABSTRACT: "<p>Convenience function for workLoop->onThread. " DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "public" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual bool" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Typedef NAME: Action APIUID: //test_ref/cpp/tdef/IOEventSource/Action ABSTRACT: "" DISCUSSION: "<p>Placeholder type for C++ function overloading discrimination. As the all event sources require an action and it has to be stored somewhere and be of some type, this is that type. " UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "public" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::Typedef" MASTERENUM: "0" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: PARSED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: owner TYPE: OSObject * APIUID: ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: ... TYPE: APIUID: ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TAGGED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: owner TYPE: APIUID: //test_ref/doc/typedeffield/IOEventSource/Action/owner ABSTRACT: "" DISCUSSION: "<p>Target of the function, can be used as a refcon. The owner is set during initialisation. Note if a C++ function was specified this parameter is implicitly the first paramter in the target member function's parameter list." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS PROPERTY: 0 IS BLOCK: OBJECT TYPE: HeaderDoc::Var NAME: eventChainNext APIUID: //test_ref/cpp/data/IOEventSource/eventChainNext ABSTRACT: "" DISCUSSION: "<p>The next event source in the event chain. nil at end of chain." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "IOEventSource *" LINENUM: "" CLASS: "HeaderDoc::Var" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS PROPERTY: 0 IS BLOCK: OBJECT TYPE: HeaderDoc::Var NAME: owner APIUID: //test_ref/cpp/data/IOEventSource/owner ABSTRACT: "" DISCUSSION: "<p>The owner object called when an event has been delivered.</p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "OSObject *" LINENUM: "" CLASS: "HeaderDoc::Var" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "The owner object called when an event has been delivered." HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS PROPERTY: 0 IS BLOCK: OBJECT TYPE: HeaderDoc::Var NAME: action APIUID: //test_ref/cpp/data/IOEventSource/action ABSTRACT: "" DISCUSSION: "<p>The action method called when an event has been delivered" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "Action" LINENUM: "" CLASS: "HeaderDoc::Var" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS PROPERTY: 0 IS BLOCK: OBJECT TYPE: HeaderDoc::Var NAME: enabled APIUID: //test_ref/cpp/data/IOEventSource/enabled ABSTRACT: "" DISCUSSION: "<p>Is this event source enabled to deliver requests to the work-loop." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "bool" LINENUM: "" CLASS: "HeaderDoc::Var" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS PROPERTY: 0 IS BLOCK: OBJECT TYPE: HeaderDoc::Var NAME: workLoop APIUID: //test_ref/cpp/data/IOEventSource/workLoop ABSTRACT: "" DISCUSSION: "<p>What is the work-loop for this event source.</p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "IOWorkLoop *" LINENUM: "" CLASS: "HeaderDoc::Var" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "What is the work-loop for this event source." HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: -=: NAMED OBJECT PARSE TREES :=- OBJECT: IOEventSource (HeaderDoc::CPPClass) +---class +--- +---IOEventSource +--- +---: +--- +---public +--- +---OSObject +---[ NEWLINE ] +---{ | +---[ NEWLINE ] | +--- | +-*-OSDeclareAbstractStructors (HAS STATE) | +---( | | +---IOEventSource | | +---) | +---[ NEWLINE ] | +--- | +---friend | +--- | +---class | +--- | +---IOWorkLoop | +---; | +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---public | +---: | +---[ NEWLINE ] | +---/* | | +---! | | +--- @typedef Action | | +--- @discussion Placeholder type for C++ function overloading discrimination. | | +--- As the all event sources require an action and it has to be stored somewhere | | +--- and be of some type, this is that type. | | +--- @param owner | | +--- Target of the function, can be used as a refcon. The owner is set | | +--- during initialisation. Note if a C++ function was specified this parameter | | +--- is implicitly the first paramter in the target member function's | | +--- parameter list. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-typedef (HAS STATE) | +--- | +---void | +--- | +---( | | +---* | | +---Action | | +---) | +---( | | +---OSObject | | +--- | | +---* | | +---owner | | +---, | | +--- | | +---. | | +---. | | +---. | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---protected | +---: | +---[ NEWLINE ] | +---/* | | +---! | | +--- @var eventChainNext | | +--- The next event source in the event chain. nil at end of chain. | | +---*/ | +---[ NEWLINE ] | +--- | +-*-IOEventSource (HAS STATE) | +--- | +---* | +---eventChainNext | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @var owner The owner object called when an event has been delivered. | | +---*/ | +---[ NEWLINE ] | +--- | +-*-OSObject (HAS STATE) | +--- | +---* | +---owner | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @var action | | +--- The action method called when an event has been delivered | | +---*/ | +---[ NEWLINE ] | +--- | +-*-Action (HAS STATE) | +--- | +---action | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @var enabled | | +--- Is this event source enabled to deliver requests to the work-loop. | | +---*/ | +---[ NEWLINE ] | +--- | +-*-bool (HAS STATE) | +--- | +---enabled | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @var workLoop What is the work-loop for this event source. | | +---*/ | +---[ NEWLINE ] | +--- | +-*-IOWorkLoop (HAS STATE) | +--- | +---* | +---workLoop | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- | | +--- @function getID | | +--- HeaderDoc test of multiline inline function definition. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +-*-int (HAS STATE) | +--- | +---getID | +---( | | +---) | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function init | | +--- @abstract Primary initialiser for the IOEventSource class. | | +--- @throws halibut | | +--- @throws mackeral | | +--- @throws peanuts | | +--- @param owner | | +--- Owner of this instance of an event source. Used as the first parameter | | +--- of the action callout. Owner will generally be an OSObject it doesn't have to | | +--- be as no member functions will be called directly in it. It can just be a | | +--- refcon for a client routine. | | +--- @param action | | +--- Pointer to C call out function. Action is a pointer to a C function | | +--- that gets called when this event source has outstanding work. It will usually | | +--- be called by the checkForWork member function. The first parameter of the | | +--- action call out will always be the owner, this allows C++ member functions to | | +--- be used as actions. Defaults to 0. | | +--- @result true if the inherited classes and this instance initialise | | +--- successfully. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---bool | +--- | +---init | +---( | | +---OSObject | | +--- | | +---* | | +---owner | | +---, | | +--- | | +---IOEventSource | | +---:: | | +---Action | | +--- | | +---action | | +--- | | +---= | | +--- | | +---0 | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function checkForWork | | +--- @abstract Pure Virtual member function used by IOWorkLoop for work | | +--- scheduling. | | +--- @discussion This function will be called to request a subclass to check | | +--- it's internal state for any work to do and then to call out the owner/action. | | +--- @param moreP | | +--- Pointer to the more-work output variable. Set to true if this function | | +--- needs to be called again before all its outstanding events have been processed. | | +--- @param wakeupTimeP | | +--- Pointer to no-later wake up time output variable. Return variable to | | +--- indicate when this object wishes to be called again; used for timeouts. | | +--- Note the checkForWork method may be called before the timeout fires. | | +--- Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout | | +--- requested. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---checkForWork | +---( | | +---bool | | +--- | | +---* | | +---moreP | | +---, | | +--- | | +---mach_timespec_t | | +--- | | +---* | | +---wakeupTimeP | | +---) | +--- | +---= | +--- | +---0 | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function setWorkLoop | | +--- @abstract Set'ter for workLoop variable. | | +--- @param workLoop | | +--- Target work-loop of this event source instance. A subclass of | | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | | +--- functions. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---setWorkLoop | +---( | | +---IOWorkLoop | | +--- | | +---* | | +---workLoop | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function setNext | | +--- @abstract Set'ter for eventChainNext variable. | | +--- @param next | | +--- Pointer to another IOEventSource instance. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---setNext | +---( | | +---IOEventSource | | +--- | | +---* | | +---next | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function getNext | | +--- @abstract Get'ter for eventChainNext variable. | | +--- @result value of eventChainNext. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---IOEventSource | +--- | +---* | +---getNext | +---( | | +---) | +--- | +---const | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---public | +---: | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function setAction | | +--- @abstract Set'ter for action variable. | | +--- @param action | | +--- Pointer to a C function of type IOEventSource::Action. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---setAction | +---( | | +---IOEventSource | | +---:: | | +---Action | | +--- | | +---action | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function getAction | | +--- @abstract Get'ter for action variable. | | +--- @result value of action. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---IOEventSource | +---:: | +---Action | +--- | +---getAction | +---( | | +---) | +--- | +---const | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function enable | | +--- @abstract Enable event source. | | +--- @discussion A subclass implementation is expected to respect the enabled | | +--- state when checkForWork is called. Calling this function will cause the | | +--- work-loop to be signalled so that a checkForWork is performed. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---enable | +---( | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function disable | | +--- @abstract Disable event source. | | +--- @discussion A subclass implementation is expected to respect the enabled | | +--- state when checkForWork is called. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---disable | +---( | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function isEnabled | | +--- @abstract Get'ter for enable variable. | | +--- @result true if enabled. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---bool | +--- | +---isEnabled | +---( | | +---) | +--- | +---const | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function getWorkLoop | | +--- @abstract Get'ter for workLoop variable. | | +--- @result value of workLoop. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---IOWorkLoop | +--- | +---* | +---getWorkLoop | +---( | | +---) | +--- | +---const | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function onThread | | +--- @abstract Convenience function for workLoop->onThread. | | +--- @result true if called on the work-loop thread. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---bool | +--- | +---onThread | +---( | | +---) | +--- | +---const | +---; | +--- | +---[ NEWLINE ] | +---} +---; +--- +---[ NEWLINE ] END OF OBJECT OBJECT: getID (HeaderDoc::Function) +-*-int (HAS STATE) +--- +---getID +---( | +---) +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function init | +--- @abstract Primary initialiser for the IOEventSource class. | +--- @throws halibut | +--- @throws mackeral | +--- @throws peanuts | +--- @param owner | +--- Owner of this instance of an event source. Used as the first parameter | +--- of the action callout. Owner will generally be an OSObject it doesn't have to | +--- be as no member functions will be called directly in it. It can just be a | +--- refcon for a client routine. | +--- @param action | +--- Pointer to C call out function. Action is a pointer to a C function | +--- that gets called when this event source has outstanding work. It will usually | +--- be called by the checkForWork member function. The first parameter of the | +--- action call out will always be the owner, this allows C++ member functions to | +--- be used as actions. Defaults to 0. | +--- @result true if the inherited classes and this instance initialise | +--- successfully. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---init +---( | +---OSObject | +--- | +---* | +---owner | +---, | +--- | +---IOEventSource | +---:: | +---Action | +--- | +---action | +--- | +---= | +--- | +---0 | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function checkForWork | +--- @abstract Pure Virtual member function used by IOWorkLoop for work | +--- scheduling. | +--- @discussion This function will be called to request a subclass to check | +--- it's internal state for any work to do and then to call out the owner/action. | +--- @param moreP | +--- Pointer to the more-work output variable. Set to true if this function | +--- needs to be called again before all its outstanding events have been processed. | +--- @param wakeupTimeP | +--- Pointer to no-later wake up time output variable. Return variable to | +--- indicate when this object wishes to be called again; used for timeouts. | +--- Note the checkForWork method may be called before the timeout fires. | +--- Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout | +--- requested. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---checkForWork +---( | +---bool | +--- | +---* | +---moreP | +---, | +--- | +---mach_timespec_t | +--- | +---* | +---wakeupTimeP | +---) +--- +---= +--- +---0 +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setWorkLoop | +--- @abstract Set'ter for workLoop variable. | +--- @param workLoop | +--- Target work-loop of this event source instance. A subclass of | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | +--- functions. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setWorkLoop +---( | +---IOWorkLoop | +--- | +---* | +---workLoop | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setNext | +--- @abstract Set'ter for eventChainNext variable. | +--- @param next | +--- Pointer to another IOEventSource instance. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: init (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---bool +--- +---init +---( | +---OSObject | +--- | +---* | +---owner | +---, | +--- | +---IOEventSource | +---:: | +---Action | +--- | +---action | +--- | +---= | +--- | +---0 | +---) +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function checkForWork | +--- @abstract Pure Virtual member function used by IOWorkLoop for work | +--- scheduling. | +--- @discussion This function will be called to request a subclass to check | +--- it's internal state for any work to do and then to call out the owner/action. | +--- @param moreP | +--- Pointer to the more-work output variable. Set to true if this function | +--- needs to be called again before all its outstanding events have been processed. | +--- @param wakeupTimeP | +--- Pointer to no-later wake up time output variable. Return variable to | +--- indicate when this object wishes to be called again; used for timeouts. | +--- Note the checkForWork method may be called before the timeout fires. | +--- Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout | +--- requested. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---checkForWork +---( | +---bool | +--- | +---* | +---moreP | +---, | +--- | +---mach_timespec_t | +--- | +---* | +---wakeupTimeP | +---) +--- +---= +--- +---0 +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setWorkLoop | +--- @abstract Set'ter for workLoop variable. | +--- @param workLoop | +--- Target work-loop of this event source instance. A subclass of | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | +--- functions. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setWorkLoop +---( | +---IOWorkLoop | +--- | +---* | +---workLoop | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setNext | +--- @abstract Set'ter for eventChainNext variable. | +--- @param next | +--- Pointer to another IOEventSource instance. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: checkForWork (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---void +--- +---checkForWork +---( | +---bool | +--- | +---* | +---moreP | +---, | +--- | +---mach_timespec_t | +--- | +---* | +---wakeupTimeP | +---) +--- +---= +--- +---0 +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setWorkLoop | +--- @abstract Set'ter for workLoop variable. | +--- @param workLoop | +--- Target work-loop of this event source instance. A subclass of | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | +--- functions. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setWorkLoop +---( | +---IOWorkLoop | +--- | +---* | +---workLoop | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setNext | +--- @abstract Set'ter for eventChainNext variable. | +--- @param next | +--- Pointer to another IOEventSource instance. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: setWorkLoop (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---void +--- +---setWorkLoop +---( | +---IOWorkLoop | +--- | +---* | +---workLoop | +---) +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setNext | +--- @abstract Set'ter for eventChainNext variable. | +--- @param next | +--- Pointer to another IOEventSource instance. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: setNext (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: getNext (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: setAction (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: getAction (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: enable (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: disable (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: isEnabled (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: getWorkLoop (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: onThread (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: Action (HeaderDoc::Typedef) +-*-typedef (HAS STATE) +--- +---void +--- +---( | +---* | +---Action | +---) +---( | +---OSObject | +--- | +---* | +---owner | +---, | +--- | +---. | +---. | +---. | +---) +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---protected +---: +---[ NEWLINE ] +---/* | +---! | +--- @var eventChainNext | +--- The next event source in the event chain. nil at end of chain. | +---*/ +---[ NEWLINE ] +--- +-*-IOEventSource (HAS STATE) +--- +---* +---eventChainNext +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var owner The owner object called when an event has been delivered. | +---*/ +---[ NEWLINE ] +--- +-*-OSObject (HAS STATE) +--- +---* +---owner +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var action | +--- The action method called when an event has been delivered | +---*/ +---[ NEWLINE ] +--- +-*-Action (HAS STATE) +--- +---action +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var enabled | +--- Is this event source enabled to deliver requests to the work-loop. | +---*/ +---[ NEWLINE ] +--- +-*-bool (HAS STATE) +--- +---enabled +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var workLoop What is the work-loop for this event source. | +---*/ +---[ NEWLINE ] +--- +-*-IOWorkLoop (HAS STATE) +--- +---* +---workLoop +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- | +--- @function getID | +--- HeaderDoc test of multiline inline function definition. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +-*-int (HAS STATE) +--- +---getID +---( | +---) +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function init | +--- @abstract Primary initialiser for the IOEventSource class. | +--- @throws halibut | +--- @throws mackeral | +--- @throws peanuts | +--- @param owner | +--- Owner of this instance of an event source. Used as the first parameter | +--- of the action callout. Owner will generally be an OSObject it doesn't have to | +--- be as no member functions will be called directly in it. It can just be a | +--- refcon for a client routine. | +--- @param action | +--- Pointer to C call out function. Action is a pointer to a C function | +--- that gets called when this event source has outstanding work. It will usually | +--- be called by the checkForWork member function. The first parameter of the | +--- action call out will always be the owner, this allows C++ member functions to | +--- be used as actions. Defaults to 0. | +--- @result true if the inherited classes and this instance initialise | +--- successfully. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---init +---( | +---OSObject | +--- | +---* | +---owner | +---, | +--- | +---IOEventSource | +---:: | +---Action | +--- | +---action | +--- | +---= | +--- | +---0 | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function checkForWork | +--- @abstract Pure Virtual member function used by IOWorkLoop for work | +--- scheduling. | +--- @discussion This function will be called to request a subclass to check | +--- it's internal state for any work to do and then to call out the owner/action. | +--- @param moreP | +--- Pointer to the more-work output variable. Set to true if this function | +--- needs to be called again before all its outstanding events have been processed. | +--- @param wakeupTimeP | +--- Pointer to no-later wake up time output variable. Return variable to | +--- indicate when this object wishes to be called again; used for timeouts. | +--- Note the checkForWork method may be called before the timeout fires. | +--- Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout | +--- requested. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---checkForWork +---( | +---bool | +--- | +---* | +---moreP | +---, | +--- | +---mach_timespec_t | +--- | +---* | +---wakeupTimeP | +---) +--- +---= +--- +---0 +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setWorkLoop | +--- @abstract Set'ter for workLoop variable. | +--- @param workLoop | +--- Target work-loop of this event source instance. A subclass of | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | +--- functions. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setWorkLoop +---( | +---IOWorkLoop | +--- | +---* | +---workLoop | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setNext | +--- @abstract Set'ter for eventChainNext variable. | +--- @param next | +--- Pointer to another IOEventSource instance. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: eventChainNext (HeaderDoc::Var) +-*-IOEventSource (HAS STATE) +--- +---* +---eventChainNext +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var owner The owner object called when an event has been delivered. | +---*/ +---[ NEWLINE ] +--- +-*-OSObject (HAS STATE) +--- +---* +---owner +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var action | +--- The action method called when an event has been delivered | +---*/ +---[ NEWLINE ] +--- +-*-Action (HAS STATE) +--- +---action +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var enabled | +--- Is this event source enabled to deliver requests to the work-loop. | +---*/ +---[ NEWLINE ] +--- +-*-bool (HAS STATE) +--- +---enabled +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var workLoop What is the work-loop for this event source. | +---*/ +---[ NEWLINE ] +--- +-*-IOWorkLoop (HAS STATE) +--- +---* +---workLoop +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- | +--- @function getID | +--- HeaderDoc test of multiline inline function definition. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +-*-int (HAS STATE) +--- +---getID +---( | +---) +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function init | +--- @abstract Primary initialiser for the IOEventSource class. | +--- @throws halibut | +--- @throws mackeral | +--- @throws peanuts | +--- @param owner | +--- Owner of this instance of an event source. Used as the first parameter | +--- of the action callout. Owner will generally be an OSObject it doesn't have to | +--- be as no member functions will be called directly in it. It can just be a | +--- refcon for a client routine. | +--- @param action | +--- Pointer to C call out function. Action is a pointer to a C function | +--- that gets called when this event source has outstanding work. It will usually | +--- be called by the checkForWork member function. The first parameter of the | +--- action call out will always be the owner, this allows C++ member functions to | +--- be used as actions. Defaults to 0. | +--- @result true if the inherited classes and this instance initialise | +--- successfully. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---init +---( | +---OSObject | +--- | +---* | +---owner | +---, | +--- | +---IOEventSource | +---:: | +---Action | +--- | +---action | +--- | +---= | +--- | +---0 | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function checkForWork | +--- @abstract Pure Virtual member function used by IOWorkLoop for work | +--- scheduling. | +--- @discussion This function will be called to request a subclass to check | +--- it's internal state for any work to do and then to call out the owner/action. | +--- @param moreP | +--- Pointer to the more-work output variable. Set to true if this function | +--- needs to be called again before all its outstanding events have been processed. | +--- @param wakeupTimeP | +--- Pointer to no-later wake up time output variable. Return variable to | +--- indicate when this object wishes to be called again; used for timeouts. | +--- Note the checkForWork method may be called before the timeout fires. | +--- Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout | +--- requested. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---checkForWork +---( | +---bool | +--- | +---* | +---moreP | +---, | +--- | +---mach_timespec_t | +--- | +---* | +---wakeupTimeP | +---) +--- +---= +--- +---0 +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setWorkLoop | +--- @abstract Set'ter for workLoop variable. | +--- @param workLoop | +--- Target work-loop of this event source instance. A subclass of | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | +--- functions. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setWorkLoop +---( | +---IOWorkLoop | +--- | +---* | +---workLoop | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setNext | +--- @abstract Set'ter for eventChainNext variable. | +--- @param next | +--- Pointer to another IOEventSource instance. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: owner (HeaderDoc::Var) +-*-OSObject (HAS STATE) +--- +---* +---owner +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var action | +--- The action method called when an event has been delivered | +---*/ +---[ NEWLINE ] +--- +-*-Action (HAS STATE) +--- +---action +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var enabled | +--- Is this event source enabled to deliver requests to the work-loop. | +---*/ +---[ NEWLINE ] +--- +-*-bool (HAS STATE) +--- +---enabled +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var workLoop What is the work-loop for this event source. | +---*/ +---[ NEWLINE ] +--- +-*-IOWorkLoop (HAS STATE) +--- +---* +---workLoop +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- | +--- @function getID | +--- HeaderDoc test of multiline inline function definition. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +-*-int (HAS STATE) +--- +---getID +---( | +---) +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function init | +--- @abstract Primary initialiser for the IOEventSource class. | +--- @throws halibut | +--- @throws mackeral | +--- @throws peanuts | +--- @param owner | +--- Owner of this instance of an event source. Used as the first parameter | +--- of the action callout. Owner will generally be an OSObject it doesn't have to | +--- be as no member functions will be called directly in it. It can just be a | +--- refcon for a client routine. | +--- @param action | +--- Pointer to C call out function. Action is a pointer to a C function | +--- that gets called when this event source has outstanding work. It will usually | +--- be called by the checkForWork member function. The first parameter of the | +--- action call out will always be the owner, this allows C++ member functions to | +--- be used as actions. Defaults to 0. | +--- @result true if the inherited classes and this instance initialise | +--- successfully. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---init +---( | +---OSObject | +--- | +---* | +---owner | +---, | +--- | +---IOEventSource | +---:: | +---Action | +--- | +---action | +--- | +---= | +--- | +---0 | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function checkForWork | +--- @abstract Pure Virtual member function used by IOWorkLoop for work | +--- scheduling. | +--- @discussion This function will be called to request a subclass to check | +--- it's internal state for any work to do and then to call out the owner/action. | +--- @param moreP | +--- Pointer to the more-work output variable. Set to true if this function | +--- needs to be called again before all its outstanding events have been processed. | +--- @param wakeupTimeP | +--- Pointer to no-later wake up time output variable. Return variable to | +--- indicate when this object wishes to be called again; used for timeouts. | +--- Note the checkForWork method may be called before the timeout fires. | +--- Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout | +--- requested. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---checkForWork +---( | +---bool | +--- | +---* | +---moreP | +---, | +--- | +---mach_timespec_t | +--- | +---* | +---wakeupTimeP | +---) +--- +---= +--- +---0 +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setWorkLoop | +--- @abstract Set'ter for workLoop variable. | +--- @param workLoop | +--- Target work-loop of this event source instance. A subclass of | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | +--- functions. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setWorkLoop +---( | +---IOWorkLoop | +--- | +---* | +---workLoop | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setNext | +--- @abstract Set'ter for eventChainNext variable. | +--- @param next | +--- Pointer to another IOEventSource instance. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: action (HeaderDoc::Var) +-*-Action (HAS STATE) +--- +---action +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var enabled | +--- Is this event source enabled to deliver requests to the work-loop. | +---*/ +---[ NEWLINE ] +--- +-*-bool (HAS STATE) +--- +---enabled +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var workLoop What is the work-loop for this event source. | +---*/ +---[ NEWLINE ] +--- +-*-IOWorkLoop (HAS STATE) +--- +---* +---workLoop +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- | +--- @function getID | +--- HeaderDoc test of multiline inline function definition. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +-*-int (HAS STATE) +--- +---getID +---( | +---) +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function init | +--- @abstract Primary initialiser for the IOEventSource class. | +--- @throws halibut | +--- @throws mackeral | +--- @throws peanuts | +--- @param owner | +--- Owner of this instance of an event source. Used as the first parameter | +--- of the action callout. Owner will generally be an OSObject it doesn't have to | +--- be as no member functions will be called directly in it. It can just be a | +--- refcon for a client routine. | +--- @param action | +--- Pointer to C call out function. Action is a pointer to a C function | +--- that gets called when this event source has outstanding work. It will usually | +--- be called by the checkForWork member function. The first parameter of the | +--- action call out will always be the owner, this allows C++ member functions to | +--- be used as actions. Defaults to 0. | +--- @result true if the inherited classes and this instance initialise | +--- successfully. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---init +---( | +---OSObject | +--- | +---* | +---owner | +---, | +--- | +---IOEventSource | +---:: | +---Action | +--- | +---action | +--- | +---= | +--- | +---0 | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function checkForWork | +--- @abstract Pure Virtual member function used by IOWorkLoop for work | +--- scheduling. | +--- @discussion This function will be called to request a subclass to check | +--- it's internal state for any work to do and then to call out the owner/action. | +--- @param moreP | +--- Pointer to the more-work output variable. Set to true if this function | +--- needs to be called again before all its outstanding events have been processed. | +--- @param wakeupTimeP | +--- Pointer to no-later wake up time output variable. Return variable to | +--- indicate when this object wishes to be called again; used for timeouts. | +--- Note the checkForWork method may be called before the timeout fires. | +--- Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout | +--- requested. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---checkForWork +---( | +---bool | +--- | +---* | +---moreP | +---, | +--- | +---mach_timespec_t | +--- | +---* | +---wakeupTimeP | +---) +--- +---= +--- +---0 +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setWorkLoop | +--- @abstract Set'ter for workLoop variable. | +--- @param workLoop | +--- Target work-loop of this event source instance. A subclass of | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | +--- functions. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setWorkLoop +---( | +---IOWorkLoop | +--- | +---* | +---workLoop | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setNext | +--- @abstract Set'ter for eventChainNext variable. | +--- @param next | +--- Pointer to another IOEventSource instance. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: enabled (HeaderDoc::Var) +-*-bool (HAS STATE) +--- +---enabled +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var workLoop What is the work-loop for this event source. | +---*/ +---[ NEWLINE ] +--- +-*-IOWorkLoop (HAS STATE) +--- +---* +---workLoop +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- | +--- @function getID | +--- HeaderDoc test of multiline inline function definition. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +-*-int (HAS STATE) +--- +---getID +---( | +---) +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function init | +--- @abstract Primary initialiser for the IOEventSource class. | +--- @throws halibut | +--- @throws mackeral | +--- @throws peanuts | +--- @param owner | +--- Owner of this instance of an event source. Used as the first parameter | +--- of the action callout. Owner will generally be an OSObject it doesn't have to | +--- be as no member functions will be called directly in it. It can just be a | +--- refcon for a client routine. | +--- @param action | +--- Pointer to C call out function. Action is a pointer to a C function | +--- that gets called when this event source has outstanding work. It will usually | +--- be called by the checkForWork member function. The first parameter of the | +--- action call out will always be the owner, this allows C++ member functions to | +--- be used as actions. Defaults to 0. | +--- @result true if the inherited classes and this instance initialise | +--- successfully. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---init +---( | +---OSObject | +--- | +---* | +---owner | +---, | +--- | +---IOEventSource | +---:: | +---Action | +--- | +---action | +--- | +---= | +--- | +---0 | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function checkForWork | +--- @abstract Pure Virtual member function used by IOWorkLoop for work | +--- scheduling. | +--- @discussion This function will be called to request a subclass to check | +--- it's internal state for any work to do and then to call out the owner/action. | +--- @param moreP | +--- Pointer to the more-work output variable. Set to true if this function | +--- needs to be called again before all its outstanding events have been processed. | +--- @param wakeupTimeP | +--- Pointer to no-later wake up time output variable. Return variable to | +--- indicate when this object wishes to be called again; used for timeouts. | +--- Note the checkForWork method may be called before the timeout fires. | +--- Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout | +--- requested. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---checkForWork +---( | +---bool | +--- | +---* | +---moreP | +---, | +--- | +---mach_timespec_t | +--- | +---* | +---wakeupTimeP | +---) +--- +---= +--- +---0 +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setWorkLoop | +--- @abstract Set'ter for workLoop variable. | +--- @param workLoop | +--- Target work-loop of this event source instance. A subclass of | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | +--- functions. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setWorkLoop +---( | +---IOWorkLoop | +--- | +---* | +---workLoop | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setNext | +--- @abstract Set'ter for eventChainNext variable. | +--- @param next | +--- Pointer to another IOEventSource instance. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: workLoop (HeaderDoc::Var) +-*-IOWorkLoop (HAS STATE) +--- +---* +---workLoop +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- | +--- @function getID | +--- HeaderDoc test of multiline inline function definition. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +-*-int (HAS STATE) +--- +---getID +---( | +---) +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function init | +--- @abstract Primary initialiser for the IOEventSource class. | +--- @throws halibut | +--- @throws mackeral | +--- @throws peanuts | +--- @param owner | +--- Owner of this instance of an event source. Used as the first parameter | +--- of the action callout. Owner will generally be an OSObject it doesn't have to | +--- be as no member functions will be called directly in it. It can just be a | +--- refcon for a client routine. | +--- @param action | +--- Pointer to C call out function. Action is a pointer to a C function | +--- that gets called when this event source has outstanding work. It will usually | +--- be called by the checkForWork member function. The first parameter of the | +--- action call out will always be the owner, this allows C++ member functions to | +--- be used as actions. Defaults to 0. | +--- @result true if the inherited classes and this instance initialise | +--- successfully. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---init +---( | +---OSObject | +--- | +---* | +---owner | +---, | +--- | +---IOEventSource | +---:: | +---Action | +--- | +---action | +--- | +---= | +--- | +---0 | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function checkForWork | +--- @abstract Pure Virtual member function used by IOWorkLoop for work | +--- scheduling. | +--- @discussion This function will be called to request a subclass to check | +--- it's internal state for any work to do and then to call out the owner/action. | +--- @param moreP | +--- Pointer to the more-work output variable. Set to true if this function | +--- needs to be called again before all its outstanding events have been processed. | +--- @param wakeupTimeP | +--- Pointer to no-later wake up time output variable. Return variable to | +--- indicate when this object wishes to be called again; used for timeouts. | +--- Note the checkForWork method may be called before the timeout fires. | +--- Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout | +--- requested. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---checkForWork +---( | +---bool | +--- | +---* | +---moreP | +---, | +--- | +---mach_timespec_t | +--- | +---* | +---wakeupTimeP | +---) +--- +---= +--- +---0 +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setWorkLoop | +--- @abstract Set'ter for workLoop variable. | +--- @param workLoop | +--- Target work-loop of this event source instance. A subclass of | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | +--- functions. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setWorkLoop +---( | +---IOWorkLoop | +--- | +---* | +---workLoop | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setNext | +--- @abstract Set'ter for eventChainNext variable. | +--- @param next | +--- Pointer to another IOEventSource instance. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT -=: HTML OUTPUT OF PARSE TREES :=- OBJECT: IOEventSource (HeaderDoc::CPPClass) <span class="keyword">class</span> <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a --> : <span class="keyword">public</span> <!-- a logicalPath="//test_ref/cpp/cl/OSObject //test_ref/cpp/tdef/OSObject //test_ref/cpp/tag/OSObject //test_ref/cpp/struct/OSObject //test_ref/cpp/intf/OSObject //test_ref/doc/anysymbol/OSObject" machineGenerated="true" --><span class="type">OSObject</span><!-- /a --> { <!-- a logicalPath="//test_ref/cpp/instm/OSDeclareAbstractStructors //test_ref/cpp/clm/OSDeclareAbstractStructors //test_ref/cpp/intfcm/OSDeclareAbstractStructors //test_ref/cpp/intfm/OSDeclareAbstractStructors //test_ref/cpp/func/OSDeclareAbstractStructors //test_ref/cpp/ftmplt/OSDeclareAbstractStructors //test_ref/cpp/defn/OSDeclareAbstractStructors //test_ref/cpp/macro/OSDeclareAbstractStructors //test_ref/doc/anysymbol/OSDeclareAbstractStructors" machineGenerated="true" --><span class="function">OSDeclareAbstractStructors</span><!-- /a -->( <span class="param">IOEventSource</span>) <span class="keyword">friend</span> <span class="keyword">class</span> <!-- a logicalPath="//test_ref/cpp/econst/IOWorkLoop //test_ref/cpp/data/IOWorkLoop //test_ref/cpp/clconst/IOWorkLoop " machineGenerated="true" --><span class="var">IOWorkLoop</span><!-- /a -->; <span class="keyword">public</span>: <span class="comment">/*! @typedef Action @discussion Placeholder type for C++ function overloading discrimination. As the all event sources require an action and it has to be stored somewhere and be of some type, this is that type. @param owner Target of the function, can be used as a refcon. The owner is set during initialisation. Note if a C++ function was specified this parameter is implicitly the first paramter in the target member function's parameter list.</span> <span class="comment">*/</span> <span class="keyword">typedef</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> (<span class="type">*</span><!-- a logicalPath="//test_ref/cpp/instm/Action //test_ref/cpp/clm/Action //test_ref/cpp/intfcm/Action //test_ref/cpp/intfm/Action //test_ref/cpp/func/Action //test_ref/cpp/ftmplt/Action //test_ref/cpp/defn/Action //test_ref/cpp/macro/Action //test_ref/doc/anysymbol/Action" machineGenerated="true" --><span class="function">Action</span><!-- /a -->)( <!-- a logicalPath="//test_ref/cpp/cl/OSObject //test_ref/cpp/tdef/OSObject //test_ref/cpp/tag/OSObject //test_ref/cpp/struct/OSObject //test_ref/cpp/intf/OSObject //test_ref/doc/anysymbol/OSObject" machineGenerated="true" --><span class="type">OSObject</span><!-- /a --> <span class="type">*</span><span class="param">owner</span>, ...); <span class="keyword">protected</span>: <span class="comment">/*! @var eventChainNext </span> <span class="comment">*/</span> <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a --> <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/econst/eventChainNext //test_ref/cpp/data/eventChainNext //test_ref/cpp/clconst/eventChainNext " machineGenerated="true" --><span class="var">eventChainNext</span><!-- /a -->; <span class="comment">/*! @var owner The owner object called when an event has been delivered. </span> <span class="comment">*/</span> <!-- a logicalPath="//test_ref/cpp/cl/OSObject //test_ref/cpp/tdef/OSObject //test_ref/cpp/tag/OSObject //test_ref/cpp/struct/OSObject //test_ref/cpp/intf/OSObject //test_ref/doc/anysymbol/OSObject" machineGenerated="true" --><span class="type">OSObject</span><!-- /a --> <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/econst/owner //test_ref/cpp/data/owner //test_ref/cpp/clconst/owner " machineGenerated="true" --><span class="var">owner</span><!-- /a -->; <span class="comment">/*! @var action</span> <span class="comment">*/</span> <!-- a logicalPath="//test_ref/cpp/cl/Action //test_ref/cpp/tdef/Action //test_ref/cpp/tag/Action //test_ref/cpp/struct/Action //test_ref/cpp/intf/Action //test_ref/doc/anysymbol/Action" machineGenerated="true" --><span class="type">Action</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/econst/action //test_ref/cpp/data/action //test_ref/cpp/clconst/action " machineGenerated="true" --><span class="var">action</span><!-- /a -->; <span class="comment">/*! @var enabled </span> <span class="comment">*/</span> <!-- a logicalPath="//test_ref/cpp/cl/bool //test_ref/cpp/tdef/bool //test_ref/cpp/tag/bool //test_ref/cpp/struct/bool //test_ref/cpp/intf/bool //test_ref/doc/anysymbol/bool" machineGenerated="true" --><span class="type">bool</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/econst/enabled //test_ref/cpp/data/enabled //test_ref/cpp/clconst/enabled " machineGenerated="true" --><span class="var">enabled</span><!-- /a -->; <span class="comment">/*! @var workLoop What is the work-loop for this event source. </span> <span class="comment">*/</span> <!-- a logicalPath="//test_ref/cpp/cl/IOWorkLoop //test_ref/cpp/tdef/IOWorkLoop //test_ref/cpp/tag/IOWorkLoop //test_ref/cpp/struct/IOWorkLoop //test_ref/cpp/intf/IOWorkLoop //test_ref/doc/anysymbol/IOWorkLoop" machineGenerated="true" --><span class="type">IOWorkLoop</span><!-- /a --> <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/econst/workLoop //test_ref/cpp/data/workLoop //test_ref/cpp/clconst/workLoop " machineGenerated="true" --><span class="var">workLoop</span><!-- /a -->; <span class="comment">/*! @function getID HeaderDoc test of multiline inline function definition.</span> <span class="comment">*/</span> <!-- a logicalPath="//test_ref/cpp/cl/int //test_ref/cpp/tdef/int //test_ref/cpp/tag/int //test_ref/cpp/struct/int //test_ref/cpp/intf/int //test_ref/doc/anysymbol/int" machineGenerated="true" --><span class="type">int</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/getID //test_ref/cpp/clm/getID //test_ref/cpp/intfcm/getID //test_ref/cpp/intfm/getID //test_ref/cpp/func/getID //test_ref/cpp/ftmplt/getID //test_ref/cpp/defn/getID //test_ref/cpp/macro/getID //test_ref/doc/anysymbol/getID" machineGenerated="true" --><span class="function">getID</span><!-- /a -->() <span class="comment">/*! @function init @abstract Primary initialiser for the IOEventSource class. @throws halibut @throws mackeral @throws peanuts @param owner Owner of this instance of an event source. Used as the first parameter of the action callout. Owner will generally be an OSObject it doesn't have to be as no member functions will be called directly in it. It can just be a refcon for a client routine. @param action Pointer to C call out function. Action is a pointer to a C function that gets called when this event source has outstanding work. It will usually be called by the checkForWork member function. The first parameter of the action call out will always be the owner, this allows C++ member functions to be used as actions. Defaults to 0. @result true if the inherited classes and this instance initialise successfully.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/bool //test_ref/cpp/tdef/bool //test_ref/cpp/tag/bool //test_ref/cpp/struct/bool //test_ref/cpp/intf/bool //test_ref/doc/anysymbol/bool" machineGenerated="true" --><span class="type">bool</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/init //test_ref/cpp/clm/init //test_ref/cpp/intfcm/init //test_ref/cpp/intfm/init //test_ref/cpp/func/init //test_ref/cpp/ftmplt/init //test_ref/cpp/defn/init //test_ref/cpp/macro/init //test_ref/doc/anysymbol/init" machineGenerated="true" --><span class="function">init</span><!-- /a -->( <!-- a logicalPath="//test_ref/cpp/cl/OSObject //test_ref/cpp/tdef/OSObject //test_ref/cpp/tag/OSObject //test_ref/cpp/struct/OSObject //test_ref/cpp/intf/OSObject //test_ref/doc/anysymbol/OSObject" machineGenerated="true" --><span class="type">OSObject</span><!-- /a --> <span class="type">*</span><span class="param">owner</span>, <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a -->::<!-- a logicalPath="//test_ref/cpp/cl/Action //test_ref/cpp/tdef/Action //test_ref/cpp/tag/Action //test_ref/cpp/struct/Action //test_ref/cpp/intf/Action //test_ref/doc/anysymbol/Action" machineGenerated="true" --><span class="type">Action</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/cl/action //test_ref/cpp/tdef/action //test_ref/cpp/tag/action //test_ref/cpp/struct/action //test_ref/cpp/intf/action //test_ref/doc/anysymbol/action" machineGenerated="true" --><span class="type">action</span><!-- /a --> = <span class="number">0</span>); <span class="comment">/*! @function checkForWork @abstract Pure Virtual member function used by IOWorkLoop for work scheduling. @discussion This function will be called to request a subclass to check it's internal state for any work to do and then to call out the owner/action. @param moreP Pointer to the more-work output variable. Set to true if this function needs to be called again before all its outstanding events have been processed. @param wakeupTimeP Pointer to no-later wake up time output variable. Return variable to indicate when this object wishes to be called again; used for timeouts. Note the checkForWork method may be called before the timeout fires. Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout requested.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/checkForWork //test_ref/cpp/clm/checkForWork //test_ref/cpp/intfcm/checkForWork //test_ref/cpp/intfm/checkForWork //test_ref/cpp/func/checkForWork //test_ref/cpp/ftmplt/checkForWork //test_ref/cpp/defn/checkForWork //test_ref/cpp/macro/checkForWork //test_ref/doc/anysymbol/checkForWork" machineGenerated="true" --><span class="function">checkForWork</span><!-- /a -->( <!-- a logicalPath="//test_ref/cpp/cl/bool //test_ref/cpp/tdef/bool //test_ref/cpp/tag/bool //test_ref/cpp/struct/bool //test_ref/cpp/intf/bool //test_ref/doc/anysymbol/bool" machineGenerated="true" --><span class="type">bool</span><!-- /a --> <span class="type">*</span><span class="param">moreP</span>, <!-- a logicalPath="//test_ref/cpp/cl/mach_timespec_t //test_ref/cpp/tdef/mach_timespec_t //test_ref/cpp/tag/mach_timespec_t //test_ref/cpp/struct/mach_timespec_t //test_ref/cpp/intf/mach_timespec_t //test_ref/doc/anysymbol/mach_timespec_t" machineGenerated="true" --><span class="type">mach_timespec_t</span><!-- /a --> <span class="type">*</span><span class="param">wakeupTimeP</span>) = <span class="number">0</span>; <span class="comment">/*! @function setWorkLoop @abstract Set'ter for workLoop variable. @param workLoop Target work-loop of this event source instance. A subclass of IOWorkLoop that at least reacts to signalWorkAvailable() and onThread functions.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/setWorkLoop //test_ref/cpp/clm/setWorkLoop //test_ref/cpp/intfcm/setWorkLoop //test_ref/cpp/intfm/setWorkLoop //test_ref/cpp/func/setWorkLoop //test_ref/cpp/ftmplt/setWorkLoop //test_ref/cpp/defn/setWorkLoop //test_ref/cpp/macro/setWorkLoop //test_ref/doc/anysymbol/setWorkLoop" machineGenerated="true" --><span class="function">setWorkLoop</span><!-- /a -->( <!-- a logicalPath="//test_ref/cpp/cl/IOWorkLoop //test_ref/cpp/tdef/IOWorkLoop //test_ref/cpp/tag/IOWorkLoop //test_ref/cpp/struct/IOWorkLoop //test_ref/cpp/intf/IOWorkLoop //test_ref/doc/anysymbol/IOWorkLoop" machineGenerated="true" --><span class="type">IOWorkLoop</span><!-- /a --> <span class="type">*</span><span class="param">workLoop</span>); <span class="comment">/*! @function setNext @abstract Set'ter for eventChainNext variable. @param next Pointer to another IOEventSource instance.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/setNext //test_ref/cpp/clm/setNext //test_ref/cpp/intfcm/setNext //test_ref/cpp/intfm/setNext //test_ref/cpp/func/setNext //test_ref/cpp/ftmplt/setNext //test_ref/cpp/defn/setNext //test_ref/cpp/macro/setNext //test_ref/doc/anysymbol/setNext" machineGenerated="true" --><span class="function">setNext</span><!-- /a -->( <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a --> <span class="type">*</span><span class="param">next</span>); <span class="comment">/*! @function getNext @abstract Get'ter for eventChainNext variable. @result value of eventChainNext.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a --> <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/instm/getNext //test_ref/cpp/clm/getNext //test_ref/cpp/intfcm/getNext //test_ref/cpp/intfm/getNext //test_ref/cpp/func/getNext //test_ref/cpp/ftmplt/getNext //test_ref/cpp/defn/getNext //test_ref/cpp/macro/getNext //test_ref/doc/anysymbol/getNext" machineGenerated="true" --><span class="function">getNext</span><!-- /a -->() <span class="keyword">const</span>; <span class="keyword">public</span>: <span class="comment">/*! @function setAction @abstract Set'ter for action variable. @param action Pointer to a C function of type IOEventSource::Action.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/setAction //test_ref/cpp/clm/setAction //test_ref/cpp/intfcm/setAction //test_ref/cpp/intfm/setAction //test_ref/cpp/func/setAction //test_ref/cpp/ftmplt/setAction //test_ref/cpp/defn/setAction //test_ref/cpp/macro/setAction //test_ref/doc/anysymbol/setAction" machineGenerated="true" --><span class="function">setAction</span><!-- /a -->( <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a -->::<!-- a logicalPath="//test_ref/cpp/cl/Action //test_ref/cpp/tdef/Action //test_ref/cpp/tag/Action //test_ref/cpp/struct/Action //test_ref/cpp/intf/Action //test_ref/doc/anysymbol/Action" machineGenerated="true" --><span class="type">Action</span><!-- /a --> <span class="param">action</span>); <span class="comment">/*! @function getAction @abstract Get'ter for action variable. @result value of action.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a -->::<!-- a logicalPath="//test_ref/cpp/cl/Action //test_ref/cpp/tdef/Action //test_ref/cpp/tag/Action //test_ref/cpp/struct/Action //test_ref/cpp/intf/Action //test_ref/doc/anysymbol/Action" machineGenerated="true" --><span class="type">Action</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/getAction //test_ref/cpp/clm/getAction //test_ref/cpp/intfcm/getAction //test_ref/cpp/intfm/getAction //test_ref/cpp/func/getAction //test_ref/cpp/ftmplt/getAction //test_ref/cpp/defn/getAction //test_ref/cpp/macro/getAction //test_ref/doc/anysymbol/getAction" machineGenerated="true" --><span class="function">getAction</span><!-- /a -->() <span class="keyword">const</span>; <span class="comment">/*! @function enable @abstract Enable event source. @discussion A subclass implementation is expected to respect the enabled state when checkForWork is called. Calling this function will cause the work-loop to be signalled so that a checkForWork is performed.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/enable //test_ref/cpp/clm/enable //test_ref/cpp/intfcm/enable //test_ref/cpp/intfm/enable //test_ref/cpp/func/enable //test_ref/cpp/ftmplt/enable //test_ref/cpp/defn/enable //test_ref/cpp/macro/enable //test_ref/doc/anysymbol/enable" machineGenerated="true" --><span class="function">enable</span><!-- /a -->(); <span class="comment">/*! @function disable @abstract Disable event source. @discussion A subclass implementation is expected to respect the enabled state when checkForWork is called.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/disable //test_ref/cpp/clm/disable //test_ref/cpp/intfcm/disable //test_ref/cpp/intfm/disable //test_ref/cpp/func/disable //test_ref/cpp/ftmplt/disable //test_ref/cpp/defn/disable //test_ref/cpp/macro/disable //test_ref/doc/anysymbol/disable" machineGenerated="true" --><span class="function">disable</span><!-- /a -->(); <span class="comment">/*! @function isEnabled @abstract Get'ter for enable variable. @result true if enabled.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/bool //test_ref/cpp/tdef/bool //test_ref/cpp/tag/bool //test_ref/cpp/struct/bool //test_ref/cpp/intf/bool //test_ref/doc/anysymbol/bool" machineGenerated="true" --><span class="type">bool</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/isEnabled //test_ref/cpp/clm/isEnabled //test_ref/cpp/intfcm/isEnabled //test_ref/cpp/intfm/isEnabled //test_ref/cpp/func/isEnabled //test_ref/cpp/ftmplt/isEnabled //test_ref/cpp/defn/isEnabled //test_ref/cpp/macro/isEnabled //test_ref/doc/anysymbol/isEnabled" machineGenerated="true" --><span class="function">isEnabled</span><!-- /a -->() <span class="keyword">const</span>; <span class="comment">/*! @function getWorkLoop @abstract Get'ter for workLoop variable. @result value of workLoop.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/IOWorkLoop //test_ref/cpp/tdef/IOWorkLoop //test_ref/cpp/tag/IOWorkLoop //test_ref/cpp/struct/IOWorkLoop //test_ref/cpp/intf/IOWorkLoop //test_ref/doc/anysymbol/IOWorkLoop" machineGenerated="true" --><span class="type">IOWorkLoop</span><!-- /a --> <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/instm/getWorkLoop //test_ref/cpp/clm/getWorkLoop //test_ref/cpp/intfcm/getWorkLoop //test_ref/cpp/intfm/getWorkLoop //test_ref/cpp/func/getWorkLoop //test_ref/cpp/ftmplt/getWorkLoop //test_ref/cpp/defn/getWorkLoop //test_ref/cpp/macro/getWorkLoop //test_ref/doc/anysymbol/getWorkLoop" machineGenerated="true" --><span class="function">getWorkLoop</span><!-- /a -->() <span class="keyword">const</span>; <span class="comment">/*! @function onThread @abstract Convenience function for workLoop->onThread. @result true if called on the work-loop thread.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/bool //test_ref/cpp/tdef/bool //test_ref/cpp/tag/bool //test_ref/cpp/struct/bool //test_ref/cpp/intf/bool //test_ref/doc/anysymbol/bool" machineGenerated="true" --><span class="type">bool</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/onThread //test_ref/cpp/clm/onThread //test_ref/cpp/intfcm/onThread //test_ref/cpp/intfm/onThread //test_ref/cpp/func/onThread //test_ref/cpp/ftmplt/onThread //test_ref/cpp/defn/onThread //test_ref/cpp/macro/onThread //test_ref/doc/anysymbol/onThread" machineGenerated="true" --><span class="function">onThread</span><!-- /a -->() <span class="keyword">const</span>; }; END OF OBJECT OBJECT: getID (HeaderDoc::Function) <!-- a logicalPath="//test_ref/cpp/cl/int //test_ref/cpp/tdef/int //test_ref/cpp/tag/int //test_ref/cpp/struct/int //test_ref/cpp/intf/int //test_ref/doc/anysymbol/int" machineGenerated="true" --><span class="type">int</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/getID //test_ref/cpp/clm/IOEventSource/getID //test_ref/cpp/intfcm/IOEventSource/getID //test_ref/cpp/intfm/IOEventSource/getID //test_ref/cpp/func/getID //test_ref/cpp/ftmplt/IOEventSource/getID //test_ref/cpp/defn/getID //test_ref/cpp/macro/getID //test_ref/doc/anysymbol/getID" machineGenerated="true" --><span class="function">getID</span><!-- /a -->() END OF OBJECT OBJECT: init (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/bool //test_ref/cpp/tdef/bool //test_ref/cpp/tag/bool //test_ref/cpp/struct/bool //test_ref/cpp/intf/bool //test_ref/doc/anysymbol/bool" machineGenerated="true" --><span class="type">bool</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/init //test_ref/cpp/clm/IOEventSource/init //test_ref/cpp/intfcm/IOEventSource/init //test_ref/cpp/intfm/IOEventSource/init //test_ref/cpp/func/init //test_ref/cpp/ftmplt/IOEventSource/init //test_ref/cpp/defn/init //test_ref/cpp/macro/init //test_ref/doc/anysymbol/init" machineGenerated="true" --><span class="function">init</span><!-- /a -->( <!-- a logicalPath="//test_ref/cpp/cl/OSObject //test_ref/cpp/tdef/OSObject //test_ref/cpp/tag/OSObject //test_ref/cpp/struct/OSObject //test_ref/cpp/intf/OSObject //test_ref/doc/anysymbol/OSObject" machineGenerated="true" --><span class="type">OSObject</span><!-- /a --> <span class="type">*</span><span class="param">owner</span>, <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a -->::<!-- a logicalPath="//test_ref/cpp/cl/Action //test_ref/cpp/tdef/Action //test_ref/cpp/tag/Action //test_ref/cpp/struct/Action //test_ref/cpp/intf/Action //test_ref/doc/anysymbol/Action" machineGenerated="true" --><span class="type">Action</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/cl/action //test_ref/cpp/tdef/action //test_ref/cpp/tag/action //test_ref/cpp/struct/action //test_ref/cpp/intf/action //test_ref/doc/anysymbol/action" machineGenerated="true" --><span class="type">action</span><!-- /a --> = <span class="number">0</span>); END OF OBJECT OBJECT: checkForWork (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/checkForWork //test_ref/cpp/clm/IOEventSource/checkForWork //test_ref/cpp/intfcm/IOEventSource/checkForWork //test_ref/cpp/intfm/IOEventSource/checkForWork //test_ref/cpp/func/checkForWork //test_ref/cpp/ftmplt/IOEventSource/checkForWork //test_ref/cpp/defn/checkForWork //test_ref/cpp/macro/checkForWork //test_ref/doc/anysymbol/checkForWork" machineGenerated="true" --><span class="function">checkForWork</span><!-- /a -->( <!-- a logicalPath="//test_ref/cpp/cl/bool //test_ref/cpp/tdef/bool //test_ref/cpp/tag/bool //test_ref/cpp/struct/bool //test_ref/cpp/intf/bool //test_ref/doc/anysymbol/bool" machineGenerated="true" --><span class="type">bool</span><!-- /a --> <span class="type">*</span><span class="param">moreP</span>, <!-- a logicalPath="//test_ref/cpp/cl/mach_timespec_t //test_ref/cpp/tdef/mach_timespec_t //test_ref/cpp/tag/mach_timespec_t //test_ref/cpp/struct/mach_timespec_t //test_ref/cpp/intf/mach_timespec_t //test_ref/doc/anysymbol/mach_timespec_t" machineGenerated="true" --><span class="type">mach_timespec_t</span><!-- /a --> <span class="type">*</span><span class="param">wakeupTimeP</span>) = <span class="number">0</span>; END OF OBJECT OBJECT: setWorkLoop (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/setWorkLoop //test_ref/cpp/clm/IOEventSource/setWorkLoop //test_ref/cpp/intfcm/IOEventSource/setWorkLoop //test_ref/cpp/intfm/IOEventSource/setWorkLoop //test_ref/cpp/func/setWorkLoop //test_ref/cpp/ftmplt/IOEventSource/setWorkLoop //test_ref/cpp/defn/setWorkLoop //test_ref/cpp/macro/setWorkLoop //test_ref/doc/anysymbol/setWorkLoop" machineGenerated="true" --><span class="function">setWorkLoop</span><!-- /a -->( <!-- a logicalPath="//test_ref/cpp/cl/IOWorkLoop //test_ref/cpp/tdef/IOWorkLoop //test_ref/cpp/tag/IOWorkLoop //test_ref/cpp/struct/IOWorkLoop //test_ref/cpp/intf/IOWorkLoop //test_ref/doc/anysymbol/IOWorkLoop" machineGenerated="true" --><span class="type">IOWorkLoop</span><!-- /a --> <span class="type">*</span><span class="param">workLoop</span>); END OF OBJECT OBJECT: setNext (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/setNext //test_ref/cpp/clm/IOEventSource/setNext //test_ref/cpp/intfcm/IOEventSource/setNext //test_ref/cpp/intfm/IOEventSource/setNext //test_ref/cpp/func/setNext //test_ref/cpp/ftmplt/IOEventSource/setNext //test_ref/cpp/defn/setNext //test_ref/cpp/macro/setNext //test_ref/doc/anysymbol/setNext" machineGenerated="true" --><span class="function">setNext</span><!-- /a -->( <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a --> <span class="type">*</span><span class="param">next</span>); END OF OBJECT OBJECT: getNext (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a --> <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/getNext //test_ref/cpp/clm/IOEventSource/getNext //test_ref/cpp/intfcm/IOEventSource/getNext //test_ref/cpp/intfm/IOEventSource/getNext //test_ref/cpp/func/getNext //test_ref/cpp/ftmplt/IOEventSource/getNext //test_ref/cpp/defn/getNext //test_ref/cpp/macro/getNext //test_ref/doc/anysymbol/getNext" machineGenerated="true" --><span class="function">getNext</span><!-- /a -->() <span class="keyword">const</span>; END OF OBJECT OBJECT: setAction (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/setAction //test_ref/cpp/clm/IOEventSource/setAction //test_ref/cpp/intfcm/IOEventSource/setAction //test_ref/cpp/intfm/IOEventSource/setAction //test_ref/cpp/func/setAction //test_ref/cpp/ftmplt/IOEventSource/setAction //test_ref/cpp/defn/setAction //test_ref/cpp/macro/setAction //test_ref/doc/anysymbol/setAction" machineGenerated="true" --><span class="function">setAction</span><!-- /a -->( <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a -->::<!-- a logicalPath="//test_ref/cpp/cl/Action //test_ref/cpp/tdef/Action //test_ref/cpp/tag/Action //test_ref/cpp/struct/Action //test_ref/cpp/intf/Action //test_ref/doc/anysymbol/Action" machineGenerated="true" --><span class="type">Action</span><!-- /a --> <span class="param">action</span>); END OF OBJECT OBJECT: getAction (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a -->::<!-- a logicalPath="//test_ref/cpp/cl/Action //test_ref/cpp/tdef/Action //test_ref/cpp/tag/Action //test_ref/cpp/struct/Action //test_ref/cpp/intf/Action //test_ref/doc/anysymbol/Action" machineGenerated="true" --><span class="type">Action</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/getAction //test_ref/cpp/clm/IOEventSource/getAction //test_ref/cpp/intfcm/IOEventSource/getAction //test_ref/cpp/intfm/IOEventSource/getAction //test_ref/cpp/func/getAction //test_ref/cpp/ftmplt/IOEventSource/getAction //test_ref/cpp/defn/getAction //test_ref/cpp/macro/getAction //test_ref/doc/anysymbol/getAction" machineGenerated="true" --><span class="function">getAction</span><!-- /a -->() <span class="keyword">const</span>; END OF OBJECT OBJECT: enable (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/enable //test_ref/cpp/clm/IOEventSource/enable //test_ref/cpp/intfcm/IOEventSource/enable //test_ref/cpp/intfm/IOEventSource/enable //test_ref/cpp/func/enable //test_ref/cpp/ftmplt/IOEventSource/enable //test_ref/cpp/defn/enable //test_ref/cpp/macro/enable //test_ref/doc/anysymbol/enable" machineGenerated="true" --><span class="function">enable</span><!-- /a -->(); END OF OBJECT OBJECT: disable (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/disable //test_ref/cpp/clm/IOEventSource/disable //test_ref/cpp/intfcm/IOEventSource/disable //test_ref/cpp/intfm/IOEventSource/disable //test_ref/cpp/func/disable //test_ref/cpp/ftmplt/IOEventSource/disable //test_ref/cpp/defn/disable //test_ref/cpp/macro/disable //test_ref/doc/anysymbol/disable" machineGenerated="true" --><span class="function">disable</span><!-- /a -->(); END OF OBJECT OBJECT: isEnabled (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/bool //test_ref/cpp/tdef/bool //test_ref/cpp/tag/bool //test_ref/cpp/struct/bool //test_ref/cpp/intf/bool //test_ref/doc/anysymbol/bool" machineGenerated="true" --><span class="type">bool</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/isEnabled //test_ref/cpp/clm/IOEventSource/isEnabled //test_ref/cpp/intfcm/IOEventSource/isEnabled //test_ref/cpp/intfm/IOEventSource/isEnabled //test_ref/cpp/func/isEnabled //test_ref/cpp/ftmplt/IOEventSource/isEnabled //test_ref/cpp/defn/isEnabled //test_ref/cpp/macro/isEnabled //test_ref/doc/anysymbol/isEnabled" machineGenerated="true" --><span class="function">isEnabled</span><!-- /a -->() <span class="keyword">const</span>; END OF OBJECT OBJECT: getWorkLoop (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/IOWorkLoop //test_ref/cpp/tdef/IOWorkLoop //test_ref/cpp/tag/IOWorkLoop //test_ref/cpp/struct/IOWorkLoop //test_ref/cpp/intf/IOWorkLoop //test_ref/doc/anysymbol/IOWorkLoop" machineGenerated="true" --><span class="type">IOWorkLoop</span><!-- /a --> <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/getWorkLoop //test_ref/cpp/clm/IOEventSource/getWorkLoop //test_ref/cpp/intfcm/IOEventSource/getWorkLoop //test_ref/cpp/intfm/IOEventSource/getWorkLoop //test_ref/cpp/func/getWorkLoop //test_ref/cpp/ftmplt/IOEventSource/getWorkLoop //test_ref/cpp/defn/getWorkLoop //test_ref/cpp/macro/getWorkLoop //test_ref/doc/anysymbol/getWorkLoop" machineGenerated="true" --><span class="function">getWorkLoop</span><!-- /a -->() <span class="keyword">const</span>; END OF OBJECT OBJECT: onThread (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/bool //test_ref/cpp/tdef/bool //test_ref/cpp/tag/bool //test_ref/cpp/struct/bool //test_ref/cpp/intf/bool //test_ref/doc/anysymbol/bool" machineGenerated="true" --><span class="type">bool</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/onThread //test_ref/cpp/clm/IOEventSource/onThread //test_ref/cpp/intfcm/IOEventSource/onThread //test_ref/cpp/intfm/IOEventSource/onThread //test_ref/cpp/func/onThread //test_ref/cpp/ftmplt/IOEventSource/onThread //test_ref/cpp/defn/onThread //test_ref/cpp/macro/onThread //test_ref/doc/anysymbol/onThread" machineGenerated="true" --><span class="function">onThread</span><!-- /a -->() <span class="keyword">const</span>; END OF OBJECT OBJECT: Action (HeaderDoc::Typedef) <span class="keyword">typedef</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> ( <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/Action //test_ref/cpp/clm/IOEventSource/Action //test_ref/cpp/intfcm/IOEventSource/Action //test_ref/cpp/intfm/IOEventSource/Action //test_ref/cpp/func/Action //test_ref/cpp/ftmplt/IOEventSource/Action //test_ref/cpp/defn/Action //test_ref/cpp/macro/Action //test_ref/doc/anysymbol/Action" machineGenerated="true" --><span class="function">Action</span><!-- /a -->)( <!-- a logicalPath="//test_ref/cpp/cl/OSObject //test_ref/cpp/tdef/OSObject //test_ref/cpp/tag/OSObject //test_ref/cpp/struct/OSObject //test_ref/cpp/intf/OSObject //test_ref/doc/anysymbol/OSObject" machineGenerated="true" --><span class="type">OSObject</span><!-- /a --> <span class="type">*</span><span class="param">owner</span>, ...); END OF OBJECT OBJECT: eventChainNext (HeaderDoc::Var) <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a --> <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/econst/eventChainNext //test_ref/cpp/data/IOEventSource/eventChainNext //test_ref/cpp/data/eventChainNext //test_ref/cpp/clconst/IOEventSource/eventChainNext " machineGenerated="true" --><span class="var">eventChainNext</span><!-- /a -->; END OF OBJECT OBJECT: owner (HeaderDoc::Var) <!-- a logicalPath="//test_ref/cpp/cl/OSObject //test_ref/cpp/tdef/OSObject //test_ref/cpp/tag/OSObject //test_ref/cpp/struct/OSObject //test_ref/cpp/intf/OSObject //test_ref/doc/anysymbol/OSObject" machineGenerated="true" --><span class="type">OSObject</span><!-- /a --> <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/econst/owner //test_ref/cpp/data/IOEventSource/owner //test_ref/cpp/data/owner //test_ref/cpp/clconst/IOEventSource/owner " machineGenerated="true" --><span class="var">owner</span><!-- /a -->; END OF OBJECT OBJECT: action (HeaderDoc::Var) <!-- a logicalPath="//test_ref/cpp/cl/Action //test_ref/cpp/tdef/Action //test_ref/cpp/tag/Action //test_ref/cpp/struct/Action //test_ref/cpp/intf/Action //test_ref/doc/anysymbol/Action" machineGenerated="true" --><span class="type">Action</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/econst/action //test_ref/cpp/data/IOEventSource/action //test_ref/cpp/data/action //test_ref/cpp/clconst/IOEventSource/action " machineGenerated="true" --><span class="var">action</span><!-- /a -->; END OF OBJECT OBJECT: enabled (HeaderDoc::Var) <!-- a logicalPath="//test_ref/cpp/cl/bool //test_ref/cpp/tdef/bool //test_ref/cpp/tag/bool //test_ref/cpp/struct/bool //test_ref/cpp/intf/bool //test_ref/doc/anysymbol/bool" machineGenerated="true" --><span class="type">bool</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/econst/enabled //test_ref/cpp/data/IOEventSource/enabled //test_ref/cpp/data/enabled //test_ref/cpp/clconst/IOEventSource/enabled " machineGenerated="true" --><span class="var">enabled</span><!-- /a -->; END OF OBJECT OBJECT: workLoop (HeaderDoc::Var) <!-- a logicalPath="//test_ref/cpp/cl/IOWorkLoop //test_ref/cpp/tdef/IOWorkLoop //test_ref/cpp/tag/IOWorkLoop //test_ref/cpp/struct/IOWorkLoop //test_ref/cpp/intf/IOWorkLoop //test_ref/doc/anysymbol/IOWorkLoop" machineGenerated="true" --><span class="type">IOWorkLoop</span><!-- /a --> <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/econst/workLoop //test_ref/cpp/data/IOEventSource/workLoop //test_ref/cpp/data/workLoop //test_ref/cpp/clconst/IOEventSource/workLoop " machineGenerated="true" --><span class="var">workLoop</span><!-- /a -->; END OF OBJECT $210059|-=: TOP LEVEL COMMENT PARSE VALUES :=- inHeader: 0 inClass: 1 inInterface: 0 inCPPHeader: 0 inOCCHeader: 0 inPerlScript: 0 inShellScript: 0 inPHPScript: 0 inJavaSource: 0 inFunctionGroup: 0 inGroup: 0 inFunction: 0 inPDefine: 0 inTypedef: 0 inUnion: 0 inStruct: 0 inConstant: 0 inVar: 0 inEnum: 0 inMethod: 0 inAvailabilityMacro: 0 inUnknown: 0 classType: unknown inputCounter: 0 blockOffset: 0 fullpath: /test_suite_bogus_path/class_3.test -=: BLOCKPARSE PARSER STATE KEYS :=- $parserState->{FULLPATH} => /test_suite_bogus_path/class_3.test $parserState->{ISFORWARDDECLARATION} => 0 $parserState->{NEXTTOKENNOCPP} => 0 $parserState->{availability} => $parserState->{backslashcount} => 0 $parserState->{basetype} => $parserState->{bracePending} => 0 $parserState->{callbackIsTypedef} => 0 $parserState->{callbackName} => $parserState->{callbackNamePending} => -1 $parserState->{categoryClass} => $parserState->{classNameFound} => 1 $parserState->{classtype} => class $parserState->{forceClassDone} => 1 $parserState->{forceClassName} => IOEventSource $parserState->{forceClassSuper} => public OSObject $parserState->{freezeStack} => ARRAY(OBJID) $parserState->{freezereturn} => 1 $parserState->{frozensodname} => $parserState->{functionReturnsCallback} => 0 $parserState->{hollow} => HeaderDoc::ParseTree=HASH(OBJID) $parserState->{inBrackets} => 0 $parserState->{inChar} => 0 $parserState->{inClass} => 1 $parserState->{inComment} => 0 $parserState->{inInlineComment} => 0 $parserState->{inMacro} => 0 $parserState->{inMacroLine} => 0 $parserState->{inOperator} => 0 $parserState->{inPrivateParamTypes} => 0 $parserState->{inString} => 0 $parserState->{inTemplate} => 0 $parserState->{initbsCount} => 0 $parserState->{inputCounter} => 67 $parserState->{kr_c_function} => 0 $parserState->{kr_c_name} => $parserState->{lang} => C $parserState->{lastTreeNode} => HeaderDoc::ParseTree=HASH(OBJID) $parserState->{lastsymbol} => ; $parserState->{macroNoTrunc} => 1 $parserState->{name} => $parserState->{namePending} => 0 $parserState->{noInsert} => 0 $parserState->{occmethod} => 0 $parserState->{occmethodname} => $parserState->{occparmlabelfound} => 4 $parserState->{onlyComments} => 0 $parserState->{parsedParamAtBrace} => ARRAY(OBJID) $parserState->{parsedParamList} => ARRAY(OBJID) $parserState->{parsedParamParse} => 1 $parserState->{parsedParamStateAtBrace} => ARRAY(OBJID) $parserState->{posstypes} => $parserState->{posstypesPending} => 0 $parserState->{pplStack} => ARRAY(OBJID) $parserState->{preEqualsSymbol} => $parserState->{preTemplateSymbol} => $parserState->{preclasssodtype} => class $parserState->{prekeywordsodname} => $parserState->{prekeywordsodtype} => $parserState->{returntype} => class IOEventSource : public OSObject $parserState->{seenBraces} => 0 $parserState->{seenMacroPart} => 0 $parserState->{seenTilde} => 0 $parserState->{simpleTDcontents} => $parserState->{simpleTypedef} => 0 $parserState->{sodclass} => class $parserState->{sodname} => OSObject $parserState->{sodtype} => public $parserState->{sodtypeclasstoken} => class $parserState->{stackFrozen} => 0 $parserState->{startOfDec} => 1 $parserState->{storeDec} => $parserState->{sublang} => C $parserState->{temponlyComments} => 0 $parserState->{treePopTwo} => 0 $parserState->{value} => $parserState->{valuepending} => 0 -=: BLOCKPARSE RETURN VALUES :=- newcount: 67 typelist: class namelist: IOEventSource posstypes: OSObject value: returntype: public pridec: simpleTDcontents: bpavail: blockOffset: 86 conformsToList: functionContents: extendsClass: implementsClass: -=: LIST OF PARSED PARAMETERS :=- -=: DUMP OF PARSE TREE :=- +---class +--- +---IOEventSource +--- +---: +--- +---public +--- +---OSObject +---[ NEWLINE ] +---{ | +---[ NEWLINE ] | +--- | +-*-OSDeclareAbstractStructors (HAS STATE) | +---( | | +---IOEventSource | | +---) | +---[ NEWLINE ] | +--- | +---friend | +--- | +---class | +--- | +---IOWorkLoop | +---; | +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---public | +---: | +---[ NEWLINE ] | +---/* | | +---! | | +--- @typedef Action | | +--- @discussion Placeholder type for C++ function overloading discrimination. | | +--- As the all event sources require an action and it has to be stored somewhere | | +--- and be of some type, this is that type. | | +--- @param owner | | +--- Target of the function, can be used as a refcon. The owner is set | | +--- during initialisation. Note if a C++ function was specified this parameter | | +--- is implicitly the first paramter in the target member function's | | +--- parameter list. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-typedef (HAS STATE) | +--- | +---void | +--- | +---( | | +---* | | +---Action | | +---) | +---( | | +---OSObject | | +--- | | +---* | | +---owner | | +---, | | +--- | | +---. | | +---. | | +---. | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---protected | +---: | +---[ NEWLINE ] | +---/* | | +---! | | +--- @var eventChainNext | | +--- The next event source in the event chain. nil at end of chain. | | +---*/ | +---[ NEWLINE ] | +--- | +-*-IOEventSource (HAS STATE) | +--- | +---* | +---eventChainNext | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @var owner The owner object called when an event has been delivered. | | +---*/ | +---[ NEWLINE ] | +--- | +-*-OSObject (HAS STATE) | +--- | +---* | +---owner | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @var action | | +--- The action method called when an event has been delivered | | +---*/ | +---[ NEWLINE ] | +--- | +-*-Action (HAS STATE) | +--- | +---action | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @var enabled | | +--- Is this event source enabled to deliver requests to the work-loop. | | +---*/ | +---[ NEWLINE ] | +--- | +-*-bool (HAS STATE) | +--- | +---enabled | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @var workLoop What is the work-loop for this event source. | | +---*/ | +---[ NEWLINE ] | +--- | +-*-IOWorkLoop (HAS STATE) | +--- | +---* | +---workLoop | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- | | +--- @function getID | | +--- HeaderDoc test of multiline inline function definition. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +-*-int (HAS STATE) | +--- | +---getID | +---( | | +---) | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function init | | +--- @abstract Primary initialiser for the IOEventSource class. | | +--- @throws halibut | | +--- @throws mackeral | | +--- @throws peanuts | | +--- @param owner | | +--- Owner of this instance of an event source. Used as the first parameter | | +--- of the action callout. Owner will generally be an OSObject it doesn't have to | | +--- be as no member functions will be called directly in it. It can just be a | | +--- refcon for a client routine. | | +--- @param action | | +--- Pointer to C call out function. Action is a pointer to a C function | | +--- that gets called when this event source has outstanding work. It will usually | | +--- be called by the checkForWork member function. The first parameter of the | | +--- action call out will always be the owner, this allows C++ member functions to | | +--- be used as actions. Defaults to 0. | | +--- @result true if the inherited classes and this instance initialise | | +--- successfully. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---bool | +--- | +---init | +---( | | +---OSObject | | +--- | | +---* | | +---owner | | +---, | | +--- | | +---IOEventSource | | +---:: | | +---Action | | +--- | | +---action | | +--- | | +---= | | +--- | | +---0 | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function checkForWork | | +--- @abstract Pure Virtual member function used by IOWorkLoop for work | | +--- scheduling. | | +--- @discussion This function will be called to request a subclass to check | | +--- it's internal state for any work to do and then to call out the owner/action. | | +--- @param moreP | | +--- Pointer to the more-work output variable. Set to true if this function | | +--- needs to be called again before all its outstanding events have been processed. | | +--- @param wakeupTimeP | | +--- Pointer to no-later wake up time output variable. Return variable to | | +--- indicate when this object wishes to be called again; used for timeouts. | | +--- Note the checkForWork method may be called before the timeout fires. | | +--- Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout | | +--- requested. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---checkForWork | +---( | | +---bool | | +--- | | +---* | | +---moreP | | +---, | | +--- | | +---mach_timespec_t | | +--- | | +---* | | +---wakeupTimeP | | +---) | +--- | +---= | +--- | +---0 | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function setWorkLoop | | +--- @abstract Set'ter for workLoop variable. | | +--- @param workLoop | | +--- Target work-loop of this event source instance. A subclass of | | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | | +--- functions. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---setWorkLoop | +---( | | +---IOWorkLoop | | +--- | | +---* | | +---workLoop | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function setNext | | +--- @abstract Set'ter for eventChainNext variable. | | +--- @param next | | +--- Pointer to another IOEventSource instance. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---setNext | +---( | | +---IOEventSource | | +--- | | +---* | | +---next | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function getNext | | +--- @abstract Get'ter for eventChainNext variable. | | +--- @result value of eventChainNext. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---IOEventSource | +--- | +---* | +---getNext | +---( | | +---) | +--- | +---const | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---public | +---: | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function setAction | | +--- @abstract Set'ter for action variable. | | +--- @param action | | +--- Pointer to a C function of type IOEventSource::Action. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---setAction | +---( | | +---IOEventSource | | +---:: | | +---Action | | +--- | | +---action | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function getAction | | +--- @abstract Get'ter for action variable. | | +--- @result value of action. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---IOEventSource | +---:: | +---Action | +--- | +---getAction | +---( | | +---) | +--- | +---const | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function enable | | +--- @abstract Enable event source. | | +--- @discussion A subclass implementation is expected to respect the enabled | | +--- state when checkForWork is called. Calling this function will cause the | | +--- work-loop to be signalled so that a checkForWork is performed. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---enable | +---( | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function disable | | +--- @abstract Disable event source. | | +--- @discussion A subclass implementation is expected to respect the enabled | | +--- state when checkForWork is called. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---disable | +---( | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function isEnabled | | +--- @abstract Get'ter for enable variable. | | +--- @result true if enabled. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---bool | +--- | +---isEnabled | +---( | | +---) | +--- | +---const | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function getWorkLoop | | +--- @abstract Get'ter for workLoop variable. | | +--- @result value of workLoop. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---IOWorkLoop | +--- | +---* | +---getWorkLoop | +---( | | +---) | +--- | +---const | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function onThread | | +--- @abstract Convenience function for workLoop->onThread. | | +--- @result true if called on the work-loop thread. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---bool | +--- | +---onThread | +---( | | +---) | +--- | +---const | +---; | +--- | +---[ NEWLINE ] | +---} +---; +--- +---[ NEWLINE ] -=: COMPUTED VALUE :=- SUCCESS: 0 VALUE: 0 -=: CPP CHANGES :=- NO CPP CHANGES -=: FOUND MATCH :=- 1 -=: NAMED OBJECTS :=- TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Header NAME: class 3 APIUID: //test_ref/doc/header/class_3.test ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::Header" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::CPPClass NAME: IOEventSource APIUID: ABSTRACT: "<p>Abstract class for all work-loop event sources. " DISCUSSION: "<p>The IOEventSource declares the abstract super class that all event sources must inherit from if an IOWorkLoop is to receive events from them. </p> <p>An event source can represent any event that should cause the work-loop of a device to wake up and perform work. Two examples of event sources are the IOInterruptEventSource which delivers interrupt notifications and IOCommandGate which delivers command requests. </p> <p>A kernel module can always use the work-loop model for serialising access to anything at all. The IOEventSource is used for communicating events to the work-loop, and the chain of event sources should be used to walk the possible event sources and demultipex them. Note a particular instance of an event source may only be a member of 1 linked list chain. If you need to move it between chains than make sure it is removed from the original chain before attempting to move it. </p> <p>The IOEventSource makes no attempt to maintain the consitency of it's internal data across multi-threading. It is assumed that the user of these basic tools will protect the data that these objects represent in some sort of device wide instance lock. For example the IOWorkLoop maintains the event chain by handing off change request to its own thread and thus single threading access to its state. </p> <p>All subclasses of the IOEventSource are expected to implement the checkForWork() member function. </p> <p>checkForWork() is the key method in this class. It is called by some work-loop when convienient and is expected to evaluate it's internal state and determine if an event has occured since the last call. In the case of an event having occurred then the instance defined target(owner)/action will be called. The action is stored as an ordinary C function pointer but the first parameter is always the owner. This means that a C++ member function can be used as an action function though this depends on the ABI. </p> <p>Although the eventChainNext variable contains a reference to the next event source in the chain this reference is not retained. The list 'owner' i.e. the client that creates the event, not the work-loop, is expected to retain the source. " UPDATED: "March 07, 2007" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: " sandwiches<br> " XMLTHROWS: "<throw> sandwiches</throw> " UPDATED: "March 07, 2007" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::CPPClass" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: <p><b>Superclass</b></p> <p><!-- a logicalPath="//test_ref/cpp/cl/OSObject //test_ref/cpp/tdef/OSObject //test_ref/cpp/tag/OSObject //test_ref/cpp/struct/OSObject //test_ref/cpp/intf/OSObject //test_ref/cpp/econst/OSObject //test_ref/cpp/data/OSObject //test_ref/cpp/clconst/OSObject //test_ref/cpp/instm/OSObject //test_ref/cpp/clm/OSObject //test_ref/cpp/intfcm/OSObject //test_ref/cpp/intfm/OSObject //test_ref/cpp/func/OSObject //test_ref/cpp/ftmplt/OSObject //test_ref/cpp/defn/OSObject //test_ref/cpp/macro/OSObject //test_ref/doc/com/intfm/OSObject //test_ref/doc/anysymbol/OSObject" machineGenerated="true" -->OSObject<!-- /a --></p> <p><b>Declared In</b></p><p><a href="../../index.html" logicalPath="//test_ref/doc/header/class_3.test" target="_top" machineGenerated="true">class 3</a></p> LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: OSDeclareAbstractStructors APIUID: //test_ref/cpp/instm/IOEventSource/OSDeclareAbstractStructors//(IOEventSource) ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "public" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: PARSED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: TYPE: IOEventSource APIUID: //test_ref/cpp/internal_temporary_object/IOEventSource ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: getID APIUID: //test_ref/cpp/instm/IOEventSource/getID/int/() ABSTRACT: "" DISCUSSION: "<p>HeaderDoc test of multiline inline function definition." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " int" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: init APIUID: //test_ref/cpp/instm/IOEventSource/init/bool/(OSObject*,IOEventSource::Action) ABSTRACT: "<p>Primary initialiser for the IOEventSource class. " DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: " halibut<br> mackeral<br> peanuts<br> " XMLTHROWS: "<throw> halibut</throw> <throw> mackeral</throw> <throw> peanuts</throw> " UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual bool" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: PARSED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: owner TYPE: OSObject * APIUID: ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: action TYPE: IOEventSource :: Action APIUID: ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TAGGED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: owner TYPE: APIUID: //test_ref/doc/functionparam/IOEventSource/init/owner ABSTRACT: "" DISCUSSION: "<p>Owner of this instance of an event source. Used as the first parameter of the action callout. Owner will generally be an OSObject it doesn't have to be as no member functions will be called directly in it. It can just be a refcon for a client routine." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: action TYPE: APIUID: //test_ref/doc/functionparam/IOEventSource/init/action ABSTRACT: "" DISCUSSION: "<p>Pointer to C call out function. Action is a pointer to a C function that gets called when this event source has outstanding work. It will usually be called by the checkForWork member function. The first parameter of the action call out will always be the owner, this allows C++ member functions to be used as actions. Defaults to 0." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: checkForWork APIUID: //test_ref/cpp/instm/IOEventSource/checkForWork/void/(bool*,mach_timespec_t*) ABSTRACT: "<p>Pure Virtual member function used by IOWorkLoop for work scheduling. " DISCUSSION: "<p>This function will be called to request a subclass to check it's internal state for any work to do and then to call out the owner/action. " UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual void" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: PARSED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: moreP TYPE: bool * APIUID: ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: wakeupTimeP TYPE: mach_timespec_t * APIUID: ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TAGGED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: moreP TYPE: APIUID: //test_ref/doc/functionparam/IOEventSource/checkForWork/moreP ABSTRACT: "" DISCUSSION: "<p>Pointer to the more-work output variable. Set to true if this function needs to be called again before all its outstanding events have been processed." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: wakeupTimeP TYPE: APIUID: //test_ref/doc/functionparam/IOEventSource/checkForWork/wakeupTimeP ABSTRACT: "" DISCUSSION: "<p>Pointer to no-later wake up time output variable. Return variable to indicate when this object wishes to be called again; used for timeouts. Note the checkForWork method may be called before the timeout fires. Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout requested." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: setWorkLoop APIUID: //test_ref/cpp/instm/IOEventSource/setWorkLoop/void/(IOWorkLoop*) ABSTRACT: "<p>Set'ter for workLoop variable. " DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual void" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: PARSED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: workLoop TYPE: IOWorkLoop * APIUID: ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TAGGED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: workLoop TYPE: APIUID: //test_ref/doc/functionparam/IOEventSource/setWorkLoop/workLoop ABSTRACT: "" DISCUSSION: "<p>Target work-loop of this event source instance. A subclass of IOWorkLoop that at least reacts to signalWorkAvailable() and onThread functions." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: setNext APIUID: //test_ref/cpp/instm/IOEventSource/setNext/void/(IOEventSource*) ABSTRACT: "<p>Set'ter for eventChainNext variable. " DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual void" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: PARSED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: next TYPE: IOEventSource * APIUID: ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TAGGED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: next TYPE: APIUID: //test_ref/doc/functionparam/IOEventSource/setNext/next ABSTRACT: "" DISCUSSION: "<p>Pointer to another IOEventSource instance." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: getNext APIUID: //test_ref/cpp/instm/IOEventSource/getNext/IOEventSource*/() ABSTRACT: "<p>Get'ter for eventChainNext variable. " DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual IOEventSource *" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: setAction APIUID: //test_ref/cpp/instm/IOEventSource/setAction/void/(IOEventSource::Action) ABSTRACT: "<p>Set'ter for action variable. " DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "public" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual void" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: PARSED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: action TYPE: IOEventSource :: Action APIUID: ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TAGGED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: action TYPE: APIUID: //test_ref/doc/functionparam/IOEventSource/setAction/action ABSTRACT: "" DISCUSSION: "<p>Pointer to a C function of type IOEventSource::Action." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: getAction APIUID: //test_ref/cpp/instm/IOEventSource/getAction/IOEventSource::Action/() ABSTRACT: "<p>Get'ter for action variable. " DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "public" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual IOEventSource :: Action" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: enable APIUID: //test_ref/cpp/instm/IOEventSource/enable/void/() ABSTRACT: "<p>Enable event source. " DISCUSSION: "<p>A subclass implementation is expected to respect the enabled state when checkForWork is called. Calling this function will cause the work-loop to be signalled so that a checkForWork is performed. " UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "public" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual void" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: disable APIUID: //test_ref/cpp/instm/IOEventSource/disable/void/() ABSTRACT: "<p>Disable event source. " DISCUSSION: "<p>A subclass implementation is expected to respect the enabled state when checkForWork is called. " UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "public" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual void" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: isEnabled APIUID: //test_ref/cpp/instm/IOEventSource/isEnabled/bool/() ABSTRACT: "<p>Get'ter for enable variable. " DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "public" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual bool" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: getWorkLoop APIUID: //test_ref/cpp/instm/IOEventSource/getWorkLoop/IOWorkLoop*/() ABSTRACT: "<p>Get'ter for workLoop variable. " DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "public" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual IOWorkLoop *" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Function NAME: onThread APIUID: //test_ref/cpp/instm/IOEventSource/onThread/bool/() ABSTRACT: "<p>Convenience function for workLoop->onThread. " DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "public" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: " virtual bool" LINENUM: "" CLASS: "HeaderDoc::Function" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::Typedef NAME: Action APIUID: //test_ref/cpp/tdef/IOEventSource/Action ABSTRACT: "" DISCUSSION: "<p>Placeholder type for C++ function overloading discrimination. As the all event sources require an action and it has to be stored somewhere and be of some type, this is that type. " UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "public" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::Typedef" MASTERENUM: "0" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: PARSED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: owner TYPE: OSObject * APIUID: ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: ... TYPE: APIUID: ABSTRACT: "" DISCUSSION: "<p></p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TAGGED PARAMETERS: TREE COUNT: 0 INDEX GROUP: IS BLOCK: OBJECT TYPE: HeaderDoc::MinorAPIElement NAME: owner TYPE: APIUID: //test_ref/doc/typedeffield/IOEventSource/Action/owner ABSTRACT: "" DISCUSSION: "<p>Target of the function, can be used as a refcon. The owner is set during initialisation. Note if a C++ function was specified this parameter is implicitly the first paramter in the target member function's parameter list." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "" LINENUM: "" CLASS: "HeaderDoc::MinorAPIElement" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS PROPERTY: 0 IS BLOCK: OBJECT TYPE: HeaderDoc::Var NAME: eventChainNext APIUID: //test_ref/cpp/data/IOEventSource/eventChainNext ABSTRACT: "" DISCUSSION: "<p>The next event source in the event chain. nil at end of chain." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "IOEventSource *" LINENUM: "" CLASS: "HeaderDoc::Var" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS PROPERTY: 0 IS BLOCK: OBJECT TYPE: HeaderDoc::Var NAME: owner APIUID: //test_ref/cpp/data/IOEventSource/owner ABSTRACT: "" DISCUSSION: "<p>The owner object called when an event has been delivered.</p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "OSObject *" LINENUM: "" CLASS: "HeaderDoc::Var" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "The owner object called when an event has been delivered." HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS PROPERTY: 0 IS BLOCK: OBJECT TYPE: HeaderDoc::Var NAME: action APIUID: //test_ref/cpp/data/IOEventSource/action ABSTRACT: "" DISCUSSION: "<p>The action method called when an event has been delivered" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "Action" LINENUM: "" CLASS: "HeaderDoc::Var" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS PROPERTY: 0 IS BLOCK: OBJECT TYPE: HeaderDoc::Var NAME: enabled APIUID: //test_ref/cpp/data/IOEventSource/enabled ABSTRACT: "" DISCUSSION: "<p>Is this event source enabled to deliver requests to the work-loop." UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "bool" LINENUM: "" CLASS: "HeaderDoc::Var" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "" HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: TREE COUNT: 1 INDEX GROUP: IS PROPERTY: 0 IS BLOCK: OBJECT TYPE: HeaderDoc::Var NAME: workLoop APIUID: //test_ref/cpp/data/IOEventSource/workLoop ABSTRACT: "" DISCUSSION: "<p>What is the work-loop for this event source.</p>" UPDATED: "" COPYRIGHT: "" HTMLMETA: "" PRIVATEDECLARATION: "" GROUP: "" INDEXGROUP: "" THROWS: "" XMLTHROWS: "" UPDATED: "" LINKAGESTATE: "" ACCESSCONTROL: "protected" AVAILABILITY: "" LINKUID: "" ORIGCLASS: "" ISDEFINE: "" ISTEMPLATE: "" VALUE: "UNKNOWN" RETURNTYPE: "IOWorkLoop *" LINENUM: "" CLASS: "HeaderDoc::Var" MASTERENUM: "" APIREFSETUPDONE: "1" TPCDONE: "" NOREGISTERUID: "" SUPPRESSCHILDREN: "0" NAMELINE_DISCUSSION: "What is the work-loop for this event source." HIDEDOC: "" HIDESINGLETONS: "" HIDECONTENTS: "" MAINOBJECT: "" LIST ATTRIBUTES: SHORT ATTRIBUTES: LONG ATTRIBUTES: -=: NAMED OBJECT PARSE TREES :=- OBJECT: IOEventSource (HeaderDoc::CPPClass) +---class +--- +---IOEventSource +--- +---: +--- +---public +--- +---OSObject +---[ NEWLINE ] +---{ | +---[ NEWLINE ] | +--- | +-*-OSDeclareAbstractStructors (HAS STATE) | +---( | | +---IOEventSource | | +---) | +---[ NEWLINE ] | +--- | +---friend | +--- | +---class | +--- | +---IOWorkLoop | +---; | +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---public | +---: | +---[ NEWLINE ] | +---/* | | +---! | | +--- @typedef Action | | +--- @discussion Placeholder type for C++ function overloading discrimination. | | +--- As the all event sources require an action and it has to be stored somewhere | | +--- and be of some type, this is that type. | | +--- @param owner | | +--- Target of the function, can be used as a refcon. The owner is set | | +--- during initialisation. Note if a C++ function was specified this parameter | | +--- is implicitly the first paramter in the target member function's | | +--- parameter list. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-typedef (HAS STATE) | +--- | +---void | +--- | +---( | | +---* | | +---Action | | +---) | +---( | | +---OSObject | | +--- | | +---* | | +---owner | | +---, | | +--- | | +---. | | +---. | | +---. | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---protected | +---: | +---[ NEWLINE ] | +---/* | | +---! | | +--- @var eventChainNext | | +--- The next event source in the event chain. nil at end of chain. | | +---*/ | +---[ NEWLINE ] | +--- | +-*-IOEventSource (HAS STATE) | +--- | +---* | +---eventChainNext | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @var owner The owner object called when an event has been delivered. | | +---*/ | +---[ NEWLINE ] | +--- | +-*-OSObject (HAS STATE) | +--- | +---* | +---owner | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @var action | | +--- The action method called when an event has been delivered | | +---*/ | +---[ NEWLINE ] | +--- | +-*-Action (HAS STATE) | +--- | +---action | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @var enabled | | +--- Is this event source enabled to deliver requests to the work-loop. | | +---*/ | +---[ NEWLINE ] | +--- | +-*-bool (HAS STATE) | +--- | +---enabled | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @var workLoop What is the work-loop for this event source. | | +---*/ | +---[ NEWLINE ] | +--- | +-*-IOWorkLoop (HAS STATE) | +--- | +---* | +---workLoop | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- | | +--- @function getID | | +--- HeaderDoc test of multiline inline function definition. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +-*-int (HAS STATE) | +--- | +---getID | +---( | | +---) | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function init | | +--- @abstract Primary initialiser for the IOEventSource class. | | +--- @throws halibut | | +--- @throws mackeral | | +--- @throws peanuts | | +--- @param owner | | +--- Owner of this instance of an event source. Used as the first parameter | | +--- of the action callout. Owner will generally be an OSObject it doesn't have to | | +--- be as no member functions will be called directly in it. It can just be a | | +--- refcon for a client routine. | | +--- @param action | | +--- Pointer to C call out function. Action is a pointer to a C function | | +--- that gets called when this event source has outstanding work. It will usually | | +--- be called by the checkForWork member function. The first parameter of the | | +--- action call out will always be the owner, this allows C++ member functions to | | +--- be used as actions. Defaults to 0. | | +--- @result true if the inherited classes and this instance initialise | | +--- successfully. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---bool | +--- | +---init | +---( | | +---OSObject | | +--- | | +---* | | +---owner | | +---, | | +--- | | +---IOEventSource | | +---:: | | +---Action | | +--- | | +---action | | +--- | | +---= | | +--- | | +---0 | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function checkForWork | | +--- @abstract Pure Virtual member function used by IOWorkLoop for work | | +--- scheduling. | | +--- @discussion This function will be called to request a subclass to check | | +--- it's internal state for any work to do and then to call out the owner/action. | | +--- @param moreP | | +--- Pointer to the more-work output variable. Set to true if this function | | +--- needs to be called again before all its outstanding events have been processed. | | +--- @param wakeupTimeP | | +--- Pointer to no-later wake up time output variable. Return variable to | | +--- indicate when this object wishes to be called again; used for timeouts. | | +--- Note the checkForWork method may be called before the timeout fires. | | +--- Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout | | +--- requested. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---checkForWork | +---( | | +---bool | | +--- | | +---* | | +---moreP | | +---, | | +--- | | +---mach_timespec_t | | +--- | | +---* | | +---wakeupTimeP | | +---) | +--- | +---= | +--- | +---0 | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function setWorkLoop | | +--- @abstract Set'ter for workLoop variable. | | +--- @param workLoop | | +--- Target work-loop of this event source instance. A subclass of | | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | | +--- functions. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---setWorkLoop | +---( | | +---IOWorkLoop | | +--- | | +---* | | +---workLoop | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function setNext | | +--- @abstract Set'ter for eventChainNext variable. | | +--- @param next | | +--- Pointer to another IOEventSource instance. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---setNext | +---( | | +---IOEventSource | | +--- | | +---* | | +---next | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function getNext | | +--- @abstract Get'ter for eventChainNext variable. | | +--- @result value of eventChainNext. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---IOEventSource | +--- | +---* | +---getNext | +---( | | +---) | +--- | +---const | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---public | +---: | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function setAction | | +--- @abstract Set'ter for action variable. | | +--- @param action | | +--- Pointer to a C function of type IOEventSource::Action. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---setAction | +---( | | +---IOEventSource | | +---:: | | +---Action | | +--- | | +---action | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function getAction | | +--- @abstract Get'ter for action variable. | | +--- @result value of action. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---IOEventSource | +---:: | +---Action | +--- | +---getAction | +---( | | +---) | +--- | +---const | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function enable | | +--- @abstract Enable event source. | | +--- @discussion A subclass implementation is expected to respect the enabled | | +--- state when checkForWork is called. Calling this function will cause the | | +--- work-loop to be signalled so that a checkForWork is performed. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---enable | +---( | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function disable | | +--- @abstract Disable event source. | | +--- @discussion A subclass implementation is expected to respect the enabled | | +--- state when checkForWork is called. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---void | +--- | +---disable | +---( | | +---) | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function isEnabled | | +--- @abstract Get'ter for enable variable. | | +--- @result true if enabled. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---bool | +--- | +---isEnabled | +---( | | +---) | +--- | +---const | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function getWorkLoop | | +--- @abstract Get'ter for workLoop variable. | | +--- @result value of workLoop. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---IOWorkLoop | +--- | +---* | +---getWorkLoop | +---( | | +---) | +--- | +---const | +---; | +--- | +---[ NEWLINE ] | +---[ NEWLINE ] | +---/* | | +---! | | +--- @function onThread | | +--- @abstract Convenience function for workLoop->onThread. | | +--- @result true if called on the work-loop thread. | | +---[ NEWLINE ] | | +---*/ | +---[ NEWLINE ] | +--- | +-*-virtual (HAS STATE) | +--- | +---bool | +--- | +---onThread | +---( | | +---) | +--- | +---const | +---; | +--- | +---[ NEWLINE ] | +---} +---; +--- +---[ NEWLINE ] END OF OBJECT OBJECT: OSDeclareAbstractStructors (HeaderDoc::Function) +-*-OSDeclareAbstractStructors (HAS STATE) +---( | +---IOEventSource | +---) +---[ NEWLINE ] +--- +---friend +--- +---class +--- +---IOWorkLoop +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @typedef Action | +--- @discussion Placeholder type for C++ function overloading discrimination. | +--- As the all event sources require an action and it has to be stored somewhere | +--- and be of some type, this is that type. | +--- @param owner | +--- Target of the function, can be used as a refcon. The owner is set | +--- during initialisation. Note if a C++ function was specified this parameter | +--- is implicitly the first paramter in the target member function's | +--- parameter list. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-typedef (HAS STATE) +--- +---void +--- +---( | +---* | +---Action | +---) +---( | +---OSObject | +--- | +---* | +---owner | +---, | +--- | +---. | +---. | +---. | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---protected +---: +---[ NEWLINE ] +---/* | +---! | +--- @var eventChainNext | +--- The next event source in the event chain. nil at end of chain. | +---*/ +---[ NEWLINE ] +--- +-*-IOEventSource (HAS STATE) +--- +---* +---eventChainNext +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var owner The owner object called when an event has been delivered. | +---*/ +---[ NEWLINE ] +--- +-*-OSObject (HAS STATE) +--- +---* +---owner +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var action | +--- The action method called when an event has been delivered | +---*/ +---[ NEWLINE ] +--- +-*-Action (HAS STATE) +--- +---action +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var enabled | +--- Is this event source enabled to deliver requests to the work-loop. | +---*/ +---[ NEWLINE ] +--- +-*-bool (HAS STATE) +--- +---enabled +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var workLoop What is the work-loop for this event source. | +---*/ +---[ NEWLINE ] +--- +-*-IOWorkLoop (HAS STATE) +--- +---* +---workLoop +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- | +--- @function getID | +--- HeaderDoc test of multiline inline function definition. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +-*-int (HAS STATE) +--- +---getID +---( | +---) +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function init | +--- @abstract Primary initialiser for the IOEventSource class. | +--- @throws halibut | +--- @throws mackeral | +--- @throws peanuts | +--- @param owner | +--- Owner of this instance of an event source. Used as the first parameter | +--- of the action callout. Owner will generally be an OSObject it doesn't have to | +--- be as no member functions will be called directly in it. It can just be a | +--- refcon for a client routine. | +--- @param action | +--- Pointer to C call out function. Action is a pointer to a C function | +--- that gets called when this event source has outstanding work. It will usually | +--- be called by the checkForWork member function. The first parameter of the | +--- action call out will always be the owner, this allows C++ member functions to | +--- be used as actions. Defaults to 0. | +--- @result true if the inherited classes and this instance initialise | +--- successfully. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---init +---( | +---OSObject | +--- | +---* | +---owner | +---, | +--- | +---IOEventSource | +---:: | +---Action | +--- | +---action | +--- | +---= | +--- | +---0 | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function checkForWork | +--- @abstract Pure Virtual member function used by IOWorkLoop for work | +--- scheduling. | +--- @discussion This function will be called to request a subclass to check | +--- it's internal state for any work to do and then to call out the owner/action. | +--- @param moreP | +--- Pointer to the more-work output variable. Set to true if this function | +--- needs to be called again before all its outstanding events have been processed. | +--- @param wakeupTimeP | +--- Pointer to no-later wake up time output variable. Return variable to | +--- indicate when this object wishes to be called again; used for timeouts. | +--- Note the checkForWork method may be called before the timeout fires. | +--- Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout | +--- requested. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---checkForWork +---( | +---bool | +--- | +---* | +---moreP | +---, | +--- | +---mach_timespec_t | +--- | +---* | +---wakeupTimeP | +---) +--- +---= +--- +---0 +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setWorkLoop | +--- @abstract Set'ter for workLoop variable. | +--- @param workLoop | +--- Target work-loop of this event source instance. A subclass of | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | +--- functions. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setWorkLoop +---( | +---IOWorkLoop | +--- | +---* | +---workLoop | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setNext | +--- @abstract Set'ter for eventChainNext variable. | +--- @param next | +--- Pointer to another IOEventSource instance. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: getID (HeaderDoc::Function) +-*-int (HAS STATE) +--- +---getID +---( | +---) +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function init | +--- @abstract Primary initialiser for the IOEventSource class. | +--- @throws halibut | +--- @throws mackeral | +--- @throws peanuts | +--- @param owner | +--- Owner of this instance of an event source. Used as the first parameter | +--- of the action callout. Owner will generally be an OSObject it doesn't have to | +--- be as no member functions will be called directly in it. It can just be a | +--- refcon for a client routine. | +--- @param action | +--- Pointer to C call out function. Action is a pointer to a C function | +--- that gets called when this event source has outstanding work. It will usually | +--- be called by the checkForWork member function. The first parameter of the | +--- action call out will always be the owner, this allows C++ member functions to | +--- be used as actions. Defaults to 0. | +--- @result true if the inherited classes and this instance initialise | +--- successfully. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---init +---( | +---OSObject | +--- | +---* | +---owner | +---, | +--- | +---IOEventSource | +---:: | +---Action | +--- | +---action | +--- | +---= | +--- | +---0 | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function checkForWork | +--- @abstract Pure Virtual member function used by IOWorkLoop for work | +--- scheduling. | +--- @discussion This function will be called to request a subclass to check | +--- it's internal state for any work to do and then to call out the owner/action. | +--- @param moreP | +--- Pointer to the more-work output variable. Set to true if this function | +--- needs to be called again before all its outstanding events have been processed. | +--- @param wakeupTimeP | +--- Pointer to no-later wake up time output variable. Return variable to | +--- indicate when this object wishes to be called again; used for timeouts. | +--- Note the checkForWork method may be called before the timeout fires. | +--- Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout | +--- requested. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---checkForWork +---( | +---bool | +--- | +---* | +---moreP | +---, | +--- | +---mach_timespec_t | +--- | +---* | +---wakeupTimeP | +---) +--- +---= +--- +---0 +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setWorkLoop | +--- @abstract Set'ter for workLoop variable. | +--- @param workLoop | +--- Target work-loop of this event source instance. A subclass of | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | +--- functions. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setWorkLoop +---( | +---IOWorkLoop | +--- | +---* | +---workLoop | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setNext | +--- @abstract Set'ter for eventChainNext variable. | +--- @param next | +--- Pointer to another IOEventSource instance. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: init (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---bool +--- +---init +---( | +---OSObject | +--- | +---* | +---owner | +---, | +--- | +---IOEventSource | +---:: | +---Action | +--- | +---action | +--- | +---= | +--- | +---0 | +---) +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function checkForWork | +--- @abstract Pure Virtual member function used by IOWorkLoop for work | +--- scheduling. | +--- @discussion This function will be called to request a subclass to check | +--- it's internal state for any work to do and then to call out the owner/action. | +--- @param moreP | +--- Pointer to the more-work output variable. Set to true if this function | +--- needs to be called again before all its outstanding events have been processed. | +--- @param wakeupTimeP | +--- Pointer to no-later wake up time output variable. Return variable to | +--- indicate when this object wishes to be called again; used for timeouts. | +--- Note the checkForWork method may be called before the timeout fires. | +--- Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout | +--- requested. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---checkForWork +---( | +---bool | +--- | +---* | +---moreP | +---, | +--- | +---mach_timespec_t | +--- | +---* | +---wakeupTimeP | +---) +--- +---= +--- +---0 +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setWorkLoop | +--- @abstract Set'ter for workLoop variable. | +--- @param workLoop | +--- Target work-loop of this event source instance. A subclass of | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | +--- functions. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setWorkLoop +---( | +---IOWorkLoop | +--- | +---* | +---workLoop | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setNext | +--- @abstract Set'ter for eventChainNext variable. | +--- @param next | +--- Pointer to another IOEventSource instance. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: checkForWork (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---void +--- +---checkForWork +---( | +---bool | +--- | +---* | +---moreP | +---, | +--- | +---mach_timespec_t | +--- | +---* | +---wakeupTimeP | +---) +--- +---= +--- +---0 +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setWorkLoop | +--- @abstract Set'ter for workLoop variable. | +--- @param workLoop | +--- Target work-loop of this event source instance. A subclass of | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | +--- functions. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setWorkLoop +---( | +---IOWorkLoop | +--- | +---* | +---workLoop | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setNext | +--- @abstract Set'ter for eventChainNext variable. | +--- @param next | +--- Pointer to another IOEventSource instance. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: setWorkLoop (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---void +--- +---setWorkLoop +---( | +---IOWorkLoop | +--- | +---* | +---workLoop | +---) +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setNext | +--- @abstract Set'ter for eventChainNext variable. | +--- @param next | +--- Pointer to another IOEventSource instance. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: setNext (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: getNext (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: setAction (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: getAction (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: enable (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: disable (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: isEnabled (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: getWorkLoop (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: onThread (HeaderDoc::Function) +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: Action (HeaderDoc::Typedef) +-*-typedef (HAS STATE) +--- +---void +--- +---( | +---* | +---Action | +---) +---( | +---OSObject | +--- | +---* | +---owner | +---, | +--- | +---. | +---. | +---. | +---) +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---protected +---: +---[ NEWLINE ] +---/* | +---! | +--- @var eventChainNext | +--- The next event source in the event chain. nil at end of chain. | +---*/ +---[ NEWLINE ] +--- +-*-IOEventSource (HAS STATE) +--- +---* +---eventChainNext +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var owner The owner object called when an event has been delivered. | +---*/ +---[ NEWLINE ] +--- +-*-OSObject (HAS STATE) +--- +---* +---owner +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var action | +--- The action method called when an event has been delivered | +---*/ +---[ NEWLINE ] +--- +-*-Action (HAS STATE) +--- +---action +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var enabled | +--- Is this event source enabled to deliver requests to the work-loop. | +---*/ +---[ NEWLINE ] +--- +-*-bool (HAS STATE) +--- +---enabled +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var workLoop What is the work-loop for this event source. | +---*/ +---[ NEWLINE ] +--- +-*-IOWorkLoop (HAS STATE) +--- +---* +---workLoop +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- | +--- @function getID | +--- HeaderDoc test of multiline inline function definition. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +-*-int (HAS STATE) +--- +---getID +---( | +---) +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function init | +--- @abstract Primary initialiser for the IOEventSource class. | +--- @throws halibut | +--- @throws mackeral | +--- @throws peanuts | +--- @param owner | +--- Owner of this instance of an event source. Used as the first parameter | +--- of the action callout. Owner will generally be an OSObject it doesn't have to | +--- be as no member functions will be called directly in it. It can just be a | +--- refcon for a client routine. | +--- @param action | +--- Pointer to C call out function. Action is a pointer to a C function | +--- that gets called when this event source has outstanding work. It will usually | +--- be called by the checkForWork member function. The first parameter of the | +--- action call out will always be the owner, this allows C++ member functions to | +--- be used as actions. Defaults to 0. | +--- @result true if the inherited classes and this instance initialise | +--- successfully. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---init +---( | +---OSObject | +--- | +---* | +---owner | +---, | +--- | +---IOEventSource | +---:: | +---Action | +--- | +---action | +--- | +---= | +--- | +---0 | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function checkForWork | +--- @abstract Pure Virtual member function used by IOWorkLoop for work | +--- scheduling. | +--- @discussion This function will be called to request a subclass to check | +--- it's internal state for any work to do and then to call out the owner/action. | +--- @param moreP | +--- Pointer to the more-work output variable. Set to true if this function | +--- needs to be called again before all its outstanding events have been processed. | +--- @param wakeupTimeP | +--- Pointer to no-later wake up time output variable. Return variable to | +--- indicate when this object wishes to be called again; used for timeouts. | +--- Note the checkForWork method may be called before the timeout fires. | +--- Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout | +--- requested. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---checkForWork +---( | +---bool | +--- | +---* | +---moreP | +---, | +--- | +---mach_timespec_t | +--- | +---* | +---wakeupTimeP | +---) +--- +---= +--- +---0 +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setWorkLoop | +--- @abstract Set'ter for workLoop variable. | +--- @param workLoop | +--- Target work-loop of this event source instance. A subclass of | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | +--- functions. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setWorkLoop +---( | +---IOWorkLoop | +--- | +---* | +---workLoop | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setNext | +--- @abstract Set'ter for eventChainNext variable. | +--- @param next | +--- Pointer to another IOEventSource instance. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: eventChainNext (HeaderDoc::Var) +-*-IOEventSource (HAS STATE) +--- +---* +---eventChainNext +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var owner The owner object called when an event has been delivered. | +---*/ +---[ NEWLINE ] +--- +-*-OSObject (HAS STATE) +--- +---* +---owner +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var action | +--- The action method called when an event has been delivered | +---*/ +---[ NEWLINE ] +--- +-*-Action (HAS STATE) +--- +---action +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var enabled | +--- Is this event source enabled to deliver requests to the work-loop. | +---*/ +---[ NEWLINE ] +--- +-*-bool (HAS STATE) +--- +---enabled +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var workLoop What is the work-loop for this event source. | +---*/ +---[ NEWLINE ] +--- +-*-IOWorkLoop (HAS STATE) +--- +---* +---workLoop +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- | +--- @function getID | +--- HeaderDoc test of multiline inline function definition. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +-*-int (HAS STATE) +--- +---getID +---( | +---) +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function init | +--- @abstract Primary initialiser for the IOEventSource class. | +--- @throws halibut | +--- @throws mackeral | +--- @throws peanuts | +--- @param owner | +--- Owner of this instance of an event source. Used as the first parameter | +--- of the action callout. Owner will generally be an OSObject it doesn't have to | +--- be as no member functions will be called directly in it. It can just be a | +--- refcon for a client routine. | +--- @param action | +--- Pointer to C call out function. Action is a pointer to a C function | +--- that gets called when this event source has outstanding work. It will usually | +--- be called by the checkForWork member function. The first parameter of the | +--- action call out will always be the owner, this allows C++ member functions to | +--- be used as actions. Defaults to 0. | +--- @result true if the inherited classes and this instance initialise | +--- successfully. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---init +---( | +---OSObject | +--- | +---* | +---owner | +---, | +--- | +---IOEventSource | +---:: | +---Action | +--- | +---action | +--- | +---= | +--- | +---0 | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function checkForWork | +--- @abstract Pure Virtual member function used by IOWorkLoop for work | +--- scheduling. | +--- @discussion This function will be called to request a subclass to check | +--- it's internal state for any work to do and then to call out the owner/action. | +--- @param moreP | +--- Pointer to the more-work output variable. Set to true if this function | +--- needs to be called again before all its outstanding events have been processed. | +--- @param wakeupTimeP | +--- Pointer to no-later wake up time output variable. Return variable to | +--- indicate when this object wishes to be called again; used for timeouts. | +--- Note the checkForWork method may be called before the timeout fires. | +--- Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout | +--- requested. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---checkForWork +---( | +---bool | +--- | +---* | +---moreP | +---, | +--- | +---mach_timespec_t | +--- | +---* | +---wakeupTimeP | +---) +--- +---= +--- +---0 +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setWorkLoop | +--- @abstract Set'ter for workLoop variable. | +--- @param workLoop | +--- Target work-loop of this event source instance. A subclass of | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | +--- functions. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setWorkLoop +---( | +---IOWorkLoop | +--- | +---* | +---workLoop | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setNext | +--- @abstract Set'ter for eventChainNext variable. | +--- @param next | +--- Pointer to another IOEventSource instance. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: owner (HeaderDoc::Var) +-*-OSObject (HAS STATE) +--- +---* +---owner +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var action | +--- The action method called when an event has been delivered | +---*/ +---[ NEWLINE ] +--- +-*-Action (HAS STATE) +--- +---action +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var enabled | +--- Is this event source enabled to deliver requests to the work-loop. | +---*/ +---[ NEWLINE ] +--- +-*-bool (HAS STATE) +--- +---enabled +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var workLoop What is the work-loop for this event source. | +---*/ +---[ NEWLINE ] +--- +-*-IOWorkLoop (HAS STATE) +--- +---* +---workLoop +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- | +--- @function getID | +--- HeaderDoc test of multiline inline function definition. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +-*-int (HAS STATE) +--- +---getID +---( | +---) +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function init | +--- @abstract Primary initialiser for the IOEventSource class. | +--- @throws halibut | +--- @throws mackeral | +--- @throws peanuts | +--- @param owner | +--- Owner of this instance of an event source. Used as the first parameter | +--- of the action callout. Owner will generally be an OSObject it doesn't have to | +--- be as no member functions will be called directly in it. It can just be a | +--- refcon for a client routine. | +--- @param action | +--- Pointer to C call out function. Action is a pointer to a C function | +--- that gets called when this event source has outstanding work. It will usually | +--- be called by the checkForWork member function. The first parameter of the | +--- action call out will always be the owner, this allows C++ member functions to | +--- be used as actions. Defaults to 0. | +--- @result true if the inherited classes and this instance initialise | +--- successfully. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---init +---( | +---OSObject | +--- | +---* | +---owner | +---, | +--- | +---IOEventSource | +---:: | +---Action | +--- | +---action | +--- | +---= | +--- | +---0 | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function checkForWork | +--- @abstract Pure Virtual member function used by IOWorkLoop for work | +--- scheduling. | +--- @discussion This function will be called to request a subclass to check | +--- it's internal state for any work to do and then to call out the owner/action. | +--- @param moreP | +--- Pointer to the more-work output variable. Set to true if this function | +--- needs to be called again before all its outstanding events have been processed. | +--- @param wakeupTimeP | +--- Pointer to no-later wake up time output variable. Return variable to | +--- indicate when this object wishes to be called again; used for timeouts. | +--- Note the checkForWork method may be called before the timeout fires. | +--- Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout | +--- requested. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---checkForWork +---( | +---bool | +--- | +---* | +---moreP | +---, | +--- | +---mach_timespec_t | +--- | +---* | +---wakeupTimeP | +---) +--- +---= +--- +---0 +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setWorkLoop | +--- @abstract Set'ter for workLoop variable. | +--- @param workLoop | +--- Target work-loop of this event source instance. A subclass of | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | +--- functions. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setWorkLoop +---( | +---IOWorkLoop | +--- | +---* | +---workLoop | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setNext | +--- @abstract Set'ter for eventChainNext variable. | +--- @param next | +--- Pointer to another IOEventSource instance. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: action (HeaderDoc::Var) +-*-Action (HAS STATE) +--- +---action +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var enabled | +--- Is this event source enabled to deliver requests to the work-loop. | +---*/ +---[ NEWLINE ] +--- +-*-bool (HAS STATE) +--- +---enabled +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var workLoop What is the work-loop for this event source. | +---*/ +---[ NEWLINE ] +--- +-*-IOWorkLoop (HAS STATE) +--- +---* +---workLoop +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- | +--- @function getID | +--- HeaderDoc test of multiline inline function definition. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +-*-int (HAS STATE) +--- +---getID +---( | +---) +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function init | +--- @abstract Primary initialiser for the IOEventSource class. | +--- @throws halibut | +--- @throws mackeral | +--- @throws peanuts | +--- @param owner | +--- Owner of this instance of an event source. Used as the first parameter | +--- of the action callout. Owner will generally be an OSObject it doesn't have to | +--- be as no member functions will be called directly in it. It can just be a | +--- refcon for a client routine. | +--- @param action | +--- Pointer to C call out function. Action is a pointer to a C function | +--- that gets called when this event source has outstanding work. It will usually | +--- be called by the checkForWork member function. The first parameter of the | +--- action call out will always be the owner, this allows C++ member functions to | +--- be used as actions. Defaults to 0. | +--- @result true if the inherited classes and this instance initialise | +--- successfully. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---init +---( | +---OSObject | +--- | +---* | +---owner | +---, | +--- | +---IOEventSource | +---:: | +---Action | +--- | +---action | +--- | +---= | +--- | +---0 | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function checkForWork | +--- @abstract Pure Virtual member function used by IOWorkLoop for work | +--- scheduling. | +--- @discussion This function will be called to request a subclass to check | +--- it's internal state for any work to do and then to call out the owner/action. | +--- @param moreP | +--- Pointer to the more-work output variable. Set to true if this function | +--- needs to be called again before all its outstanding events have been processed. | +--- @param wakeupTimeP | +--- Pointer to no-later wake up time output variable. Return variable to | +--- indicate when this object wishes to be called again; used for timeouts. | +--- Note the checkForWork method may be called before the timeout fires. | +--- Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout | +--- requested. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---checkForWork +---( | +---bool | +--- | +---* | +---moreP | +---, | +--- | +---mach_timespec_t | +--- | +---* | +---wakeupTimeP | +---) +--- +---= +--- +---0 +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setWorkLoop | +--- @abstract Set'ter for workLoop variable. | +--- @param workLoop | +--- Target work-loop of this event source instance. A subclass of | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | +--- functions. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setWorkLoop +---( | +---IOWorkLoop | +--- | +---* | +---workLoop | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setNext | +--- @abstract Set'ter for eventChainNext variable. | +--- @param next | +--- Pointer to another IOEventSource instance. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: enabled (HeaderDoc::Var) +-*-bool (HAS STATE) +--- +---enabled +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @var workLoop What is the work-loop for this event source. | +---*/ +---[ NEWLINE ] +--- +-*-IOWorkLoop (HAS STATE) +--- +---* +---workLoop +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- | +--- @function getID | +--- HeaderDoc test of multiline inline function definition. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +-*-int (HAS STATE) +--- +---getID +---( | +---) +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function init | +--- @abstract Primary initialiser for the IOEventSource class. | +--- @throws halibut | +--- @throws mackeral | +--- @throws peanuts | +--- @param owner | +--- Owner of this instance of an event source. Used as the first parameter | +--- of the action callout. Owner will generally be an OSObject it doesn't have to | +--- be as no member functions will be called directly in it. It can just be a | +--- refcon for a client routine. | +--- @param action | +--- Pointer to C call out function. Action is a pointer to a C function | +--- that gets called when this event source has outstanding work. It will usually | +--- be called by the checkForWork member function. The first parameter of the | +--- action call out will always be the owner, this allows C++ member functions to | +--- be used as actions. Defaults to 0. | +--- @result true if the inherited classes and this instance initialise | +--- successfully. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---init +---( | +---OSObject | +--- | +---* | +---owner | +---, | +--- | +---IOEventSource | +---:: | +---Action | +--- | +---action | +--- | +---= | +--- | +---0 | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function checkForWork | +--- @abstract Pure Virtual member function used by IOWorkLoop for work | +--- scheduling. | +--- @discussion This function will be called to request a subclass to check | +--- it's internal state for any work to do and then to call out the owner/action. | +--- @param moreP | +--- Pointer to the more-work output variable. Set to true if this function | +--- needs to be called again before all its outstanding events have been processed. | +--- @param wakeupTimeP | +--- Pointer to no-later wake up time output variable. Return variable to | +--- indicate when this object wishes to be called again; used for timeouts. | +--- Note the checkForWork method may be called before the timeout fires. | +--- Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout | +--- requested. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---checkForWork +---( | +---bool | +--- | +---* | +---moreP | +---, | +--- | +---mach_timespec_t | +--- | +---* | +---wakeupTimeP | +---) +--- +---= +--- +---0 +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setWorkLoop | +--- @abstract Set'ter for workLoop variable. | +--- @param workLoop | +--- Target work-loop of this event source instance. A subclass of | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | +--- functions. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setWorkLoop +---( | +---IOWorkLoop | +--- | +---* | +---workLoop | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setNext | +--- @abstract Set'ter for eventChainNext variable. | +--- @param next | +--- Pointer to another IOEventSource instance. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT OBJECT: workLoop (HeaderDoc::Var) +-*-IOWorkLoop (HAS STATE) +--- +---* +---workLoop +---; +--- -=-=-=-=-=-=- EODEC -=-=-=-=-=-=- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- | +--- @function getID | +--- HeaderDoc test of multiline inline function definition. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +-*-int (HAS STATE) +--- +---getID +---( | +---) +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function init | +--- @abstract Primary initialiser for the IOEventSource class. | +--- @throws halibut | +--- @throws mackeral | +--- @throws peanuts | +--- @param owner | +--- Owner of this instance of an event source. Used as the first parameter | +--- of the action callout. Owner will generally be an OSObject it doesn't have to | +--- be as no member functions will be called directly in it. It can just be a | +--- refcon for a client routine. | +--- @param action | +--- Pointer to C call out function. Action is a pointer to a C function | +--- that gets called when this event source has outstanding work. It will usually | +--- be called by the checkForWork member function. The first parameter of the | +--- action call out will always be the owner, this allows C++ member functions to | +--- be used as actions. Defaults to 0. | +--- @result true if the inherited classes and this instance initialise | +--- successfully. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---init +---( | +---OSObject | +--- | +---* | +---owner | +---, | +--- | +---IOEventSource | +---:: | +---Action | +--- | +---action | +--- | +---= | +--- | +---0 | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function checkForWork | +--- @abstract Pure Virtual member function used by IOWorkLoop for work | +--- scheduling. | +--- @discussion This function will be called to request a subclass to check | +--- it's internal state for any work to do and then to call out the owner/action. | +--- @param moreP | +--- Pointer to the more-work output variable. Set to true if this function | +--- needs to be called again before all its outstanding events have been processed. | +--- @param wakeupTimeP | +--- Pointer to no-later wake up time output variable. Return variable to | +--- indicate when this object wishes to be called again; used for timeouts. | +--- Note the checkForWork method may be called before the timeout fires. | +--- Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout | +--- requested. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---checkForWork +---( | +---bool | +--- | +---* | +---moreP | +---, | +--- | +---mach_timespec_t | +--- | +---* | +---wakeupTimeP | +---) +--- +---= +--- +---0 +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setWorkLoop | +--- @abstract Set'ter for workLoop variable. | +--- @param workLoop | +--- Target work-loop of this event source instance. A subclass of | +--- IOWorkLoop that at least reacts to signalWorkAvailable() and onThread | +--- functions. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setWorkLoop +---( | +---IOWorkLoop | +--- | +---* | +---workLoop | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function setNext | +--- @abstract Set'ter for eventChainNext variable. | +--- @param next | +--- Pointer to another IOEventSource instance. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setNext +---( | +---IOEventSource | +--- | +---* | +---next | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getNext | +--- @abstract Get'ter for eventChainNext variable. | +--- @result value of eventChainNext. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +--- +---* +---getNext +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---public +---: +---[ NEWLINE ] +---/* | +---! | +--- @function setAction | +--- @abstract Set'ter for action variable. | +--- @param action | +--- Pointer to a C function of type IOEventSource::Action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---setAction +---( | +---IOEventSource | +---:: | +---Action | +--- | +---action | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getAction | +--- @abstract Get'ter for action variable. | +--- @result value of action. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOEventSource +---:: +---Action +--- +---getAction +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function enable | +--- @abstract Enable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. Calling this function will cause the | +--- work-loop to be signalled so that a checkForWork is performed. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---enable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function disable | +--- @abstract Disable event source. | +--- @discussion A subclass implementation is expected to respect the enabled | +--- state when checkForWork is called. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---void +--- +---disable +---( | +---) +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function isEnabled | +--- @abstract Get'ter for enable variable. | +--- @result true if enabled. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---isEnabled +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function getWorkLoop | +--- @abstract Get'ter for workLoop variable. | +--- @result value of workLoop. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---IOWorkLoop +--- +---* +---getWorkLoop +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---[ NEWLINE ] +---/* | +---! | +--- @function onThread | +--- @abstract Convenience function for workLoop->onThread. | +--- @result true if called on the work-loop thread. | +---[ NEWLINE ] | +---*/ +---[ NEWLINE ] +--- +-*-virtual (HAS STATE) +--- +---bool +--- +---onThread +---( | +---) +--- +---const +---; +--- +---[ NEWLINE ] +---} END OF OBJECT -=: HTML OUTPUT OF PARSE TREES :=- OBJECT: IOEventSource (HeaderDoc::CPPClass) <span class="keyword">class</span> <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a --> : <span class="keyword">public</span> <!-- a logicalPath="//test_ref/cpp/cl/OSObject //test_ref/cpp/tdef/OSObject //test_ref/cpp/tag/OSObject //test_ref/cpp/struct/OSObject //test_ref/cpp/intf/OSObject //test_ref/doc/anysymbol/OSObject" machineGenerated="true" --><span class="type">OSObject</span><!-- /a --> { <!-- a logicalPath="//test_ref/cpp/instm/OSDeclareAbstractStructors //test_ref/cpp/clm/OSDeclareAbstractStructors //test_ref/cpp/intfcm/OSDeclareAbstractStructors //test_ref/cpp/intfm/OSDeclareAbstractStructors //test_ref/cpp/func/OSDeclareAbstractStructors //test_ref/cpp/ftmplt/OSDeclareAbstractStructors //test_ref/cpp/defn/OSDeclareAbstractStructors //test_ref/cpp/macro/OSDeclareAbstractStructors //test_ref/doc/anysymbol/OSDeclareAbstractStructors" machineGenerated="true" --><span class="function">OSDeclareAbstractStructors</span><!-- /a -->( <span class="param">IOEventSource</span>) <span class="keyword">friend</span> <span class="keyword">class</span> <!-- a logicalPath="//test_ref/cpp/econst/IOWorkLoop //test_ref/cpp/data/IOWorkLoop //test_ref/cpp/clconst/IOWorkLoop " machineGenerated="true" --><span class="var">IOWorkLoop</span><!-- /a -->; <span class="keyword">public</span>: <span class="comment">/*! @typedef Action @discussion Placeholder type for C++ function overloading discrimination. As the all event sources require an action and it has to be stored somewhere and be of some type, this is that type. @param owner Target of the function, can be used as a refcon. The owner is set during initialisation. Note if a C++ function was specified this parameter is implicitly the first paramter in the target member function's parameter list.</span> <span class="comment">*/</span> <span class="keyword">typedef</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> (<span class="type">*</span><!-- a logicalPath="//test_ref/cpp/instm/Action //test_ref/cpp/clm/Action //test_ref/cpp/intfcm/Action //test_ref/cpp/intfm/Action //test_ref/cpp/func/Action //test_ref/cpp/ftmplt/Action //test_ref/cpp/defn/Action //test_ref/cpp/macro/Action //test_ref/doc/anysymbol/Action" machineGenerated="true" --><span class="function">Action</span><!-- /a -->)( <!-- a logicalPath="//test_ref/cpp/cl/OSObject //test_ref/cpp/tdef/OSObject //test_ref/cpp/tag/OSObject //test_ref/cpp/struct/OSObject //test_ref/cpp/intf/OSObject //test_ref/doc/anysymbol/OSObject" machineGenerated="true" --><span class="type">OSObject</span><!-- /a --> <span class="type">*</span><span class="param">owner</span>, ...); <span class="keyword">protected</span>: <span class="comment">/*! @var eventChainNext </span> <span class="comment">*/</span> <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a --> <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/econst/eventChainNext //test_ref/cpp/data/eventChainNext //test_ref/cpp/clconst/eventChainNext " machineGenerated="true" --><span class="var">eventChainNext</span><!-- /a -->; <span class="comment">/*! @var owner The owner object called when an event has been delivered. </span> <span class="comment">*/</span> <!-- a logicalPath="//test_ref/cpp/cl/OSObject //test_ref/cpp/tdef/OSObject //test_ref/cpp/tag/OSObject //test_ref/cpp/struct/OSObject //test_ref/cpp/intf/OSObject //test_ref/doc/anysymbol/OSObject" machineGenerated="true" --><span class="type">OSObject</span><!-- /a --> <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/econst/owner //test_ref/cpp/data/owner //test_ref/cpp/clconst/owner " machineGenerated="true" --><span class="var">owner</span><!-- /a -->; <span class="comment">/*! @var action</span> <span class="comment">*/</span> <!-- a logicalPath="//test_ref/cpp/cl/Action //test_ref/cpp/tdef/Action //test_ref/cpp/tag/Action //test_ref/cpp/struct/Action //test_ref/cpp/intf/Action //test_ref/doc/anysymbol/Action" machineGenerated="true" --><span class="type">Action</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/econst/action //test_ref/cpp/data/action //test_ref/cpp/clconst/action " machineGenerated="true" --><span class="var">action</span><!-- /a -->; <span class="comment">/*! @var enabled </span> <span class="comment">*/</span> <!-- a logicalPath="//test_ref/cpp/cl/bool //test_ref/cpp/tdef/bool //test_ref/cpp/tag/bool //test_ref/cpp/struct/bool //test_ref/cpp/intf/bool //test_ref/doc/anysymbol/bool" machineGenerated="true" --><span class="type">bool</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/econst/enabled //test_ref/cpp/data/enabled //test_ref/cpp/clconst/enabled " machineGenerated="true" --><span class="var">enabled</span><!-- /a -->; <span class="comment">/*! @var workLoop What is the work-loop for this event source. </span> <span class="comment">*/</span> <!-- a logicalPath="//test_ref/cpp/cl/IOWorkLoop //test_ref/cpp/tdef/IOWorkLoop //test_ref/cpp/tag/IOWorkLoop //test_ref/cpp/struct/IOWorkLoop //test_ref/cpp/intf/IOWorkLoop //test_ref/doc/anysymbol/IOWorkLoop" machineGenerated="true" --><span class="type">IOWorkLoop</span><!-- /a --> <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/econst/workLoop //test_ref/cpp/data/workLoop //test_ref/cpp/clconst/workLoop " machineGenerated="true" --><span class="var">workLoop</span><!-- /a -->; <span class="comment">/*! @function getID HeaderDoc test of multiline inline function definition.</span> <span class="comment">*/</span> <!-- a logicalPath="//test_ref/cpp/cl/int //test_ref/cpp/tdef/int //test_ref/cpp/tag/int //test_ref/cpp/struct/int //test_ref/cpp/intf/int //test_ref/doc/anysymbol/int" machineGenerated="true" --><span class="type">int</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/getID //test_ref/cpp/clm/getID //test_ref/cpp/intfcm/getID //test_ref/cpp/intfm/getID //test_ref/cpp/func/getID //test_ref/cpp/ftmplt/getID //test_ref/cpp/defn/getID //test_ref/cpp/macro/getID //test_ref/doc/anysymbol/getID" machineGenerated="true" --><span class="function">getID</span><!-- /a -->() <span class="comment">/*! @function init @abstract Primary initialiser for the IOEventSource class. @throws halibut @throws mackeral @throws peanuts @param owner Owner of this instance of an event source. Used as the first parameter of the action callout. Owner will generally be an OSObject it doesn't have to be as no member functions will be called directly in it. It can just be a refcon for a client routine. @param action Pointer to C call out function. Action is a pointer to a C function that gets called when this event source has outstanding work. It will usually be called by the checkForWork member function. The first parameter of the action call out will always be the owner, this allows C++ member functions to be used as actions. Defaults to 0. @result true if the inherited classes and this instance initialise successfully.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/bool //test_ref/cpp/tdef/bool //test_ref/cpp/tag/bool //test_ref/cpp/struct/bool //test_ref/cpp/intf/bool //test_ref/doc/anysymbol/bool" machineGenerated="true" --><span class="type">bool</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/init //test_ref/cpp/clm/init //test_ref/cpp/intfcm/init //test_ref/cpp/intfm/init //test_ref/cpp/func/init //test_ref/cpp/ftmplt/init //test_ref/cpp/defn/init //test_ref/cpp/macro/init //test_ref/doc/anysymbol/init" machineGenerated="true" --><span class="function">init</span><!-- /a -->( <!-- a logicalPath="//test_ref/cpp/cl/OSObject //test_ref/cpp/tdef/OSObject //test_ref/cpp/tag/OSObject //test_ref/cpp/struct/OSObject //test_ref/cpp/intf/OSObject //test_ref/doc/anysymbol/OSObject" machineGenerated="true" --><span class="type">OSObject</span><!-- /a --> <span class="type">*</span><span class="param">owner</span>, <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a -->::<!-- a logicalPath="//test_ref/cpp/cl/Action //test_ref/cpp/tdef/Action //test_ref/cpp/tag/Action //test_ref/cpp/struct/Action //test_ref/cpp/intf/Action //test_ref/doc/anysymbol/Action" machineGenerated="true" --><span class="type">Action</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/cl/action //test_ref/cpp/tdef/action //test_ref/cpp/tag/action //test_ref/cpp/struct/action //test_ref/cpp/intf/action //test_ref/doc/anysymbol/action" machineGenerated="true" --><span class="type">action</span><!-- /a --> = <span class="number">0</span>); <span class="comment">/*! @function checkForWork @abstract Pure Virtual member function used by IOWorkLoop for work scheduling. @discussion This function will be called to request a subclass to check it's internal state for any work to do and then to call out the owner/action. @param moreP Pointer to the more-work output variable. Set to true if this function needs to be called again before all its outstanding events have been processed. @param wakeupTimeP Pointer to no-later wake up time output variable. Return variable to indicate when this object wishes to be called again; used for timeouts. Note the checkForWork method may be called before the timeout fires. Defaults to MACH_TIMESPEC_ZERO which is interpreted as no timeout requested.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/checkForWork //test_ref/cpp/clm/checkForWork //test_ref/cpp/intfcm/checkForWork //test_ref/cpp/intfm/checkForWork //test_ref/cpp/func/checkForWork //test_ref/cpp/ftmplt/checkForWork //test_ref/cpp/defn/checkForWork //test_ref/cpp/macro/checkForWork //test_ref/doc/anysymbol/checkForWork" machineGenerated="true" --><span class="function">checkForWork</span><!-- /a -->( <!-- a logicalPath="//test_ref/cpp/cl/bool //test_ref/cpp/tdef/bool //test_ref/cpp/tag/bool //test_ref/cpp/struct/bool //test_ref/cpp/intf/bool //test_ref/doc/anysymbol/bool" machineGenerated="true" --><span class="type">bool</span><!-- /a --> <span class="type">*</span><span class="param">moreP</span>, <!-- a logicalPath="//test_ref/cpp/cl/mach_timespec_t //test_ref/cpp/tdef/mach_timespec_t //test_ref/cpp/tag/mach_timespec_t //test_ref/cpp/struct/mach_timespec_t //test_ref/cpp/intf/mach_timespec_t //test_ref/doc/anysymbol/mach_timespec_t" machineGenerated="true" --><span class="type">mach_timespec_t</span><!-- /a --> <span class="type">*</span><span class="param">wakeupTimeP</span>) = <span class="number">0</span>; <span class="comment">/*! @function setWorkLoop @abstract Set'ter for workLoop variable. @param workLoop Target work-loop of this event source instance. A subclass of IOWorkLoop that at least reacts to signalWorkAvailable() and onThread functions.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/setWorkLoop //test_ref/cpp/clm/setWorkLoop //test_ref/cpp/intfcm/setWorkLoop //test_ref/cpp/intfm/setWorkLoop //test_ref/cpp/func/setWorkLoop //test_ref/cpp/ftmplt/setWorkLoop //test_ref/cpp/defn/setWorkLoop //test_ref/cpp/macro/setWorkLoop //test_ref/doc/anysymbol/setWorkLoop" machineGenerated="true" --><span class="function">setWorkLoop</span><!-- /a -->( <!-- a logicalPath="//test_ref/cpp/cl/IOWorkLoop //test_ref/cpp/tdef/IOWorkLoop //test_ref/cpp/tag/IOWorkLoop //test_ref/cpp/struct/IOWorkLoop //test_ref/cpp/intf/IOWorkLoop //test_ref/doc/anysymbol/IOWorkLoop" machineGenerated="true" --><span class="type">IOWorkLoop</span><!-- /a --> <span class="type">*</span><span class="param">workLoop</span>); <span class="comment">/*! @function setNext @abstract Set'ter for eventChainNext variable. @param next Pointer to another IOEventSource instance.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/setNext //test_ref/cpp/clm/setNext //test_ref/cpp/intfcm/setNext //test_ref/cpp/intfm/setNext //test_ref/cpp/func/setNext //test_ref/cpp/ftmplt/setNext //test_ref/cpp/defn/setNext //test_ref/cpp/macro/setNext //test_ref/doc/anysymbol/setNext" machineGenerated="true" --><span class="function">setNext</span><!-- /a -->( <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a --> <span class="type">*</span><span class="param">next</span>); <span class="comment">/*! @function getNext @abstract Get'ter for eventChainNext variable. @result value of eventChainNext.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a --> <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/instm/getNext //test_ref/cpp/clm/getNext //test_ref/cpp/intfcm/getNext //test_ref/cpp/intfm/getNext //test_ref/cpp/func/getNext //test_ref/cpp/ftmplt/getNext //test_ref/cpp/defn/getNext //test_ref/cpp/macro/getNext //test_ref/doc/anysymbol/getNext" machineGenerated="true" --><span class="function">getNext</span><!-- /a -->() <span class="keyword">const</span>; <span class="keyword">public</span>: <span class="comment">/*! @function setAction @abstract Set'ter for action variable. @param action Pointer to a C function of type IOEventSource::Action.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/setAction //test_ref/cpp/clm/setAction //test_ref/cpp/intfcm/setAction //test_ref/cpp/intfm/setAction //test_ref/cpp/func/setAction //test_ref/cpp/ftmplt/setAction //test_ref/cpp/defn/setAction //test_ref/cpp/macro/setAction //test_ref/doc/anysymbol/setAction" machineGenerated="true" --><span class="function">setAction</span><!-- /a -->( <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a -->::<!-- a logicalPath="//test_ref/cpp/cl/Action //test_ref/cpp/tdef/Action //test_ref/cpp/tag/Action //test_ref/cpp/struct/Action //test_ref/cpp/intf/Action //test_ref/doc/anysymbol/Action" machineGenerated="true" --><span class="type">Action</span><!-- /a --> <span class="param">action</span>); <span class="comment">/*! @function getAction @abstract Get'ter for action variable. @result value of action.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a -->::<!-- a logicalPath="//test_ref/cpp/cl/Action //test_ref/cpp/tdef/Action //test_ref/cpp/tag/Action //test_ref/cpp/struct/Action //test_ref/cpp/intf/Action //test_ref/doc/anysymbol/Action" machineGenerated="true" --><span class="type">Action</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/getAction //test_ref/cpp/clm/getAction //test_ref/cpp/intfcm/getAction //test_ref/cpp/intfm/getAction //test_ref/cpp/func/getAction //test_ref/cpp/ftmplt/getAction //test_ref/cpp/defn/getAction //test_ref/cpp/macro/getAction //test_ref/doc/anysymbol/getAction" machineGenerated="true" --><span class="function">getAction</span><!-- /a -->() <span class="keyword">const</span>; <span class="comment">/*! @function enable @abstract Enable event source. @discussion A subclass implementation is expected to respect the enabled state when checkForWork is called. Calling this function will cause the work-loop to be signalled so that a checkForWork is performed.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/enable //test_ref/cpp/clm/enable //test_ref/cpp/intfcm/enable //test_ref/cpp/intfm/enable //test_ref/cpp/func/enable //test_ref/cpp/ftmplt/enable //test_ref/cpp/defn/enable //test_ref/cpp/macro/enable //test_ref/doc/anysymbol/enable" machineGenerated="true" --><span class="function">enable</span><!-- /a -->(); <span class="comment">/*! @function disable @abstract Disable event source. @discussion A subclass implementation is expected to respect the enabled state when checkForWork is called.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/disable //test_ref/cpp/clm/disable //test_ref/cpp/intfcm/disable //test_ref/cpp/intfm/disable //test_ref/cpp/func/disable //test_ref/cpp/ftmplt/disable //test_ref/cpp/defn/disable //test_ref/cpp/macro/disable //test_ref/doc/anysymbol/disable" machineGenerated="true" --><span class="function">disable</span><!-- /a -->(); <span class="comment">/*! @function isEnabled @abstract Get'ter for enable variable. @result true if enabled.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/bool //test_ref/cpp/tdef/bool //test_ref/cpp/tag/bool //test_ref/cpp/struct/bool //test_ref/cpp/intf/bool //test_ref/doc/anysymbol/bool" machineGenerated="true" --><span class="type">bool</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/isEnabled //test_ref/cpp/clm/isEnabled //test_ref/cpp/intfcm/isEnabled //test_ref/cpp/intfm/isEnabled //test_ref/cpp/func/isEnabled //test_ref/cpp/ftmplt/isEnabled //test_ref/cpp/defn/isEnabled //test_ref/cpp/macro/isEnabled //test_ref/doc/anysymbol/isEnabled" machineGenerated="true" --><span class="function">isEnabled</span><!-- /a -->() <span class="keyword">const</span>; <span class="comment">/*! @function getWorkLoop @abstract Get'ter for workLoop variable. @result value of workLoop.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/IOWorkLoop //test_ref/cpp/tdef/IOWorkLoop //test_ref/cpp/tag/IOWorkLoop //test_ref/cpp/struct/IOWorkLoop //test_ref/cpp/intf/IOWorkLoop //test_ref/doc/anysymbol/IOWorkLoop" machineGenerated="true" --><span class="type">IOWorkLoop</span><!-- /a --> <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/instm/getWorkLoop //test_ref/cpp/clm/getWorkLoop //test_ref/cpp/intfcm/getWorkLoop //test_ref/cpp/intfm/getWorkLoop //test_ref/cpp/func/getWorkLoop //test_ref/cpp/ftmplt/getWorkLoop //test_ref/cpp/defn/getWorkLoop //test_ref/cpp/macro/getWorkLoop //test_ref/doc/anysymbol/getWorkLoop" machineGenerated="true" --><span class="function">getWorkLoop</span><!-- /a -->() <span class="keyword">const</span>; <span class="comment">/*! @function onThread @abstract Convenience function for workLoop->onThread. @result true if called on the work-loop thread.</span> <span class="comment">*/</span> <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/bool //test_ref/cpp/tdef/bool //test_ref/cpp/tag/bool //test_ref/cpp/struct/bool //test_ref/cpp/intf/bool //test_ref/doc/anysymbol/bool" machineGenerated="true" --><span class="type">bool</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/onThread //test_ref/cpp/clm/onThread //test_ref/cpp/intfcm/onThread //test_ref/cpp/intfm/onThread //test_ref/cpp/func/onThread //test_ref/cpp/ftmplt/onThread //test_ref/cpp/defn/onThread //test_ref/cpp/macro/onThread //test_ref/doc/anysymbol/onThread" machineGenerated="true" --><span class="function">onThread</span><!-- /a -->() <span class="keyword">const</span>; }; END OF OBJECT OBJECT: OSDeclareAbstractStructors (HeaderDoc::Function) <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/OSDeclareAbstractStructors //test_ref/cpp/clm/IOEventSource/OSDeclareAbstractStructors //test_ref/cpp/intfcm/IOEventSource/OSDeclareAbstractStructors //test_ref/cpp/intfm/IOEventSource/OSDeclareAbstractStructors //test_ref/cpp/func/OSDeclareAbstractStructors //test_ref/cpp/ftmplt/IOEventSource/OSDeclareAbstractStructors //test_ref/cpp/defn/OSDeclareAbstractStructors //test_ref/cpp/macro/OSDeclareAbstractStructors //test_ref/doc/anysymbol/OSDeclareAbstractStructors" machineGenerated="true" --><span class="function">OSDeclareAbstractStructors</span><!-- /a -->( <span class="param">IOEventSource</span>) <span class="keyword">friend</span> <span class="keyword">class</span> <!-- a logicalPath="//test_ref/cpp/econst/IOWorkLoop //test_ref/cpp/data/IOEventSource/IOWorkLoop //test_ref/cpp/data/IOWorkLoop //test_ref/cpp/clconst/IOEventSource/IOWorkLoop " machineGenerated="true" --><span class="var">IOWorkLoop</span><!-- /a -->; END OF OBJECT OBJECT: getID (HeaderDoc::Function) <!-- a logicalPath="//test_ref/cpp/cl/int //test_ref/cpp/tdef/int //test_ref/cpp/tag/int //test_ref/cpp/struct/int //test_ref/cpp/intf/int //test_ref/doc/anysymbol/int" machineGenerated="true" --><span class="type">int</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/getID //test_ref/cpp/clm/IOEventSource/getID //test_ref/cpp/intfcm/IOEventSource/getID //test_ref/cpp/intfm/IOEventSource/getID //test_ref/cpp/func/getID //test_ref/cpp/ftmplt/IOEventSource/getID //test_ref/cpp/defn/getID //test_ref/cpp/macro/getID //test_ref/doc/anysymbol/getID" machineGenerated="true" --><span class="function">getID</span><!-- /a -->() END OF OBJECT OBJECT: init (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/bool //test_ref/cpp/tdef/bool //test_ref/cpp/tag/bool //test_ref/cpp/struct/bool //test_ref/cpp/intf/bool //test_ref/doc/anysymbol/bool" machineGenerated="true" --><span class="type">bool</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/init //test_ref/cpp/clm/IOEventSource/init //test_ref/cpp/intfcm/IOEventSource/init //test_ref/cpp/intfm/IOEventSource/init //test_ref/cpp/func/init //test_ref/cpp/ftmplt/IOEventSource/init //test_ref/cpp/defn/init //test_ref/cpp/macro/init //test_ref/doc/anysymbol/init" machineGenerated="true" --><span class="function">init</span><!-- /a -->( <!-- a logicalPath="//test_ref/cpp/cl/OSObject //test_ref/cpp/tdef/OSObject //test_ref/cpp/tag/OSObject //test_ref/cpp/struct/OSObject //test_ref/cpp/intf/OSObject //test_ref/doc/anysymbol/OSObject" machineGenerated="true" --><span class="type">OSObject</span><!-- /a --> <span class="type">*</span><span class="param">owner</span>, <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a -->::<!-- a logicalPath="//test_ref/cpp/cl/Action //test_ref/cpp/tdef/Action //test_ref/cpp/tag/Action //test_ref/cpp/struct/Action //test_ref/cpp/intf/Action //test_ref/doc/anysymbol/Action" machineGenerated="true" --><span class="type">Action</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/cl/action //test_ref/cpp/tdef/action //test_ref/cpp/tag/action //test_ref/cpp/struct/action //test_ref/cpp/intf/action //test_ref/doc/anysymbol/action" machineGenerated="true" --><span class="type">action</span><!-- /a --> = <span class="number">0</span>); END OF OBJECT OBJECT: checkForWork (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/checkForWork //test_ref/cpp/clm/IOEventSource/checkForWork //test_ref/cpp/intfcm/IOEventSource/checkForWork //test_ref/cpp/intfm/IOEventSource/checkForWork //test_ref/cpp/func/checkForWork //test_ref/cpp/ftmplt/IOEventSource/checkForWork //test_ref/cpp/defn/checkForWork //test_ref/cpp/macro/checkForWork //test_ref/doc/anysymbol/checkForWork" machineGenerated="true" --><span class="function">checkForWork</span><!-- /a -->( <!-- a logicalPath="//test_ref/cpp/cl/bool //test_ref/cpp/tdef/bool //test_ref/cpp/tag/bool //test_ref/cpp/struct/bool //test_ref/cpp/intf/bool //test_ref/doc/anysymbol/bool" machineGenerated="true" --><span class="type">bool</span><!-- /a --> <span class="type">*</span><span class="param">moreP</span>, <!-- a logicalPath="//test_ref/cpp/cl/mach_timespec_t //test_ref/cpp/tdef/mach_timespec_t //test_ref/cpp/tag/mach_timespec_t //test_ref/cpp/struct/mach_timespec_t //test_ref/cpp/intf/mach_timespec_t //test_ref/doc/anysymbol/mach_timespec_t" machineGenerated="true" --><span class="type">mach_timespec_t</span><!-- /a --> <span class="type">*</span><span class="param">wakeupTimeP</span>) = <span class="number">0</span>; END OF OBJECT OBJECT: setWorkLoop (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/setWorkLoop //test_ref/cpp/clm/IOEventSource/setWorkLoop //test_ref/cpp/intfcm/IOEventSource/setWorkLoop //test_ref/cpp/intfm/IOEventSource/setWorkLoop //test_ref/cpp/func/setWorkLoop //test_ref/cpp/ftmplt/IOEventSource/setWorkLoop //test_ref/cpp/defn/setWorkLoop //test_ref/cpp/macro/setWorkLoop //test_ref/doc/anysymbol/setWorkLoop" machineGenerated="true" --><span class="function">setWorkLoop</span><!-- /a -->( <!-- a logicalPath="//test_ref/cpp/cl/IOWorkLoop //test_ref/cpp/tdef/IOWorkLoop //test_ref/cpp/tag/IOWorkLoop //test_ref/cpp/struct/IOWorkLoop //test_ref/cpp/intf/IOWorkLoop //test_ref/doc/anysymbol/IOWorkLoop" machineGenerated="true" --><span class="type">IOWorkLoop</span><!-- /a --> <span class="type">*</span><span class="param">workLoop</span>); END OF OBJECT OBJECT: setNext (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/setNext //test_ref/cpp/clm/IOEventSource/setNext //test_ref/cpp/intfcm/IOEventSource/setNext //test_ref/cpp/intfm/IOEventSource/setNext //test_ref/cpp/func/setNext //test_ref/cpp/ftmplt/IOEventSource/setNext //test_ref/cpp/defn/setNext //test_ref/cpp/macro/setNext //test_ref/doc/anysymbol/setNext" machineGenerated="true" --><span class="function">setNext</span><!-- /a -->( <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a --> <span class="type">*</span><span class="param">next</span>); END OF OBJECT OBJECT: getNext (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a --> <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/getNext //test_ref/cpp/clm/IOEventSource/getNext //test_ref/cpp/intfcm/IOEventSource/getNext //test_ref/cpp/intfm/IOEventSource/getNext //test_ref/cpp/func/getNext //test_ref/cpp/ftmplt/IOEventSource/getNext //test_ref/cpp/defn/getNext //test_ref/cpp/macro/getNext //test_ref/doc/anysymbol/getNext" machineGenerated="true" --><span class="function">getNext</span><!-- /a -->() <span class="keyword">const</span>; END OF OBJECT OBJECT: setAction (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/setAction //test_ref/cpp/clm/IOEventSource/setAction //test_ref/cpp/intfcm/IOEventSource/setAction //test_ref/cpp/intfm/IOEventSource/setAction //test_ref/cpp/func/setAction //test_ref/cpp/ftmplt/IOEventSource/setAction //test_ref/cpp/defn/setAction //test_ref/cpp/macro/setAction //test_ref/doc/anysymbol/setAction" machineGenerated="true" --><span class="function">setAction</span><!-- /a -->( <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a -->::<!-- a logicalPath="//test_ref/cpp/cl/Action //test_ref/cpp/tdef/Action //test_ref/cpp/tag/Action //test_ref/cpp/struct/Action //test_ref/cpp/intf/Action //test_ref/doc/anysymbol/Action" machineGenerated="true" --><span class="type">Action</span><!-- /a --> <span class="param">action</span>); END OF OBJECT OBJECT: getAction (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a -->::<!-- a logicalPath="//test_ref/cpp/cl/Action //test_ref/cpp/tdef/Action //test_ref/cpp/tag/Action //test_ref/cpp/struct/Action //test_ref/cpp/intf/Action //test_ref/doc/anysymbol/Action" machineGenerated="true" --><span class="type">Action</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/getAction //test_ref/cpp/clm/IOEventSource/getAction //test_ref/cpp/intfcm/IOEventSource/getAction //test_ref/cpp/intfm/IOEventSource/getAction //test_ref/cpp/func/getAction //test_ref/cpp/ftmplt/IOEventSource/getAction //test_ref/cpp/defn/getAction //test_ref/cpp/macro/getAction //test_ref/doc/anysymbol/getAction" machineGenerated="true" --><span class="function">getAction</span><!-- /a -->() <span class="keyword">const</span>; END OF OBJECT OBJECT: enable (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/enable //test_ref/cpp/clm/IOEventSource/enable //test_ref/cpp/intfcm/IOEventSource/enable //test_ref/cpp/intfm/IOEventSource/enable //test_ref/cpp/func/enable //test_ref/cpp/ftmplt/IOEventSource/enable //test_ref/cpp/defn/enable //test_ref/cpp/macro/enable //test_ref/doc/anysymbol/enable" machineGenerated="true" --><span class="function">enable</span><!-- /a -->(); END OF OBJECT OBJECT: disable (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/disable //test_ref/cpp/clm/IOEventSource/disable //test_ref/cpp/intfcm/IOEventSource/disable //test_ref/cpp/intfm/IOEventSource/disable //test_ref/cpp/func/disable //test_ref/cpp/ftmplt/IOEventSource/disable //test_ref/cpp/defn/disable //test_ref/cpp/macro/disable //test_ref/doc/anysymbol/disable" machineGenerated="true" --><span class="function">disable</span><!-- /a -->(); END OF OBJECT OBJECT: isEnabled (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/bool //test_ref/cpp/tdef/bool //test_ref/cpp/tag/bool //test_ref/cpp/struct/bool //test_ref/cpp/intf/bool //test_ref/doc/anysymbol/bool" machineGenerated="true" --><span class="type">bool</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/isEnabled //test_ref/cpp/clm/IOEventSource/isEnabled //test_ref/cpp/intfcm/IOEventSource/isEnabled //test_ref/cpp/intfm/IOEventSource/isEnabled //test_ref/cpp/func/isEnabled //test_ref/cpp/ftmplt/IOEventSource/isEnabled //test_ref/cpp/defn/isEnabled //test_ref/cpp/macro/isEnabled //test_ref/doc/anysymbol/isEnabled" machineGenerated="true" --><span class="function">isEnabled</span><!-- /a -->() <span class="keyword">const</span>; END OF OBJECT OBJECT: getWorkLoop (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/IOWorkLoop //test_ref/cpp/tdef/IOWorkLoop //test_ref/cpp/tag/IOWorkLoop //test_ref/cpp/struct/IOWorkLoop //test_ref/cpp/intf/IOWorkLoop //test_ref/doc/anysymbol/IOWorkLoop" machineGenerated="true" --><span class="type">IOWorkLoop</span><!-- /a --> <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/getWorkLoop //test_ref/cpp/clm/IOEventSource/getWorkLoop //test_ref/cpp/intfcm/IOEventSource/getWorkLoop //test_ref/cpp/intfm/IOEventSource/getWorkLoop //test_ref/cpp/func/getWorkLoop //test_ref/cpp/ftmplt/IOEventSource/getWorkLoop //test_ref/cpp/defn/getWorkLoop //test_ref/cpp/macro/getWorkLoop //test_ref/doc/anysymbol/getWorkLoop" machineGenerated="true" --><span class="function">getWorkLoop</span><!-- /a -->() <span class="keyword">const</span>; END OF OBJECT OBJECT: onThread (HeaderDoc::Function) <span class="keyword">virtual</span> <!-- a logicalPath="//test_ref/cpp/cl/bool //test_ref/cpp/tdef/bool //test_ref/cpp/tag/bool //test_ref/cpp/struct/bool //test_ref/cpp/intf/bool //test_ref/doc/anysymbol/bool" machineGenerated="true" --><span class="type">bool</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/onThread //test_ref/cpp/clm/IOEventSource/onThread //test_ref/cpp/intfcm/IOEventSource/onThread //test_ref/cpp/intfm/IOEventSource/onThread //test_ref/cpp/func/onThread //test_ref/cpp/ftmplt/IOEventSource/onThread //test_ref/cpp/defn/onThread //test_ref/cpp/macro/onThread //test_ref/doc/anysymbol/onThread" machineGenerated="true" --><span class="function">onThread</span><!-- /a -->() <span class="keyword">const</span>; END OF OBJECT OBJECT: Action (HeaderDoc::Typedef) <span class="keyword">typedef</span> <!-- a logicalPath="//test_ref/cpp/cl/void //test_ref/cpp/tdef/void //test_ref/cpp/tag/void //test_ref/cpp/struct/void //test_ref/cpp/intf/void //test_ref/doc/anysymbol/void" machineGenerated="true" --><span class="type">void</span><!-- /a --> ( <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/instm/IOEventSource/Action //test_ref/cpp/clm/IOEventSource/Action //test_ref/cpp/intfcm/IOEventSource/Action //test_ref/cpp/intfm/IOEventSource/Action //test_ref/cpp/func/Action //test_ref/cpp/ftmplt/IOEventSource/Action //test_ref/cpp/defn/Action //test_ref/cpp/macro/Action //test_ref/doc/anysymbol/Action" machineGenerated="true" --><span class="function">Action</span><!-- /a -->)( <!-- a logicalPath="//test_ref/cpp/cl/OSObject //test_ref/cpp/tdef/OSObject //test_ref/cpp/tag/OSObject //test_ref/cpp/struct/OSObject //test_ref/cpp/intf/OSObject //test_ref/doc/anysymbol/OSObject" machineGenerated="true" --><span class="type">OSObject</span><!-- /a --> <span class="type">*</span><span class="param">owner</span>, ...); END OF OBJECT OBJECT: eventChainNext (HeaderDoc::Var) <!-- a logicalPath="//test_ref/cpp/cl/IOEventSource //test_ref/cpp/tdef/IOEventSource //test_ref/cpp/tag/IOEventSource //test_ref/cpp/struct/IOEventSource //test_ref/cpp/intf/IOEventSource //test_ref/doc/anysymbol/IOEventSource" machineGenerated="true" --><span class="type">IOEventSource</span><!-- /a --> <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/econst/eventChainNext //test_ref/cpp/data/IOEventSource/eventChainNext //test_ref/cpp/data/eventChainNext //test_ref/cpp/clconst/IOEventSource/eventChainNext " machineGenerated="true" --><span class="var">eventChainNext</span><!-- /a -->; END OF OBJECT OBJECT: owner (HeaderDoc::Var) <!-- a logicalPath="//test_ref/cpp/cl/OSObject //test_ref/cpp/tdef/OSObject //test_ref/cpp/tag/OSObject //test_ref/cpp/struct/OSObject //test_ref/cpp/intf/OSObject //test_ref/doc/anysymbol/OSObject" machineGenerated="true" --><span class="type">OSObject</span><!-- /a --> <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/econst/owner //test_ref/cpp/data/IOEventSource/owner //test_ref/cpp/data/owner //test_ref/cpp/clconst/IOEventSource/owner " machineGenerated="true" --><span class="var">owner</span><!-- /a -->; END OF OBJECT OBJECT: action (HeaderDoc::Var) <!-- a logicalPath="//test_ref/cpp/cl/Action //test_ref/cpp/tdef/Action //test_ref/cpp/tag/Action //test_ref/cpp/struct/Action //test_ref/cpp/intf/Action //test_ref/doc/anysymbol/Action" machineGenerated="true" --><span class="type">Action</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/econst/action //test_ref/cpp/data/IOEventSource/action //test_ref/cpp/data/action //test_ref/cpp/clconst/IOEventSource/action " machineGenerated="true" --><span class="var">action</span><!-- /a -->; END OF OBJECT OBJECT: enabled (HeaderDoc::Var) <!-- a logicalPath="//test_ref/cpp/cl/bool //test_ref/cpp/tdef/bool //test_ref/cpp/tag/bool //test_ref/cpp/struct/bool //test_ref/cpp/intf/bool //test_ref/doc/anysymbol/bool" machineGenerated="true" --><span class="type">bool</span><!-- /a --> <!-- a logicalPath="//test_ref/cpp/econst/enabled //test_ref/cpp/data/IOEventSource/enabled //test_ref/cpp/data/enabled //test_ref/cpp/clconst/IOEventSource/enabled " machineGenerated="true" --><span class="var">enabled</span><!-- /a -->; END OF OBJECT OBJECT: workLoop (HeaderDoc::Var) <!-- a logicalPath="//test_ref/cpp/cl/IOWorkLoop //test_ref/cpp/tdef/IOWorkLoop //test_ref/cpp/tag/IOWorkLoop //test_ref/cpp/struct/IOWorkLoop //test_ref/cpp/intf/IOWorkLoop //test_ref/doc/anysymbol/IOWorkLoop" machineGenerated="true" --><span class="type">IOWorkLoop</span><!-- /a --> <span class="type">*</span><!-- a logicalPath="//test_ref/cpp/econst/workLoop //test_ref/cpp/data/IOEventSource/workLoop //test_ref/cpp/data/workLoop //test_ref/cpp/clconst/IOEventSource/workLoop " machineGenerated="true" --><span class="var">workLoop</span><!-- /a -->; END OF OBJECT _$89|/Users/dg/headerdoc-techpubs/Modules/HeaderDoc//../../testsuite/parser_tests/class_3.test$1|C$7|class 3$1|C$6|parser