gloo/transport/ibverbs/context.h (24 lines of code) (raw):
/**
* Copyright (c) 2018-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree.
*/
#pragma once
#include "gloo/transport/context.h"
#include <memory>
namespace gloo {
namespace transport {
namespace ibverbs {
// Forward declaration
class Device;
class Pair;
class Context : public ::gloo::transport::Context,
public std::enable_shared_from_this<Context> {
public:
Context(std::shared_ptr<Device> device, int rank, int size);
virtual ~Context();
std::unique_ptr<transport::Pair>& createPair(int rank) override;
std::unique_ptr<transport::UnboundBuffer> createUnboundBuffer(
void* ptr,
size_t size) override;
protected:
std::shared_ptr<Device> device_;
friend class Pair;
};
} // namespace ibverbs
} // namespace transport
} // namespace gloo