History

TimeSeriesPlatformLibrary: Simplified timer operations and temporal support.

J. Ritchie Carroll committed 7 years ago

Commit a15ae261 parent be7f88315 files · +149 −371Browse files

Showing the changes to Source/Libraries/TimeSeriesPlatformLibrary/Samples/TemporalSubscriber.cpp (1 of 15 files). Show all

Unified · Split

Source/Libraries/TimeSeriesPlatformLibrary/Samples/TemporalSubscriber.cpp+10−6
@@ -32,9 +32,11 @@ using namespace GSF::TimeSeries; · 31 unmodified lines
3232 GSF::Data::DataSetPtr TemporalSubscriber::s_historyDataSet = nullptr;
3333 GSF::Data::DataTablePtr TemporalSubscriber::s_history = nullptr;
3434
35−TemporalSubscriber::TemporalSubscriber(TemporalSubscriberConnectionPtr connection) :
35+TemporalSubscriber::TemporalSubscriber(SubscriberConnectionPtr connection) :
3636 m_connection(std::move(connection)),
37− m_currentTimestamp(m_connection->GetStartTicks()),
37+ m_startTimestamp(ToTicks(m_connection->GetStartTimeConstraint())),
38+ m_stopTimestamp(ToTicks(m_connection->GetStopTimeConstraint())),
39+ m_currentTimestamp(m_startTimestamp),
3840 m_currentRow(0),
3941 m_stopped(false)
4042 {
@@ -57,20 +59,22 @@ TemporalSubscriber::TemporalSubscriber(TemporalSubscriberConnectionPtr connectio · 16 unmodified lines
5759 TemporalSubscriber::~TemporalSubscriber()
5860 {
5961 CompleteTemporalSubscription();
62+ m_processTimer.reset();
6063 }
6164
6265 void TemporalSubscriber::SetProcessingInterval(int32_t processingInterval) const
6366 {
6467 if (processingInterval == -1)
6568 processingInterval = 33;
66− else if (processingInterval == 0)
67− processingInterval = 1;
6869
6970 m_processTimer->SetInterval(processingInterval);
7071 }
7172
7273 void TemporalSubscriber::SendTemporalData()
7374 {
75+ if (m_stopped)
76+ return;
77+
7478 static DataTable& history = *s_history;
7579 static const int32_t signalIDColumn = history["SignalID"]->Index();
7680 static const int32_t timestampColumn = history["Timestamp"]->Index();
@@ -103,7 +107,7 @@ void TemporalSubscriber::SendTemporalData() · 26 unmodified lines
103107 // Setup next publication timestamp
104108 m_currentTimestamp += HistoryInterval;
105109
106− if (m_currentTimestamp > m_connection->GetStopTicks())
110+ if (m_currentTimestamp > m_stopTimestamp)
107111 CompleteTemporalSubscription();
108112 }
109113
@@ -112,7 +116,7 @@ void TemporalSubscriber::CompleteTemporalSubscription() · 2 unmodified lines
112116 if (m_stopped)
113117 return;
114118
115− m_stopped = true;
116119 m_processTimer->Stop();
117120 m_connection->CompleteTemporalSubscription();
121+ m_stopped = true;
118122 }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t