lintel 0.2.0
Loading...
Searching...
No Matches
SharedMemoryController.h
Go to the documentation of this file.
1#ifndef LINTEL_SHAREDMEMORYCONTROLLER_H
2#define LINTEL_SHAREDMEMORYCONTROLLER_H
3
10
11namespace lintel {
14{
15private:
16 std::shared_ptr<ISharedMemoryService> m_sharedMemoryService;
17 std::shared_ptr<ISharedMemorySegmentManager> m_sharedMemorySegmentManager;
18 std::vector<std::shared_ptr<SharedMemoryRepository>> m_sharedMemoryRepositories;
19 std::map<std::string, std::shared_ptr<SharedMemoryRepository>> m_uuidSharedMemoryRepositories;
20 Group m_adminGroup;
21 Group m_userGroup;
22
24 static std::map<std::string, std::shared_ptr<SharedMemoryRepository>> build(
25 const std::vector<std::shared_ptr<SharedMemoryRepository>> &repositories);
26
27public:
28 // Shared Memory Segment handler methods
29 ADD_HANDLER_METHOD(R"(/shm/segments/([^\/]+))", Get, allSegmentsOf);
30 ADD_HANDLER_METHOD(R"(/shm/segments/shrink/([^\/]+))", Put, shrinkSegmentOf);
31 ADD_HANDLER_METHOD(R"(/shm/segments/grow/([^\/]+)/([^\/]+))", Put, growSegmentOf);
32
33 // Shared Memory Repository handler methods
34 ADD_HANDLER_METHOD(R"(/shm/repositories/([^\/]+)/([^\/]+))", Get, allRepositoriesOf);
35 ADD_HANDLER_METHOD(R"(/shm/repository/([^\/]+))", Get, exportRepositoryOf);
36
37
38 SharedMemoryController(const std::shared_ptr<IAuthService> &authServicie,
39 std::shared_ptr<ISharedMemoryService> sharedMemoryService,
40 std::shared_ptr<ISharedMemorySegmentManager> sharedMemorySegmentManager,
41 std::vector<std::shared_ptr<SharedMemoryRepository>> sharedMemoryRepositories);
42};
43
44}// namespace lintel
45#endif// LINTEL_SHAREDMEMORYCONTROLLER_H
Definition Controller.h:90
@ Get
Definition Controller.h:121
@ Put
Definition Controller.h:121
Definition Group.h:35
Definition SharedMemoryController.h:14
ADD_HANDLER_METHOD(R"(/shm/segments/([^\/]+))", Get, allSegmentsOf)
ADD_HANDLER_METHOD(R"(/shm/segments/shrink/([^\/]+))", Put, shrinkSegmentOf)
ADD_HANDLER_METHOD(R"(/shm/segments/grow/([^\/]+)/([^\/]+))", Put, growSegmentOf)
ADD_HANDLER_METHOD(R"(/shm/repositories/([^\/]+)/([^\/]+))", Get, allRepositoriesOf)
SharedMemoryController(const std::shared_ptr< IAuthService > &authServicie, std::shared_ptr< ISharedMemoryService > sharedMemoryService, std::shared_ptr< ISharedMemorySegmentManager > sharedMemorySegmentManager, std::vector< std::shared_ptr< SharedMemoryRepository > > sharedMemoryRepositories)
ADD_HANDLER_METHOD(R"(/shm/repository/([^\/]+))", Get, exportRepositoryOf)
Definition BaseFeature.h:6
constexpr std::string_view type_name()
Definition TypeName.h:9