↰ Return to documentation for file (morpheus/_lib/include/morpheus/messages/multi_tensor.hpp
)
#pragma once
#include "morpheus/messages/memory/tensor_memory.hpp"
#include "morpheus/messages/meta.hpp"
#include "morpheus/messages/multi.hpp"
#include "morpheus/objects/tensor_object.hpp"
#include <cstddef>
#include <memory>
#include <string>
#include <utility>// for pair
#include <vector>
namespace morpheus {
#pragma GCC visibility push(default)
/****** MultiTensorMessage*******************************/
class MultiTensorMessage : public DerivedMultiMessage<MultiTensorMessage, MultiMessage>
{
public:
MultiTensorMessage(const MultiTensorMessage &other) = default;
MultiTensorMessage(std::shared_ptr<morpheus::MessageMeta> meta,
std::size_t mess_offset,
std::size_t mess_count,
std::shared_ptr<morpheus::TensorMemory> memory,
std::size_t offset,
std::size_t count);
std::shared_ptr<morpheus::TensorMemory> memory;
std::size_t offset{0};
std::size_t count{0};
const TensorObject get_tensor(const std::string &name) const;
TensorObject get_tensor(const std::string &name);
void set_tensor(const std::string &name, const TensorObject &value);
protected:
void get_slice_impl(std::shared_ptr<MultiMessage> new_message, std::size_t start, std::size_t stop) const override;
void copy_ranges_impl(std::shared_ptr<MultiMessage> new_message,
const std::vector<std::pair<std::size_t, std::size_t>> &ranges,
size_t num_selected_rows) const override;
std::shared_ptr<morpheus::TensorMemory> copy_input_ranges(
const std::vector<std::pair<std::size_t, std::size_t>> &ranges, std::size_t num_selected_rows) const;
TensorObject get_tensor_impl(const std::string &name) const;
};
#pragma GCC visibility pop// end of group
} // namespace morpheus