12#ifndef SST_CORE_PROFILE_PROFILETOOL_H
13#define SST_CORE_PROFILE_PROFILETOOL_H
15#include "sst/core/eli/elementinfo.h"
16#include "sst/core/rankInfo.h"
17#include "sst/core/sst_types.h"
18#include "sst/core/warnmacros.h"
31namespace SST::Profile {
43 SST_ELI_DECLARE_CTOR_EXTERN(
const std::string&,
Params&)
44 SST_ELI_DECLARE_INFO_EXTERN(
52 std::string getName() {
return name; }
57 const std::string name;
65#define SST_ELI_REGISTER_PROFILETOOL_API(cls, ...) \
66 SST_ELI_DECLARE_NEW_BASE(SST::Profile::ProfileTool,::cls) \
67 SST_ELI_NEW_BASE_CTOR(const std::string&,##__VA_ARGS__)
69#define SST_ELI_REGISTER_PROFILETOOL_DERIVED_API(cls, base, ...) \
70 SST_ELI_DECLARE_NEW_BASE(::base,::cls) \
71 SST_ELI_NEW_BASE_CTOR(const std::string&,##__VA_ARGS__)
73#define SST_ELI_REGISTER_PROFILETOOL(cls, interface, lib, name, version, desc) \
74 SST_ELI_REGISTER_DERIVED(::interface,cls,lib,name,ELI_FORWARD_AS_ONE(version),desc) \
75 SST_ELI_INTERFACE_INFO(#interface)
Definition interfaceInfo.h:22
Definition paramsInfo.h:41
Parameter store.
Definition params.h:65
Definition perfReporter.h:64