SST  15.1.0
StructuralSimulationToolkit
componentExtension.h
1 // Copyright 2009-2025 NTESS. Under the terms
2 // of Contract DE-NA0003525 with NTESS, the U.S.
3 // Government retains certain rights in this software.
4 //
5 // Copyright (c) 2009-2025, NTESS
6 // All rights reserved.
7 //
8 // This file is part of the SST software package. For license
9 // information, see the LICENSE file in the top level directory of the
10 // distribution.
11 
12 #ifndef SST_CORE_COMPONENTEXTENSION_H
13 #define SST_CORE_COMPONENTEXTENSION_H
14 
15 #include "sst/core/baseComponent.h"
16 #include "sst/core/warnmacros.h"
17 
18 namespace SST {
19 
20 /**
21  ComponentExtension is a class that can be loaded using
22  loadComponentExtension<T>(...). All the calls to the BaseComponent
23  API will act like they are happening in the nearest SubComponent
24  or Component parent. Hierarchy will not be kept in the case where a
25  ComponentExtension is loaded into a ComponentExtension; they will
26  both act like they are in the parent.
27 */
29 {
30 
31 public:
32  explicit ComponentExtension(ComponentId_t id);
33 
34  virtual ~ComponentExtension() override = default;
35 
36 protected:
37  ComponentExtension() = default; // For serialization only
38 
39  void serialize_order(SST::Core::Serialization::serializer& ser) override;
40  ImplementSerializable(SST::ComponentExtension)
41 };
42 
43 } // namespace SST
44 
45 #endif // SST_CORE_COMPONENTEXTENSION_H
This class is basically a wrapper for objects to declare the order in which their members should be s...
Definition: serializer.h:42
ComponentExtension is a class that can be loaded using loadComponentExtension<T>(...).
Definition: componentExtension.h:28
Definition: action.cc:18
Main component object for the simulation.
Definition: baseComponent.h:64