SST
14.1.0
StructuralSimulationToolkit
|
Public Member Functions | |
Data (const std::string &name) | |
void | setSize (size_t size, const T &init_data, verify_type v_type) |
Set the size of the array. More... | |
size_t | getSize () |
void | update_write (int index, const T &data) |
void | write (int index, const T &data) |
const T & | read (int index) const |
const T & | mutex_read (int index) const |
virtual SharedObjectChangeSet * | getChangeSet () override |
Gets the changeset for this data on this rank. More... | |
virtual void | resetChangeSet () override |
Resets the changeset for this data on this rank. More... | |
void | serialize_order (SST::Core::Serialization::serializer &ser) override |
ImplementSerializable (SST::Shared::SharedArray< T >::Data) | |
Public Member Functions inherited from SST::Shared::SharedObjectData | |
const std::string & | getName () |
Get the name of the SharedObject for this data. More... | |
bool | isFullyPublished () |
Checks to see if all instances of this SharedObject have called publish(). More... | |
virtual int | getShareCount () |
Get the number of sharers for this data. More... | |
virtual int | getPublishCount () |
Get the number of instances that have called publish() on their instance of the shared object. More... | |
Public Member Functions inherited from SST::Core::Serialization::serializable_base | |
virtual const char * | cls_name () const =0 |
virtual uint32_t | cls_id () const =0 |
virtual std::string | serialization_name () const =0 |
Data Fields | |
std::vector< T > | array |
std::vector< bool > | written |
ChangeSet * | change_set |
T | init |
verify_type | verify |
Additional Inherited Members | |
Static Public Attributes inherited from SST::Core::Serialization::serializable | |
static constexpr uint32_t | NullClsId = std::numeric_limits<uint32_t>::max() |
Static Public Attributes inherited from SST::Core::Serialization::serializable_base | |
static constexpr uint32_t | NullClsId = std::numeric_limits<uint32_t>::max() |
Protected Types inherited from SST::Core::Serialization::serializable_base | |
enum | cxn_flag_t { ConstructorFlag } |
Protected Member Functions inherited from SST::Shared::SharedObjectData | |
void | check_lock_for_write (const std::string &obj) |
virtual int | incShareCount () |
Increment the count of sharers. More... | |
virtual void | incPublishCount () |
Increment the count of instances that have called publish. More... | |
void | lock () |
Called by the core when writing to shared regions is no longer allowed. | |
SharedObjectData (const std::string &name) | |
Constructor for SharedObjectData. More... | |
virtual | ~SharedObjectData () |
Destructor for SharedObjectData. | |
void | serialize_order (SST::Core::Serialization::serializer &ser) override |
ImplementVirtualSerializable (SharedObjectData) | |
Static Protected Member Functions inherited from SST::Core::Serialization::serializable_base | |
static void | serializable_abort (uint32_t line, const char *file, const char *func, const char *obj) |
Protected Attributes inherited from SST::Shared::SharedObjectData | |
std::string | name |
int | share_count |
int | publish_count |
bool | fully_published |
bool | locked |
std::mutex | mtx |
|
inlineoverridevirtual |
Gets the changeset for this data on this rank.
This is called by the core when exchanging and merging data
Implements SST::Shared::SharedObjectData.
|
inlineoverridevirtual |
Resets the changeset for this data on this rank.
This is called by the core when exchanging and merging data
Implements SST::Shared::SharedObjectData.
|
inline |
Set the size of the array.
An element can only write up to the current size (reading or writing beyond the size will create undefined behavior). However, an element can put in the size it needs for it's writes and it will end up being the largest size requested. We use a vector underneatch the covers to manage the memory/copying of data.
References SST::Shared::SharedObjectData::lock(), and SST::Shared::SharedArray< T >::size().
Referenced by SST::Shared::SharedArray< int >::initialize().