DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq
sourcecode
uhallibs
include
uhallibs
ipc
SharedMemObject.hpp
Go to the documentation of this file.
1
#ifndef _uhal_ipc_SharedMemObject_hpp_
2
#define _uhal_ipc_SharedMemObject_hpp_
3
4
#include <string>
5
#include <boost/interprocess/managed_shared_memory.hpp>
6
7
namespace
uhallibs
{
8
namespace
ipc {
9
10
template
<
class
T>
11
class
SharedMemObject
{
12
public
:
13
SharedMemObject
(
const
SharedMemObject<T>
&) =
delete
;
14
SharedMemObject<T>
&
operator=
(
const
SharedMemObject<T>
&) =
delete
;
15
16
SharedMemObject
(
const
std::string& aName);
17
~SharedMemObject
();
18
19
T*
operator->
();
20
21
T&
operator*
();
22
23
private
:
24
std::string
mName
;
25
boost::interprocess::managed_shared_memory
mSharedMem
;
26
T*
mObj
;
27
};
28
29
// Definition
30
template
<
class
T>
31
SharedMemObject<T>::SharedMemObject
(
const
std::string& aName)
32
: mName(aName),
33
mSharedMem(
boost
::interprocess::open_or_create, aName.c_str(), 1024, 0x0,
34
boost
::interprocess::permissions(0666)),
35
mObj(mSharedMem.find_or_construct<T>(
36
boost
::interprocess::unique_instance)()) {}
37
38
template
<
class
T>
39
SharedMemObject<T>::~SharedMemObject
() {
40
// boost::interprocess::shared_memory_object::remove(mName.c_str());
41
}
42
43
template
<
class
T>
44
T*
SharedMemObject<T>::operator->
() {
45
return
mObj;
46
}
47
48
template
<
class
T>
49
T&
SharedMemObject<T>::operator*
() {
50
return
*mObj;
51
}
52
}
// namespace ipc
53
}
// namespace uhal
54
55
#endif
/* _uhal_ipc_SharedMemObject_hpp_ */
uhallibs::ipc::SharedMemObject
Definition
SharedMemObject.hpp:11
uhallibs::ipc::SharedMemObject::SharedMemObject
SharedMemObject(const SharedMemObject< T > &)=delete
uhallibs::ipc::SharedMemObject::~SharedMemObject
~SharedMemObject()
Definition
SharedMemObject.hpp:39
uhallibs::ipc::SharedMemObject::SharedMemObject
SharedMemObject(const std::string &aName)
Definition
SharedMemObject.hpp:31
uhallibs::ipc::SharedMemObject::mName
std::string mName
Definition
SharedMemObject.hpp:24
uhallibs::ipc::SharedMemObject::operator->
T * operator->()
Definition
SharedMemObject.hpp:44
uhallibs::ipc::SharedMemObject::operator*
T & operator*()
Definition
SharedMemObject.hpp:49
uhallibs::ipc::SharedMemObject::mSharedMem
boost::interprocess::managed_shared_memory mSharedMem
Definition
SharedMemObject.hpp:25
uhallibs::ipc::SharedMemObject::operator=
SharedMemObject< T > & operator=(const SharedMemObject< T > &)=delete
uhallibs::ipc::SharedMemObject::mObj
T * mObj
Definition
SharedMemObject.hpp:26
boost
Definition
file.hpp:28
uhallibs
Definition
formatters.hpp:9
Generated on Sat Jun 28 2025 for DUNE-DAQ by
1.12.0