12#ifndef SST_CORE_SYNC_SYNCQUEUE_H
13#define SST_CORE_SYNC_SYNCQUEUE_H
15#include "sst/core/activityQueue.h"
16#include "sst/core/rankInfo.h"
17#include "sst/core/threadsafe.h"
36class SyncQueue :
public ActivityQueue
39 explicit SyncQueue(
RankInfo to_rank) :
61class RankSyncQueue :
public SyncQueue
71 explicit RankSyncQueue(
RankInfo to_rank);
72 ~RankSyncQueue() =
default;
74 bool empty()
override;
86 uint64_t getDataSize() {
return buf_size + (activities.capacity() *
sizeof(
Activity*)); }
93 std::vector<Activity*> activities;
94 Profile::SyncProfileToolList* profile_tools_ =
nullptr;
96 Core::ThreadSafe::Spinlock slock;
99class ThreadSyncQueue :
public SyncQueue
102 explicit ThreadSyncQueue(
RankInfo to_rank) :
105 ~ThreadSyncQueue() {}
108 bool empty()
override {
return activities.empty(); }
111 int size()
override {
return activities.size(); }
130 void clear() { activities.clear(); }
132 std::vector<Activity*>& getVector() {
return activities; }
135 std::vector<Activity*> activities;
Base class for all Activities in the SST Event Queue.
Definition activity.h:48
bool empty() override
Returns true if the queue is empty.
Definition syncQueue.cc:35
void clear()
Clear elements from the queue.
Definition syncQueue.cc:75
int size() override
Returns the number of activities in the queue.
Definition syncQueue.cc:42
char * getData()
Accessor method to the internal queue.
Definition syncQueue.cc:82
Activity * pop() override
Remove and return the next activity.
Definition syncQueue.cc:56
Activity * front() override
Returns the next activity.
Definition syncQueue.cc:68
void insert(Activity *activity) override
Insert a new activity into the queue.
Definition syncQueue.cc:49
RankInfo getToRank()
Accessor method to get to_rank.
Definition syncQueue.h:46
Activity * front() override
Not supported.
Definition syncQueue.h:124
void insert(Activity *activity) override
Insert a new activity into the queue.
Definition syncQueue.h:121
bool empty() override
Returns true if the queue is empty.
Definition syncQueue.h:108
Activity * pop() override
Not supported.
Definition syncQueue.h:114
int size() override
Returns the number of activities in the queue.
Definition syncQueue.h:111