/workspaces/astro/sol3-sdk/cpp/sol3/core/shmem_buffer_impl.h Source File

Space-ng SDK: /workspaces/astro/sol3-sdk/cpp/sol3/core/shmem_buffer_impl.h Source File
Space-ng SDK
shmem_buffer_impl.h
Go to the documentation of this file.
1 
2 // Copyright (c) Space-ng, inc. All rights reserved.
3 
4 #pragma once
5 #include <unistd.h>
6 
7 #include <cstddef>
8 #include <cstdint>
9 #include <random>
10 
11 namespace sol3::core::impl {
12 
13 class Mmap {
14  public:
15  Mmap() = default;
16  Mmap(void* addr, size_t length, int prot, int flags, int fd, off_t offset);
17  ~Mmap();
18 
19  void* data() const;
20  size_t size() const;
21  bool valid() const;
22 
23  // Non-copyable, movable
24  Mmap(Mmap const&) = delete;
25  Mmap& operator=(Mmap const&) = delete;
26  Mmap(Mmap&& other) noexcept;
27  Mmap& operator=(Mmap&& other) noexcept;
28 
29  private:
30  void* ptr_ = nullptr;
31  size_t len_ = 0;
32 };
33 
34 inline uint64_t makeUuid() {
35  std::random_device rd;
36  std::mt19937_64 gen(rd());
37  return gen();
38 }
39 
40 } // namespace sol3::core::impl
Definition: shmem_buffer_impl.h:13
Mmap & operator=(Mmap &&other) noexcept
Mmap & operator=(Mmap const &)=delete
Mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset)
size_t size() const
void * data() const
Mmap(Mmap const &)=delete
Mmap(Mmap &&other) noexcept
Definition: fb_json.h:129
uint64_t makeUuid()
Definition: shmem_buffer_impl.h:34