Belle II Software development
DqmSharedMem.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8#pragma once
9
10#include <sys/types.h>
11
12#include <string>
13
14namespace Belle2 {
20 public:
21 DqmSharedMem(const char* name, int size, bool writeable = true, const char* user = nullptr);
22 DqmSharedMem(int shm_id, int sem_id);
23 ~DqmSharedMem(void);
24
25 void* ptr(void);
26 int shmid(void);
27
28 bool IsCreated(void);
29
30 static std::string getTmpFileName(std::string user, std::string name);
31 static bool getIdFromTmpFileName(std::string filename, int& shmid, int& semid);
32
33 void lock(void);
34 void unlock(void);
35 bool isLocked(void);
36
37 private:
38 bool m_new{false};
39 key_t m_shmkey;
40 key_t m_semkey;
42 int m_shmid{-1};
43 int m_semid{-1};
44 void* m_shmadr{nullptr};
45 };
47}
48
key_t m_shmkey
SHM key, see shmget(2).
Definition: DqmSharedMem.h:39
int m_semid
semaphore id
Definition: DqmSharedMem.h:43
int m_shmid
shared memory id
Definition: DqmSharedMem.h:42
bool m_new
True if we created the ring buffer ourselves (and need to clean it).
Definition: DqmSharedMem.h:38
key_t m_semkey
Semaphore key.
Definition: DqmSharedMem.h:40
Abstract base class for different kinds of events.