Go to the documentation of this file.
16 #ifndef DDTMEMORYMANAGER_HPP_
17 #define DDTMEMORYMANAGER_HPP_
19 #include <boost/circular_buffer.hpp>
20 #include <boost/interprocess/containers/string.hpp>
21 #include <boost/interprocess/managed_shared_memory.hpp>
22 #include <boost/tokenizer.hpp>
32 namespace ip = boost::interprocess;
76 const int32_t max_data_sample_size,
77 const int32_t number_of_samples);
115 const std::string data_stream_identifier);
123 std::string
get_shm_id(
const std::string data_stream_identifier)
const;
140 const int buffer_size);
155 void Init(
DdtLogger *ddt_logger,
const std::string broker_port);
160 int32_t CreateNewSharedMemory(
const std::string data_stream_identifier,
161 const int32_t max_data_sample_size,
162 const int32_t number_of_samples,
163 const std::string shm_id);
168 int32_t CreateCircularBuffer(
const std::string data_stream_identifier,
169 const int32_t max_data_sample_size,
170 const int32_t number_of_samples);
176 std::map<std::string, Shm> shm_map;
178 std::mutex shm_mutex;
182 const std::string SHM_PATH =
"/dev/shm";
183 const int AVAILABLE_POSITION = 3;
184 const int BYTES_PER_KBYTE = 1024;
185 static const int CHAR_LEN = 128;
186 const int PERM_TYPE = 0664;
187 const int NO_SUCH_SHM = 7;
int32_t get_number_of_samples(const std::string data_stream_identifier)
Definition: ddtMemoryManager.cpp:307
bool CheckSpaceAvailability(const int32_t max_data_sample_size, const int buffer_size)
Definition: ddtMemoryManager.cpp:384
Definition: ddtLogger.hpp:48
Definition: ddtMemoryAccessor.hpp:257
Definition: ddtClient.hpp:36
int32_t GetMaxPossibleBufferSize(const int32_t max_data_sample_size)
Definition: ddtMemoryManager.cpp:372
const uint64_t GetAvailableSpace()
Definition: ddtMemoryManager.cpp:333
Definition: ddtMemoryManager.hpp:50
bool CheckIfShmExists(const std::string data_stream_identifier)
Definition: ddtMemoryManager.cpp:43
int32_t get_max_data_sample_size(const std::string data_stream_identifier)
Definition: ddtMemoryManager.cpp:294
std::string get_shm_id(const std::string data_stream_identifier) const
Definition: ddtMemoryManager.cpp:33
DdtMemoryAccessor * get_memory_accessor(const std::string data_stream_identifier)
Definition: ddtMemoryManager.cpp:320
ip::managed_shared_memory * managed_shm
Definition: ddtMemoryManager.hpp:41
bool DeleteSharedMemory(const std::string data_stream_identifier)
Definition: ddtMemoryManager.cpp:266
Definition: ddtMemoryManager.hpp:40
int number_of_samples
Definition: ddtMemoryManager.hpp:43
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:56
int max_data_sample_size
Definition: ddtMemoryManager.hpp:42
DdtMemoryAccessor * memory_accessor
Definition: ddtMemoryManager.hpp:44
DdtMemoryManager(DdtLogger *logger, const std::string broker_port)
Definition: ddtMemoryManager.cpp:20
virtual ~DdtMemoryManager()