00001 /*----------------------------------------------------------------------------* 00002 * Copyright (c) 2005 Southeastern Universities Research Association, * 00003 * Thomas Jefferson National Accelerator Facility * 00004 * * 00005 * This software was developed under a United States Government license * 00006 * described in the NOTICE file included as part of this distribution. * 00007 * * 00008 * E.Wolin, 25-Feb-2005, Jefferson Lab * 00009 * * 00010 * Authors: Elliott Wolin * 00011 * wolin@jlab.org Jefferson Lab, MS-6B * 00012 * Phone: (757) 269-7365 12000 Jefferson Ave. * 00013 * Fax: (757) 269-5519 Newport News, VA 23606 * 00014 * 00015 *----------------------------------------------------------------------------*/ 00016 00017 #ifndef _InterruptService_hxx 00018 #define _InterruptService_hxx 00019 00020 00021 namespace codaObject { 00022 00023 class InterruptibleObject; 00024 00025 00026 //----------------------------------------------------------------------------- 00027 //----------------------------------------------------------------------------- 00028 00029 00033 class InterruptService { 00034 00035 public: 00036 InterruptService(void) : myIntObj(NULL) {} 00037 virtual bool setupInterrupt(void) = 0; 00038 virtual bool enableInterrupt(void) = 0; 00039 virtual bool pauseInterrupt(void) = 0; 00040 virtual bool resumeInterrupt(void) = 0; 00041 virtual bool deleteInterrupt(void) = 0; 00043 virtual void setInterruptibleObject(InterruptibleObject *o) { myIntObj=o; } 00046 protected: 00047 InterruptibleObject *myIntObj; 00048 }; 00049 00050 00051 //----------------------------------------------------------------------------- 00052 //----------------------------------------------------------------------------- 00053 00054 00055 } // namespace codaObject 00056 00057 #endif /* _InterruptService_hxx */