|  | #pragma once | 
|  |  | 
|  | #include <hei_includes.hpp> | 
|  |  | 
|  | namespace libhei | 
|  | { | 
|  |  | 
|  | /** | 
|  | * @brief A signature represents an active attention from a single bit on a | 
|  | *        register within a chip. | 
|  | * | 
|  | * The isolator will gather a list of all active attentions on a chip and return | 
|  | * a list of signatures to the user application. The user application should be | 
|  | * able to determine what actions to take based on these signatures. | 
|  | */ | 
|  | class Signature | 
|  | { | 
|  | public: // Constructors, destructor, assignment, etc. | 
|  |  | 
|  | /** | 
|  | * @brief Constructor from components. | 
|  | * @param i_chip     The chip containing this register. | 
|  | * @param i_id       The register ID. | 
|  | * @param i_instance The instance of this register. | 
|  | * @param i_bit      The target bit within this register. | 
|  | * @param i_attnType The attention type reported by this bit. | 
|  | */ | 
|  | Signature( const Chip & i_chip, RegisterId_t i_id, | 
|  | RegisterInstance_t i_instance, RegisterBit_t i_bit, | 
|  | AttentionType_t i_attnType ) : | 
|  | iv_chip( i_chip ), iv_id( i_id ), iv_instance( i_instance ), | 
|  | iv_bit( i_bit ), iv_attnType( i_attnType ) | 
|  | {} | 
|  |  | 
|  | /** @brief Destructor. */ | 
|  | ~Signature() = default; | 
|  |  | 
|  | /** @brief Copy constructor. */ | 
|  | Signature( const Signature & ) = default; | 
|  |  | 
|  | /** @brief Assignment operator. */ | 
|  | Signature & operator=( const Signature & ) = default; | 
|  |  | 
|  | private: // Instance variables. | 
|  |  | 
|  | Chip               iv_chip;     ///< Chip containing this register. | 
|  | RegisterId_t       iv_id;       ///< Register ID. | 
|  | RegisterInstance_t iv_instance; ///< Instance of this register. | 
|  | RegisterBit_t      iv_bit;      ///< Target bit within this register. | 
|  | AttentionType_t    iv_attnType; ///< Attention type reported by this bit. | 
|  |  | 
|  | public: // Member functions | 
|  |  | 
|  | /** @return The chip containing this register. */ | 
|  | const Chip & getChip() const { return iv_chip; } | 
|  |  | 
|  | /** @return The register ID. */ | 
|  | RegisterId_t getId() const { return iv_id; } | 
|  |  | 
|  | /** @return The instance of this register. */ | 
|  | RegisterInstance_t getInstance() const { return iv_instance; } | 
|  |  | 
|  | /** @return The target bit within this register. */ | 
|  | RegisterBit_t getBit() const { return iv_bit; } | 
|  |  | 
|  | /** @return The attention type reported by this bit. */ | 
|  | AttentionType_t getAttnType() const { return iv_attnType; } | 
|  | }; | 
|  |  | 
|  | } // end namespace libhei | 
|  |  |