Developer Application Interface (ARC API) v4.5.9
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
44 typedef std::map<std::uint32_t, std::shared_ptr<std::vector<std::uint32_t>>>::iterator iterator;
50 typedef std::map<std::uint32_t, std::shared_ptr<std::vector<std::uint32_t>>>::const_iterator const_iterator;
59 CArcBoardMap( const uint32_t* pMapData, const std::int32_t iLength );
60
62 CArcBoardMap( void ) = delete;
63
67 CArcBoardMap( const CArcBoardMap& tBoardMap );
68
70 CArcBoardMap& operator=( const CArcBoardMap& tBoardMap );
71
73 CArcBoardMap( CArcBoardMap&& tBoardMap ) noexcept;
74
76 CArcBoardMap& operator=( CArcBoardMap&& tBoardMap ) noexcept;
77
79 ~CArcBoardMap( void ) = default;
80
88 std::weak_ptr<std::vector<std::uint32_t>> findBoard( const std::uint32_t uiBoard ) const;
89
94 std::unique_ptr<std::vector<std::uint32_t>> boardNumbers( void ) const;
95
99 iterator begin( void ) noexcept;
100
104 const_iterator cbegin( void ) noexcept;
105
109 iterator end( void ) noexcept;
110
114 const_iterator cend( void ) noexcept;
115
119 const std::string toString( void ) const noexcept;
120
121 private:
122
124 static constexpr auto BOARD_MASK = 0x03FFFFFFU;
125
127 static constexpr auto SLOT_BIT_START = 28;
128
130 static constexpr auto SLOT_BIT_MASK = 0xF;
131
133 std::map<std::uint32_t, std::shared_ptr<std::vector<std::uint32_t>>> m_tMap;
134 };
135
136 } // end gen4 namespace
137} // end arc namespace
CArcBoardMap(CArcBoardMap &&tBoardMap) noexcept
const_iterator cbegin(void) 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
iterator end(void) noexcept
CArcBoardMap(const CArcBoardMap &tBoardMap)
const std::string toString(void) const noexcept
std::unique_ptr< std::vector< std::uint32_t > > boardNumbers(void) const
std::map< std::uint32_t, std::shared_ptr< std::vector< std::uint32_t > > >::const_iterator const_iterator
Definition: CArcBoardMap.h:50
std::map< std::uint32_t, std::shared_ptr< std::vector< std::uint32_t > > >::iterator iterator
Definition: CArcBoardMap.h:44
const_iterator cend(void) noexcept
CArcBoardMap & operator=(CArcBoardMap &&tBoardMap) noexcept
CArcBoardMap & operator=(const CArcBoardMap &tBoardMap)
CArcBoardMap(void)=delete
iterator begin(void) noexcept
Definition: CArcBase.h:46