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/sst_types.h"
17#include "sst/core/warnmacros.h"
25namespace SST::Profile {
37 SST_ELI_DECLARE_CTOR_EXTERN(
const std::string&,
Params&)
38 SST_ELI_DECLARE_INFO_EXTERN(
46 std::string getName() {
return name; }
48 virtual void outputData(FILE* fp) = 0;
51 const std::string name;
59#define SST_ELI_REGISTER_PROFILETOOL_API(cls, ...) \
60 SST_ELI_DECLARE_NEW_BASE(SST::Profile::ProfileTool,::cls) \
61 SST_ELI_NEW_BASE_CTOR(const std::string&,##__VA_ARGS__)
63#define SST_ELI_REGISTER_PROFILETOOL_DERIVED_API(cls, base, ...) \
64 SST_ELI_DECLARE_NEW_BASE(::base,::cls) \
65 SST_ELI_NEW_BASE_CTOR(const std::string&,##__VA_ARGS__)
67#define SST_ELI_REGISTER_PROFILETOOL(cls, interface, lib, name, version, desc) \
68 SST_ELI_REGISTER_DERIVED(::interface,cls,lib,name,ELI_FORWARD_AS_ONE(version),desc) \
69 SST_ELI_INTERFACE_INFO(#interface)
Definition interfaceInfo.h:21
Definition paramsInfo.h:39
Parameter store.
Definition params.h:58