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"
35 SST_ELI_DECLARE_CTOR_EXTERN(
const std::string&,
Params&)
36 SST_ELI_DECLARE_INFO_EXTERN(
44 std::string getName() {
return name; }
46 virtual void outputData(FILE* fp) = 0;
49 const std::string name;
58#define SST_ELI_REGISTER_PROFILETOOL_API(cls, ...) \
59 SST_ELI_DECLARE_NEW_BASE(SST::Profile::ProfileTool,::cls) \
60 SST_ELI_NEW_BASE_CTOR(const std::string&,##__VA_ARGS__)
62#define SST_ELI_REGISTER_PROFILETOOL_DERIVED_API(cls, base, ...) \
63 SST_ELI_DECLARE_NEW_BASE(::base,::cls) \
64 SST_ELI_NEW_BASE_CTOR(const std::string&,##__VA_ARGS__)
66#define SST_ELI_REGISTER_PROFILETOOL(cls, interface, lib, name, version, desc) \
67 SST_ELI_REGISTER_DERIVED(::interface,cls,lib,name,ELI_FORWARD_AS_ONE(version),desc) \
68 SST_ELI_INTERFACE_INFO(#interface)
Definition: interfaceInfo.h:19
Definition: paramsInfo.h:41
Parameter store.
Definition: params.h:56