eis/eqpalg/gb_item_memory.h

72 lines
1.5 KiB
C
Raw Normal View History

#pragma once
/**
* @file gb_item_memory.h
* @brief
* @author Cat (null.null.null@qq.com)
* @version 0.1
* @date 2021-10-08
*
* Copyright: Baosight Co. Ltd.
* DO NOT COPY/USE WITHOUT PERMISSION
*
*/
#include <eqpalg/define/public.h>
#include <glob/BinaryTele.h>
#include <log4cplus/LOG.h>
#include <zlib/MemVar.h>
#include <zlib/zoneDef.h>
#include <array>
#include <numeric>
#include <shared_mutex>
#include <string>
#include <unordered_map>
#include <zlib/MemFix.hpp>
#include <zlib/MemTable.hpp>
/**
* @brief
*
*/
struct GlobaltemSharedMemory {
friend class AlgorithmManager;
friend class EqpAlgICEI;
protected:
public:
// GlobaltemSharedMemory() = default;
GlobaltemSharedMemory();
~GlobaltemSharedMemory() = default;
public:
/**
* @brief tag点名的数据
* @param tag_name tag点名
* @return double
*/
double operator[](std::string tag_name);
/**
* @brief Get the data size object
* @return int
*/
int get_data_size();
private:
static int instanceCount;
public:
static int get_instanceCount();
std::string get_data_json();
private:
/**
* @brief
* @return int
*/
int cache_data();
BinaryTele binary_tele{CMemVar::Const()->event_eis_start, "T_LOV_FDAAITEM"};
map<int, CMemFix<PLC_DATA>*> m_mapfix;
size_t data_size_ = 0;
std::unique_ptr<LOG> logger_;
};