|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * The contents of this file constitute Original Code as defined in and ! 7: * are subject to the Apple Public Source License Version 1.1 (the ! 8: * "License"). You may not use this file except in compliance with the ! 9: * License. Please obtain a copy of the License at ! 10: * http://www.apple.com/publicsource and read it before using this file. ! 11: * ! 12: * This Original Code and all software distributed under the License are ! 13: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 14: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 15: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 16: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 17: * License for the specific language governing rights and limitations ! 18: * under the License. ! 19: * ! 20: * @APPLE_LICENSE_HEADER_END@ ! 21: */ ! 22: /* ! 23: Copyright (c) 1998 Apple Computer, Inc. All rights reserved. ! 24: ! 25: HISTORY ! 26: 1998-7-13 Godfrey van der Linden(gvdl) ! 27: Created. ! 28: ]*/ ! 29: #include <IOKit/IOLib.h> ! 30: ! 31: #include <IOKit/IOEventSource.h> ! 32: #include <IOKit/IOWorkLoop.h> ! 33: ! 34: #define super OSObject ! 35: ! 36: OSDefineMetaClass(IOEventSource, OSObject) ! 37: OSDefineAbstractStructors(IOEventSource, OSObject) ! 38: ! 39: bool IOEventSource::init(OSObject *inOwner, ! 40: Action inAction = 0) ! 41: { ! 42: if (!inOwner) ! 43: return false; ! 44: ! 45: owner = inOwner; ! 46: ! 47: if ( !super::init() ) ! 48: return false; ! 49: ! 50: (void) setAction(inAction); ! 51: enabled = true; ! 52: ! 53: return true; ! 54: } ! 55: ! 56: IOEventSource::Action IOEventSource::getAction () const { return action; }; ! 57: ! 58: void IOEventSource::setAction(Action inAction) ! 59: { ! 60: action = inAction; ! 61: } ! 62: ! 63: IOEventSource *IOEventSource::getNext() const { return eventChainNext; }; ! 64: ! 65: void IOEventSource::setNext(IOEventSource *inNext) ! 66: { ! 67: eventChainNext = inNext; ! 68: } ! 69: ! 70: void IOEventSource::enable() ! 71: { ! 72: enabled = true; ! 73: if (workLoop) ! 74: return workLoop->signalWorkAvailable(); ! 75: } ! 76: ! 77: void IOEventSource::disable() ! 78: { ! 79: enabled = false; ! 80: } ! 81: ! 82: bool IOEventSource::isEnabled() const ! 83: { ! 84: return enabled; ! 85: } ! 86: ! 87: void IOEventSource::setWorkLoop(IOWorkLoop *inWorkLoop) ! 88: { ! 89: workLoop = inWorkLoop; ! 90: } ! 91: ! 92: IOWorkLoop *IOEventSource::getWorkLoop() const ! 93: { ! 94: return workLoop; ! 95: } ! 96: ! 97: bool IOEventSource::onThread() const ! 98: { ! 99: return (workLoop != 0) && workLoop->onThread(); ! 100: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.