FairMQ/fairmq/sdk/Topology.h
2019-07-23 16:08:15 +02:00

53 lines
1.4 KiB
C++

/********************************************************************************
* Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
* copied verbatim in the file "LICENSE" *
********************************************************************************/
#ifndef FAIR_MQ_SDK_TOPOLOGY_H
#define FAIR_MQ_SDK_TOPOLOGY_H
#include <fairmq/States.h>
#include <functional>
#include <memory>
#include <ostream>
#include <string>
#include <vector>
namespace dds {
namespace topology_api {
class CTopology;
} // namespace topology_api
} // namespace dds
namespace fair {
namespace mq {
namespace sdk {
/**
* @class Topology Topology.h <fairmq/sdk/Topology.h>
* @brief Represents a FairMQ topology
*/
class Topology
{
public:
/// @brief Construct a FairMQ topology from an existing DDS session via the dds::topology_api
/// @param topo An initialized CTopology object
explicit Topology(dds::topology_api::CTopology topo);
private:
struct Impl;
std::shared_ptr<Impl> fImpl;
};
} // namespace sdk
} // namespace mq
} // namespace fair
#endif /* FAIR_MQ_SDK_TOPOLOGY_H */