// Copyright (c) OpenMMLab. All rights reserved. #ifndef MMDEPLOY_SRC_CORE_NET_H_ #define MMDEPLOY_SRC_CORE_NET_H_ #include "mpl/span.h" #include "registry.h" #include "tensor.h" #include "value.h" namespace mmdeploy { class Net { public: virtual ~Net() = default; virtual Result Init(const Value& cfg) = 0; virtual Result Deinit() = 0; virtual Result> GetInputTensors() = 0; virtual Result> GetOutputTensors() = 0; virtual Result Reshape(Span input_shapes) = 0; virtual Result Forward() = 0; virtual Result ForwardAsync(Event* event) = 0; }; MMDEPLOY_DECLARE_REGISTRY(Net); } // namespace mmdeploy #endif // MMDEPLOY_SRC_CORE_NET_H_