DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
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 <boost/interprocess/managed_shared_memory.hpp>
5
#include <string>
6
7
namespace
uhallibs
{
8
namespace
ipc
{
9
10
template
<
class
T>
11
class
SharedMemObject
12
{
13
public
:
14
SharedMemObject
(
const
SharedMemObject<T>
&) =
delete
;
15
SharedMemObject<T>
&
operator=
(
const
SharedMemObject<T>
&) =
delete
;
16
17
SharedMemObject
(
const
std::string& aName);
18
~SharedMemObject
();
19
20
T*
operator->
();
21
22
T&
operator*
();
23
24
private
:
25
std::string
mName
;
26
boost::interprocess::managed_shared_memory
mSharedMem
;
27
T*
mObj
;
28
};
29
30
// Definition
31
template
<
class
T>
32
SharedMemObject<T>::SharedMemObject
(
const
std::string& aName)
33
:
mName
(aName)
34
,
mSharedMem
(
boost
::interprocess::open_or_create, aName.c_str(), 1024, 0x0,
boost
::interprocess::permissions(0666))
35
,
mObj
(
mSharedMem
.find_or_construct<T>(
boost
::interprocess::unique_instance)())
36
{
37
}
38
39
template
<
class
T>
40
SharedMemObject<T>::~SharedMemObject
()
41
{
42
// boost::interprocess::shared_memory_object::remove(mName.c_str());
43
}
44
45
template
<
class
T>
46
T*
47
SharedMemObject<T>::operator->
()
48
{
49
return
mObj
;
50
}
51
52
template
<
class
T>
53
T&
54
SharedMemObject<T>::operator*
()
55
{
56
return
*
mObj
;
57
}
58
}
// namespace ipc
59
}
// namespace uhal
60
61
#endif
/* _uhal_ipc_SharedMemObject_hpp_ */
uhallibs::ipc::SharedMemObject::SharedMemObject
SharedMemObject(const SharedMemObject< T > &)=delete
uhallibs::ipc::SharedMemObject::~SharedMemObject
~SharedMemObject()
Definition
SharedMemObject.hpp:40
uhallibs::ipc::SharedMemObject::mName
std::string mName
Definition
SharedMemObject.hpp:25
uhallibs::ipc::SharedMemObject::operator->
T * operator->()
Definition
SharedMemObject.hpp:47
uhallibs::ipc::SharedMemObject::operator*
T & operator*()
Definition
SharedMemObject.hpp:54
uhallibs::ipc::SharedMemObject::mSharedMem
boost::interprocess::managed_shared_memory mSharedMem
Definition
SharedMemObject.hpp:26
uhallibs::ipc::SharedMemObject::operator=
SharedMemObject< T > & operator=(const SharedMemObject< T > &)=delete
uhallibs::ipc::SharedMemObject::mObj
T * mObj
Definition
SharedMemObject.hpp:27
boost
Definition
ProtocolFlx.hpp:64
uhallibs::ipc
Definition
RobustMutex.hpp:11
uhallibs
Definition
formatters.hpp:9
Generated on
for DUNE-DAQ by
1.18.0