File data_tagging_spi.hpp

File List > astutedds > security > data_tagging_spi.hpp

Go to the documentation of this file

//
// Copyright (c) 2026, Astute Systems PTY LTD
//
// This file is part of the Astute DDS developed by Astute Systems.
//
// See the commercial LICENSE file in the project root for full license details.
//

#pragma once

#include "security_types.hpp"

#include <memory>
#include <string>
#include <vector>

namespace astutedds::security
{

struct DataTag
{
    std::string name;
    std::string value;
};

using DataTagSeq = std::vector<DataTag>;

class DataTaggingPlugin
{
public:
    virtual ~DataTaggingPlugin() = default;

    virtual bool set_datawriter_tags(DatawriterCryptoHandle writer_crypto_handle, const DataTagSeq& tags,
                                     SecurityException& ex) = 0;

    virtual bool set_datareader_tags(DatareaderCryptoHandle reader_crypto_handle, const DataTagSeq& tags,
                                     SecurityException& ex) = 0;

    virtual DataTagSeq get_datawriter_tags(DatawriterCryptoHandle writer_crypto_handle, SecurityException& ex) = 0;

    virtual DataTagSeq get_datareader_tags(DatareaderCryptoHandle reader_crypto_handle, SecurityException& ex) = 0;

    virtual bool match_tags(const DataTagSeq& writer_tags, const DataTagSeq& reader_tags, SecurityException& ex) = 0;
};

using DataTaggingPluginPtr = std::shared_ptr<DataTaggingPlugin>;

}  // namespace astutedds::security