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;
30class Component :
public BaseComponent
33 SST_ELI_DECLARE_BASE(Component)
35 SST_ELI_DECLARE_CTOR_EXTERN(ComponentId_t,
SST::Params&)
39 ELI::ProvidesCategory,
42 ELI::ProvidesSubComponentSlots,
44 ELI::ProvidesProfilePoints,
45 ELI::ProvidesAttributes)
50 explicit Component(ComponentId_t
id);
51 virtual ~Component() override = default;
95 void serialize_order(SST::Core::Serialization::
serializer& ser) override;
96 ImplementSerializable(SST::Component)
99 friend class SubComponent;
100 Component() = default;
109#define SST_ELI_REGISTER_COMPONENT_BASE(cls) \
110 SST_ELI_DECLARE_NEW_BASE(SST::Component,::cls) \
111 SST_ELI_NEW_BASE_CTOR(SST::ComponentId_t,SST::Params&)
113#define SST_ELI_REGISTER_COMPONENT_DERIVED_BASE(cls, base) \
114 SST_ELI_DECLARE_NEW_BASE(::base,::cls) \
115 SST_ELI_NEW_BASE_CTOR(SST::ComponentId_t,SST::Params&)
120#define ELI_GET_COMPONENT_DEFAULT(x, arg1, ...) arg1
122#define SST_ELI_REGISTER_COMPONENT(cls, lib, name, version, desc, cat, ...) \
123 SST_ELI_REGISTER_DERIVED(ELI_GET_COMPONENT_DEFAULT(,##__VA_ARGS__,SST::Component),cls,lib,name,ELI_FORWARD_AS_ONE(version),desc) \
124 SST_ELI_CATEGORY_INFO(cat)
void primaryComponentOKToEndSim()
Tells the simulation that it is now OK to end simulation.
Definition component.cc:48
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:35
SST_ELI_DECLARE_INFO_EXTERN(ELI::ProvidesCategory, ELI::ProvidesParams, ELI::ProvidesPorts, ELI::ProvidesSubComponentSlots, ELI::ProvidesStats, ELI::ProvidesProfilePoints, ELI::ProvidesAttributes) explicit Component(ComponentId_t id)
Constructor.
void primaryComponentDoNotEndSim()
Tells the simulation that it should not exit.
Definition component.cc:41
This class is basically a wrapper for objects to declare the order in which their members should be s...
Definition serializer.h:45
Parameter store.
Definition params.h:58
SubComponent is a class loadable through the factory which allows dynamic functionality to be added t...
Definition subcomponent.h:29