// =====================================================================
//  $Id: TCamacInterruptRegisterModule.hh,v 1.1.1.1 2003/06/27 02:56:41 goiwai Exp $
//  $Name: CLDAQ-1-06-02 $
// =====================================================================
#ifndef __TCAMACINTERRUPTREGISTERMODULE_HH
#define __TCAMACINTERRUPTREGISTERMODULE_HH

#include "Tglobals.h"
#include "TCamacModule.hh"

class TDataSegment;
class TDataElement;

class TCamacInterruptRegisterModule
  : public TCamacModule
{

  public:
    TCamacInterruptRegisterModule( TCamacCrateController* cc7x00, Tint slot, Tint nch = 1, Tdata_t datalen = t16bitModule );
    TCamacInterruptRegisterModule( const TCamacInterruptRegisterModule& right );
    ~TCamacInterruptRegisterModule();

  public:
    const TCamacInterruptRegisterModule& operator=( const TCamacInterruptRegisterModule& right );
    Tbool operator==( const TCamacInterruptRegisterModule& right ) const;
    Tbool operator!=( const TCamacInterruptRegisterModule& right ) const;
    Tvoid FillData( TDataElement& element, Tint channel );

  public:
    Tint Initialize();
    Tint ReadInterruptRegister();
    Tint ReadInterruptMaskRegister();
    Tint ClearInterruptMaskRegister();
    Tint WriteInterruptMaskRegister( Tint data );
    Tint ClearInterruptRegister();
    Tint DisableInterruptOutput();
    Tint EnableInterruptOutput();

};

#endif
