peary/interfaces/Loopback/loopback.hpp

Peary Loopback Interface. More…

Namespaces

Name
peary
peary::interface

Classes

Name
struct peary::interface::LoopbackInterface
class peary::interface::LoopbackEndpoint Peary Loopback Interface.

Detailed Description

Peary Loopback Interface.

Copyright: Copyright (c) 2016-2025 CERN and the Peary Caribou authors. This software is distributed under the terms of the LGPL-3.0-only License, copied verbatim in the file “LICENSE.md”. SPDX-License-Identifier: LGPL-3.0-only

Source code

  
#pragma once

#include <cstdint>
#include <mutex>
#include <string>
#include <vector>

#include "peary/interfaces/Endpoint.hpp"
#include "peary/utils/exceptions.hpp"

namespace peary::interface {

    struct LoopbackInterface {};

    class LoopbackEndpoint : public Endpoint<LoopbackInterface, uint8_t, uint8_t> {

    public:
        LoopbackEndpoint(uint8_t id);

        ~LoopbackEndpoint();

        data_t write_impl(const reg_t& data) override;

        vector_t write_impl(const vector_t& data) override;

        pair_t write_impl(const pair_t& data) override;

        vector_t write_impl(const reg_t& reg, const vector_t& data) override;

        std::vector<pair_t> write_impl(const std::vector<pair_t>& data) override;

        vector_t read_impl(const unsigned int length) override;

        vector_t read_impl(const reg_t& reg, const unsigned int length) override;

    private:
        const uint8_t _id;
    };

} // namespace peary::interface
  

Updated on 2026-01-30 at 22:01:05 +0100