12#ifndef SST_CORE_SUBCOMPONENT_H
13#define SST_CORE_SUBCOMPONENT_H
15#include "sst/core/baseComponent.h"
16#include "sst/core/eli/elementinfo.h"
17#include "sst/core/module.h"
18#include "sst/core/warnmacros.h"
28class SubComponent :
public BaseComponent
32 SST_ELI_DECLARE_BASE(SubComponent)
34 SST_ELI_DECLARE_CTOR_EXTERN(ComponentId_t)
37 SST_ELI_DECLARE_INFO_EXTERN(
46 explicit SubComponent(ComponentId_t
id);
48 virtual ~SubComponent() {};
52 virtual void init(
unsigned int UNUSED(phase))
override {}
55 virtual void setup()
override {}
73#define SST_ELI_REGISTER_SUBCOMPONENT_API(cls, ...) \
74 SST_ELI_DECLARE_NEW_BASE(SST::SubComponent,::cls) \
75 SST_ELI_NEW_BASE_CTOR(SST::ComponentId_t,SST::Params&,##__VA_ARGS__)
77#define SST_ELI_REGISTER_SUBCOMPONENT_DERIVED_API(cls, base, ...) \
78 SST_ELI_DECLARE_NEW_BASE(::base,::cls) \
79 SST_ELI_NEW_BASE_CTOR(SST::ComponentId_t,SST::Params&,##__VA_ARGS__)
81#define SST_ELI_REGISTER_SUBCOMPONENT(cls, lib, name, version, desc, interface) \
82 SST_ELI_REGISTER_DERIVED(::interface,cls,lib,name,ELI_FORWARD_AS_ONE(version),desc) \
83 SST_ELI_INTERFACE_INFO(#interface)
Main component object for the simulation.
Definition component.h:31
This class is basically a wrapper for objects to declare the order in which their members should be s...
Definition serializer.h:45
Definition attributeInfo.h:40
Definition interfaceInfo.h:21
Definition paramsInfo.h:39
Definition portsInfo.h:39
Definition profilePointInfo.h:39
Definition statsInfo.h:39
Definition subcompSlotInfo.h:39
SubComponent is a class loadable through the factory which allows dynamic functionality to be added t...
Definition subcomponent.h:29
virtual void setup() override
Called after all components have been constructed and initialization has completed,...
Definition subcomponent.h:55
virtual void finish() override
Called after simulation completes, but before objects are destroyed.
Definition subcomponent.h:58
virtual void init(unsigned int UNUSED(phase)) override
Used during the init phase.
Definition subcomponent.h:52