12#ifndef SST_CORE_CORETEST_SHAREDOBJECT_H
13#define SST_CORE_CORETEST_SHAREDOBJECT_H
15#include "sst/core/component.h"
16#include "sst/core/output.h"
17#include "sst/core/shared/sharedArray.h"
18#include "sst/core/shared/sharedMap.h"
19#include "sst/core/shared/sharedSet.h"
21namespace SST::CoreTestSharedObjectsComponent {
35 setItem(
int key,
int value) :
40 bool operator<(
const setItem& lhs)
const {
return key < lhs.key; }
42 bool operator==(
const setItem& lhs)
const
44 if ( key != lhs.key )
return false;
45 if ( value != lhs.value )
return false;
62 SST_ELI_REGISTER_COMPONENT(
63 coreTestSharedObjectsComponent,
65 "coreTestSharedObjectsComponent",
66 SST_ELI_ELEMENT_VERSION(1,0,0),
67 "Test for SharedObjects",
68 COMPONENT_CATEGORY_UNCATEGORIZED
71 SST_ELI_DOCUMENT_PARAMS(
72 {
"object_type",
"Type of object to test ( array | map | set )",
"array"},
73 {
"num_entities",
"Number of entities in the sim",
"12"},
74 {
"myid",
"ID Number (0 <= myid < num_entities)",
nullptr},
75 {
"full_initialization",
"If true, id 0 will initialize whole array, otherwise each id will contribute",
"true"},
76 {
"multiple_initializers",
"If doing full_initialization, this will cause ID N-1 to also initialize array",
"false"},
77 {
"conflicting_write",
"Controls whether a conflicting write is done when full_initialization and multiple_initializers are turned on (otherwise it has no effect)",
"false"},
78 {
"verify_mode",
"Sets verify mode for SharedArray ( FE | INIT | NONE )",
"INIT" },
79 {
"late_write",
"Controls whether a late write is done",
"false" },
80 {
"publish",
"Controls whether publish() is called or not",
"true"},
81 {
"double_initialize",
"If true, initialize() will be called twice",
"false" },
82 {
"late_initialize",
"If true, initialize() will be called during setup instead of in constructor",
"false" },
83 {
"checkpoint",
"If true, SharedObject state will be printed in setup() and finish()",
"false" }
87 SST_ELI_DOCUMENT_STATISTICS(
91 SST_ELI_DOCUMENT_PORTS(
92 {
"left",
"Link to the component to the left", {
"" } },
93 {
"right",
"Link to the component to the right", {
"" } }
98 SST_ELI_DOCUMENT_SUBCOMPONENT_SLOTS(
101 coreTestSharedObjectsComponent(SST::ComponentId_t
id,
SST::Params& params);
102 ~coreTestSharedObjectsComponent() {}
104 void init(
unsigned int phase)
override;
105 void setup()
override;
107 void complete(
unsigned int phase)
override;
109 bool tick(SST::Cycle_t);
111 coreTestSharedObjectsComponent() :
121 bool test_bool_array;
132 bool late_initialize;
Main component object for the simulation.
Definition component.h:31
Definition coreTest_SharedObjectComponent.h:59
void finish() override
Called after complete phase, but before objects are destroyed.
Definition coreTest_SharedObjectComponent.cc:338
void setup() override
Called after all components have been constructed and initialization has completed,...
Definition coreTest_SharedObjectComponent.cc:245
Definition serializable.h:24
This class is basically a wrapper for objects to declare the order in which their members should be s...
Definition serializer.h:45
Output object provides consistent method for outputting data to stdout, stderr and/or sst debug file.
Definition output.h:54
Parameter store.
Definition params.h:58
SharedArray class.
Definition sharedArray.h:32
SharedMap class.
Definition sharedMap.h:31
SharedSet class.
Definition sharedSet.h:31
Definition coreTest_SharedObjectComponent.h:26