12#ifndef SST_CORE_COMPONENT_H
13#define SST_CORE_COMPONENT_H
15#include "sst/core/baseComponent.h"
16#include "sst/core/eli/elementinfo.h"
17#include "sst/core/sst_types.h"
21using namespace SST::Statistics;
35 SST_ELI_DECLARE_CTOR_EXTERN(ComponentId_t,
SST::Params&)
38 SST_ELI_DECLARE_INFO_EXTERN(
39 ELI::ProvidesCategory,
42 ELI::ProvidesSubComponentSlots,
44 ELI::ProvidesProfilePoints,
45 ELI::ProvidesAttributes)
105#define SST_ELI_REGISTER_COMPONENT_BASE(cls) \
106 SST_ELI_DECLARE_NEW_BASE(SST::Component,::cls) \
107 SST_ELI_NEW_BASE_CTOR(SST::ComponentId_t,SST::Params&)
109#define SST_ELI_REGISTER_COMPONENT_DERIVED_BASE(cls, base) \
110 SST_ELI_DECLARE_NEW_BASE(::base,::cls) \
111 SST_ELI_NEW_BASE_CTOR(SST::ComponentId_t,SST::Params&)
116#define ELI_GET_COMPONENT_DEFAULT(x, arg1, ...) arg1
118#define SST_ELI_REGISTER_COMPONENT(cls, lib, name, version, desc, cat, ...) \
119 SST_ELI_REGISTER_DERIVED(ELI_GET_COMPONENT_DEFAULT(,##__VA_ARGS__,SST::Component),cls,lib,name,ELI_FORWARD_AS_ONE(version),desc) \
120 SST_ELI_CATEGORY_INFO(cat)
Main component object for the simulation.
Definition: baseComponent.h:51
Main component object for the simulation.
Definition: component.h:31
void primaryComponentOKToEndSim()
Tells the simulation that it is now OK to end simulation.
Definition: component.cc:49
void registerAsPrimaryComponent()
Register as a primary component, which allows the component to specify when it is and is not OK to en...
Definition: component.cc:36
void primaryComponentDoNotEndSim()
Tells the simulation that it should not exit.
Definition: component.cc:42
Parameter store.
Definition: params.h:56
SubComponent is a class loadable through the factory which allows dynamic functionality to be added t...
Definition: subcomponent.h:29