|  | #pragma once | 
|  |  | 
|  | #include <hei_types.hpp> | 
|  |  | 
|  | namespace libhei | 
|  | { | 
|  |  | 
|  | /** | 
|  | * @brief This is a simple container for pointers to the user application chip | 
|  | *        objects and the associated chip type. | 
|  | */ | 
|  | class Chip | 
|  | { | 
|  | public: // Constructors, destructors, assignment, etc. | 
|  | Chip() = default; | 
|  |  | 
|  | ~Chip() = default; | 
|  |  | 
|  | Chip(const Chip&) = default; | 
|  |  | 
|  | Chip& operator=(const Chip&) = default; | 
|  |  | 
|  | /** | 
|  | * @brief Constructor. | 
|  | * @param i_chip See description for iv_chip. | 
|  | * @param i_type See description for iv_type. | 
|  | */ | 
|  | Chip(const void* i_chip, ChipType_t i_type) : | 
|  | iv_chip(i_chip), iv_type(i_type) | 
|  | {} | 
|  |  | 
|  | public: // Accessors | 
|  | const void* getChip() const | 
|  | { | 
|  | return iv_chip; | 
|  | } | 
|  |  | 
|  | ChipType_t getType() const | 
|  | { | 
|  | return iv_type; | 
|  | } | 
|  |  | 
|  | public: // Operators | 
|  | bool operator==(const Chip& r) const | 
|  | { | 
|  | return (iv_chip == r.iv_chip) && (iv_type == r.iv_type); | 
|  | } | 
|  |  | 
|  | bool operator<(const Chip& r) const | 
|  | { | 
|  | return (iv_chip < r.iv_chip) || | 
|  | ((iv_chip == r.iv_chip) && (iv_type < r.iv_type)); | 
|  | } | 
|  |  | 
|  | private: | 
|  | /** | 
|  | * The user application will provide pointers to user application objects | 
|  | * that represent chips targeted for analysis. The isolator does not know | 
|  | * anything about these objects nor how to use them. The pointers' only | 
|  | * purpose is to eventually get passed back to the user application with | 
|  | * information associated with each chip. | 
|  | */ | 
|  | const void* iv_chip = nullptr; | 
|  |  | 
|  | /** | 
|  | * When doing analysis on a chip, the isolator will need to know the chip | 
|  | * type in order to look up the correct information from the Chip Data | 
|  | * Files. | 
|  | */ | 
|  | ChipType_t iv_type = CHIP_TYPE_INVALID; | 
|  |  | 
|  | }; // end class Chip | 
|  |  | 
|  | } // end namespace libhei |