diff options
Diffstat (limited to 'runtimes/neurun/src/backend/BackendManager.h')
-rw-r--r-- | runtimes/neurun/src/backend/BackendManager.h | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/runtimes/neurun/src/backend/BackendManager.h b/runtimes/neurun/src/backend/BackendManager.h deleted file mode 100644 index 428542b1e..000000000 --- a/runtimes/neurun/src/backend/BackendManager.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __NEURUN_BACKEND_BACKEND_MANAGER_H__ -#define __NEURUN_BACKEND_BACKEND_MANAGER_H__ - -#include <memory> -#include <map> - -#include "model/operand/Set.h" - -namespace neurun -{ -namespace backend -{ - -struct IConfig; -struct IStageGenerator; -struct ITensorBuilder; - -class Backend -{ -public: - Backend(const std::shared_ptr<neurun::backend::IConfig> &backend_config, - const std::shared_ptr<neurun::backend::IStageGenerator> &stage_gen); - - Backend(void) : _config(nullptr), _stage_gen(nullptr) - { - // DO NOTHING - } - -public: - const std::shared_ptr<neurun::backend::IConfig> config() const; - const std::shared_ptr<neurun::backend::IStageGenerator> stage_gen() const; - const std::shared_ptr<neurun::backend::ITensorBuilder> tensor_builder() const; - -private: - std::shared_ptr<neurun::backend::IConfig> _config; - std::shared_ptr<neurun::backend::IStageGenerator> _stage_gen; -}; - -class BackendManager -{ -public: - BackendManager(const neurun::model::operand::Set &operands); - - Backend *get(const std::string &key); - -private: - std::map<std::string, Backend> _gen_map; - /** - * @brief Allocate an object of a class of a plugin by loading a plugin function, that does - * allocation, and calling it - * - * @param object_of_plugin_class target object - * @param obj_creator_func_name name of the plugin function, that allocates an object - * @param handle handle of the plugin - * @param args arguments to pass to constructor of the plugin class - * - * @return - */ - template <typename T, class... Types> - void loadObjectFromPlugin(std::shared_ptr<T> &object_of_plugin_class, - const std::string obj_creator_func_name, void *handle, - Types &&... args); - - /** - * @brief load backend plugin - * - * @param backend backend to be loaded - * @param operands operands to construct StageGenerator - * - * @return - */ - void loadBackend(const std::string &backend, const neurun::model::operand::Set &operands); -}; - -} // namespace backend -} // namespace neurun - -#endif // __NEURUN_BACKEND_BACKEND_MANAGER_H__ |