/* * Copyright (c) 1996 The Regents of the University of California. * All rights reserved. * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose, without fee, and without written agreement * is hereby granted, provided that the above copyright notice and the * following two paragraphs appear in all copies of this software. * * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING * OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE * UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. * * * $Id: iohandler.cc,v 1.3 1996/06/09 01:13:40 aswan Exp $ */ #include "iohandler.h" IOHandler::IOHandler() : fd_(-1) { } IOHandler::~IOHandler() { if (fd_ >= 0) unlink(); } void IOHandler::link(int fd, int mask) { fd_ = fd; Tk_CreateFileHandler(fd, mask, callback, (ClientData)this); } void IOHandler::unlink() { if (fd_ >= 0) { Tk_DeleteFileHandler(fd_); fd_ = -1; } } void IOHandler::callback(ClientData cd, int mask) { IOHandler* p = (IOHandler*)cd; p->dispatch(mask); }