27 SharedMem(
const std::string &name, std::size_t size);
31 this->name_ = std::move(rhs.name_);
32 this->fd_ = std::move(rhs.fd_);
33 this->mem_ = rhs.mem_;
48 this->name_ = std::move(rhs.name_);
49 this->fd_ = std::move(rhs.fd_);
50 this->mem_ = rhs.mem_;
76 static constexpr std::size_t
SIZE =
sizeof(T);
83 template<
class... Args>
85 : shMem_(name,
SIZE), obj_(nullptr)
87 void *mem = shMem_.
mem();
92 obj_ =
new (mem) T(std::forward<Args>(args)...);
97 this->shMem_ = std::move(rhs.shMem_);
98 this->obj_ = rhs.obj_;
113 this->shMem_ = std::move(rhs.shMem_);
114 this->obj_ = rhs.obj_;
144 explicit operator bool()
const
Utilities to help constructing class interfaces.
#define LIBCAMERA_DISABLE_COPY(klass)
Disable copy construction and assignment of the klass.
RAII-style wrapper for file descriptors.
Definition: shared_fd.h:17
Helper class for allocating objects in shared memory.
Definition: shared_mem_object.h:74
static constexpr std::size_t SIZE
The size of the object that is going to be stored here.
Definition: shared_mem_object.h:76
const T * operator->() const
Operator-> for SharedMemObject.
Definition: shared_mem_object.h:124
SharedMemObject(SharedMemObject< T > &&rhs)
Move constructor for SharedMemObject.
Definition: shared_mem_object.h:95
const SharedFD & fd() const
Gets the file descriptor for the underlaying storage file.
Definition: shared_mem_object.h:139
SharedMemObject(const std::string &name, Args &&...args)
Contstructor for the SharedMemObject.
Definition: shared_mem_object.h:84
T & operator*()
Operator* for SharedMemObject.
Definition: shared_mem_object.h:129
~SharedMemObject()
SharedMemObject destructor.
Definition: shared_mem_object.h:102
T * operator->()
Operator-> for SharedMemObject.
Definition: shared_mem_object.h:119
const T & operator*() const
Operator* for SharedMemObject.
Definition: shared_mem_object.h:134
Helper class for allocating shared memory.
Definition: shared_mem_object.h:20
SharedMem(SharedMem &&rhs)
Move constructor for SharedMem.
Definition: shared_mem_object.h:29
~SharedMem()
SharedMem destructor.
Definition: shared_mem_object.h:37
void * mem() const
Gets the pointer to the underlaying shared memory.
Definition: shared_mem_object.h:60
const SharedFD & fd() const
Gets the file descriptor for the underlaying shared memory.
Definition: shared_mem_object.h:55
Top-level libcamera namespace.
Definition: backtrace.h:17