RAJA
RAJA provides a collection of platform portability abstractions for C++ HPC applications.
RuntimePluginLoader.hpp
Go to the documentation of this file.
1 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
2 // Copyright (c) Lawrence Livermore National Security, LLC and other
3 // RAJA Project Developers. See top-level LICENSE and COPYRIGHT
4 // files for dates and other details. No copyright assignment is required
5 // to contribute to RAJA.
6 //
7 // SPDX-License-Identifier: (BSD-3-Clause)
8 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
9 
10 #ifndef RAJA_Runtime_Plugin_Loader_HPP
11 #define RAJA_Runtime_Plugin_Loader_HPP
12 
13 #include <memory>
14 #include <vector>
15 
18 
19 namespace RAJA
20 {
21 namespace util
22 {
23 
25 {
27 
28 public:
30 
31  void init(const RAJA::util::PluginOptions& p) override;
32 
33  void preCapture(const RAJA::util::PluginContext& p) override;
34 
35  void postCapture(const RAJA::util::PluginContext& p) override;
36 
37  void preLaunch(const RAJA::util::PluginContext& p) override;
38 
39  void postLaunch(const RAJA::util::PluginContext& p) override;
40 
41  void finalize() override;
42 
43 private:
44  void initPlugin(const std::string& path);
45 
46  void initDirectory(const std::string& path);
47 
48  std::vector<std::unique_ptr<Parent>> plugins;
49 
50 }; // end RuntimePluginLoader class
51 
53 
54 } // end namespace util
55 } // end namespace RAJA
56 
57 #endif
Definition: PluginStrategy.hpp:23
Definition: RuntimePluginLoader.hpp:25
void preCapture(const RAJA::util::PluginContext &p) override
Definition: RuntimePluginLoader.cpp:54
void postCapture(const RAJA::util::PluginContext &p) override
Definition: RuntimePluginLoader.cpp:62
void preLaunch(const RAJA::util::PluginContext &p) override
Definition: RuntimePluginLoader.cpp:70
RuntimePluginLoader()
Definition: RuntimePluginLoader.cpp:34
void init(const RAJA::util::PluginOptions &p) override
Definition: RuntimePluginLoader.cpp:45
void postLaunch(const RAJA::util::PluginContext &p) override
Definition: RuntimePluginLoader.cpp:78
void finalize() override
Definition: RuntimePluginLoader.cpp:86
void linkRuntimePluginLoader()
Definition: RuntimePluginLoader.cpp:168
Definition: AlignedRangeIndexSetBuilders.cpp:35
Definition: PluginContext.hpp:26
Definition: PluginOptions.hpp:21