blob: 3ea7e5c626c8a94c7d56a80ad004df35c72ddc98 [file]
#ifndef THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_HAL_SHARED_MEM_STATIC_CLIENT_SEGMENT_H_
#define THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_HAL_SHARED_MEM_STATIC_CLIENT_SEGMENT_H_
#include <memory>
#include <string>
#include "absl/base/call_once.h"
#include "tlbmc/hal/shared_mem/client_segment.h"
// copybara:strip_begin(g3-shared-libs)
#include "tlbmc/hal/shared_mem/metrics.h"
// copybara:strip_end
#include "tlbmc/hal/shared_mem/sensors.h"
#include "tlbmc/hal/shared_mem/static_shm_common.h"
namespace milotic_tlbmc {
class StaticClientSegment : public ClientSegment {
public:
static std::unique_ptr<StaticClientSegment> Create(
const std::string& shared_memory_name);
explicit StaticClientSegment(std::unique_ptr<TlbmcSharedMemoryType> memory);
[[nodiscard]] IpcSensor* FindSensor(
const std::string& sensor_name) const override;
// copybara:strip_begin(g3-shared-libs)
[[nodiscard]] TlbmcMetrics* GetMetrics() override;
// copybara:strip_end
private:
std::unique_ptr<TlbmcSharedMemoryType> memory_;
};
} // namespace milotic_tlbmc
#endif // THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_HAL_SHARED_MEM_STATIC_CLIENT_SEGMENT_H_