Developer Application Interface (ARC API) v4.5.8
ARC, Inc. GenIV Application Interface
CArcBoardMap.h
1// +------------------------------------------------------------------------------------------------------------------+
2// | FILE: CArcBoardMap.h ( GenIV ) |
3// +------------------------------------------------------------------------------------------------------------------+
4// | PURPOSE: This file defines the board map class |
5// | |
6// | AUTHOR: Scott Streit DATE: Aug 02, 2021 |
7// | |
8// | Copyright 2021 Astronomical Research Cameras, Inc. All rights reserved. |
9// +------------------------------------------------------------------------------------------------------------------+
12#pragma once
13
14
15#include <map>
16#include <string>
17#include <memory>
18#include <cstdint>
19
20#include <CArcDeviceDllMain.h>
21#include <CArcBase.h>
22
23
24
25namespace arc
26{
27 namespace gen4
28 {
29
36 class GEN4_CARCDEVICE_API CArcBoardMap : public arc::gen4::CArcBase
37 {
38 public:
39
46 CArcBoardMap( const uint32_t* pMapData, const std::int32_t iLength );
47
49 CArcBoardMap( void ) = delete;
50
54 CArcBoardMap( const CArcBoardMap& tBoardMap );
55
57 CArcBoardMap& operator=( const CArcBoardMap& tBoardMap );
58
60 CArcBoardMap( CArcBoardMap&& tBoardMap ) noexcept;
61
63 CArcBoardMap& operator=( CArcBoardMap&& tBoardMap ) noexcept;
64
66 ~CArcBoardMap( void ) = default;
67
75 std::weak_ptr<std::vector<std::uint32_t>> findBoard( const std::uint32_t uiBoard ) const;
76
81 std::unique_ptr<std::vector<std::uint32_t>> boardNumbers( void ) const;
82
86 const std::string toString( void ) const noexcept;
87
88 private:
89
91 static constexpr auto BOARD_MASK = 0x03FFFFFFU;
92
94 static constexpr auto SLOT_BIT_START = 28;
95
97 static constexpr auto SLOT_BIT_MASK = 0xF;
98
100 std::map<std::uint32_t, std::shared_ptr<std::vector<std::uint32_t>>> m_tMap;
101 };
102
103 } // end gen4 namespace
104} // end arc namespace
CArcBoardMap(CArcBoardMap &&tBoardMap) noexcept
CArcBoardMap(const uint32_t *pMapData, const std::int32_t iLength)
std::weak_ptr< std::vector< std::uint32_t > > findBoard(const std::uint32_t uiBoard) const
~CArcBoardMap(void)=default
CArcBoardMap(const CArcBoardMap &tBoardMap)
const std::string toString(void) const noexcept
std::unique_ptr< std::vector< std::uint32_t > > boardNumbers(void) const
CArcBoardMap & operator=(CArcBoardMap &&tBoardMap) noexcept
CArcBoardMap & operator=(const CArcBoardMap &tBoardMap)
CArcBoardMap(void)=delete
Definition: CArcBase.h:50