19#ifndef DDTMEMORYMANAGER_HPP_
20#define DDTMEMORYMANAGER_HPP_
22#include <boost/circular_buffer.hpp>
23#include <boost/interprocess/containers/string.hpp>
24#pragma GCC diagnostic push
25#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
26#include <boost/interprocess/managed_shared_memory.hpp>
28#pragma GCC diagnostic pop
29#include <boost/tokenizer.hpp>
39namespace ip = boost::interprocess;
99 const int32_t max_data_sample_size,
100 const int32_t number_of_samples);
138 const std::string data_stream_identifier);
146 std::string
get_shm_id(
const std::string data_stream_identifier)
const;
163 const int buffer_size);
178 void Init(
DdtLogger *ddt_logger,
const std::string broker_port);
183 int32_t CreateNewSharedMemory(
const std::string data_stream_identifier,
184 const int32_t max_data_sample_size,
185 const int32_t number_of_samples,
186 const std::string shm_id);
191 int32_t CreateCircularBuffer(
const std::string data_stream_identifier,
192 const int32_t max_data_sample_size,
193 const int32_t number_of_samples);
199 std::map<std::string, Shm> shm_map;
201 std::mutex shm_mutex;
205 const std::string SHM_PATH =
"/dev/shm";
206 const int AVAILABLE_POSITION = 3;
207 const int BYTES_PER_KBYTE = 1024;
208 static const int CHAR_LEN = 128;
209 const int PERM_TYPE = 0664;
210 const int NO_SUCH_SHM = 7;
Definition: ddtLogger.hpp:51
Definition: ddtMemoryAccessor.hpp:274
Definition: ddtMemoryManager.hpp:72
DdtMemoryAccessor * get_memory_accessor(const std::string data_stream_identifier)
Definition: ddtMemoryManager.cpp:325
std::string get_shm_id(const std::string data_stream_identifier) const
Definition: ddtMemoryManager.cpp:36
int32_t GetMaxPossibleBufferSize(const int32_t max_data_sample_size)
Definition: ddtMemoryManager.cpp:377
bool CheckIfShmExists(const std::string data_stream_identifier)
Definition: ddtMemoryManager.cpp:46
bool DeleteSharedMemory(const std::string data_stream_identifier)
Definition: ddtMemoryManager.cpp:271
int32_t get_number_of_samples(const std::string data_stream_identifier)
Definition: ddtMemoryManager.cpp:312
virtual ~DdtMemoryManager()
const uint64_t GetAvailableSpace()
Definition: ddtMemoryManager.cpp:338
int32_t get_max_data_sample_size(const std::string data_stream_identifier)
Definition: ddtMemoryManager.cpp:299
int32_t CreateSharedMemory(const std::string data_stream_identifier, const int32_t max_data_sample_size, const int32_t number_of_samples)
Definition: ddtMemoryManager.cpp:59
bool CheckSpaceAvailability(const int32_t max_data_sample_size, const int buffer_size)
Definition: ddtMemoryManager.cpp:389
Contains common used constants. This file shall contain constants that can be used by all application...
Contains common used error codes. This file shall contain error codes that can be used by all applica...
Class to wrap the usage of log4cplus as logging utility. This file provides a wrapper class for the u...
Accessor for a shared memory. This class provides the functionalities to access created shared memori...
Definition: ddtClient.hpp:39
Definition: ddtMemoryManager.hpp:47
int number_of_samples
Definition: ddtMemoryManager.hpp:61
int max_data_sample_size
Definition: ddtMemoryManager.hpp:56
ip::managed_shared_memory * managed_shm
Definition: ddtMemoryManager.hpp:51
DdtMemoryAccessor * memory_accessor
Definition: ddtMemoryManager.hpp:66