History

TimeSeriesPlatformLibrary: Added user data property for publisher instance and performed some subscriber code cleanup

J. Ritchie Carroll committed 7 years ago

Commit 7344d5e1 parent 076441c8 files · +73 −33Browse files

Showing the changes to Source/Libraries/TimeSeriesPlatformLibrary/Samples (3 of 8 files). Show all

Unified · Split

3 files
  1. Source/Libraries/TimeSeriesPlatformLibrary/Samples/InstanceSubscribe.cpp +7 −7
  2. Source/Libraries/TimeSeriesPlatformLibrary/Samples/SubscriberHandler.cpp +29 −8
  3. Source/Libraries/TimeSeriesPlatformLibrary/Samples/SubscriberHandler.h +15 −12
Source/Libraries/TimeSeriesPlatformLibrary/Samples/InstanceSubscribe.cpp+7−7
@@ -22,15 +22,15 @@ · 21 unmodified lines
2222 //******************************************************************************************************
2323
2424 #include <iostream>
25−
26−#include "../Common/Convert.h"
2725 #include "SubscriberHandler.h"
26+#include "../Common/Convert.h"
2827
2928 using namespace std;
3029 using namespace GSF;
30+using namespace GSF::TimeSeries;
31+using namespace GSF::TimeSeries::Transport;
3132
3233 #define TotalInstances 3
33−
3434 SubscriberHandler* Subscriber[TotalInstances];
3535
3636 int main(int argc, char* argv[])
@@ -55,7 +55,6 @@ int main(int argc, char* argv[]) · 18 unmodified lines
5555 for (uint32_t i = 0; i < TotalInstances; i++)
5656 {
5757 SubscriberHandler* subscriber = new SubscriberHandler("Subscriber " + ToString(i + 1));
58−
5958 subscriber->Initialize(hostname, port);
6059
6160 switch (i)
@@ -87,13 +86,14 @@ int main(int argc, char* argv[]) · 25 unmodified lines
8786
8887 // Shutdown subscriber instances
8988 for (uint32_t i = 0; i < TotalInstances; i++)
90− {
9189 Subscriber[i]->Disconnect();
92− delete Subscriber[i];
93− }
9490
9591 // Disconnect the subscriber to stop background threads.
9692 cout << "Disconnected." << endl;
9793
94+ // Delete subscriber instances
95+ for (uint32_t i = 0; i < TotalInstances; i++)
96+ delete Subscriber[i];
97+
9898 return 0;
9999 }
Source/Libraries/TimeSeriesPlatformLibrary/Samples/SubscriberHandler.cpp+29−8
@@ -31,12 +31,18 @@ · 30 unmodified lines
3131 using namespace std;
3232 using namespace GSF;
3333 using namespace GSF::TimeSeries;
34+using namespace GSF::TimeSeries::Transport;
3435
35−SubscriberHandler::SubscriberHandler(const string& name) :
36− m_name(name)
36+SubscriberHandler::SubscriberHandler(string name) :
37+ m_name(std::move(name))
3738 {
3839 }
3940
41+SubscriberHandler::~SubscriberHandler()
42+{
43+ cout << "Calling " << m_name << " destructor...";
44+}
45+
4046 SubscriptionInfo SubscriberHandler::CreateSubscriptionInfo()
4147 {
4248 SubscriptionInfo info = SubscriberInstance::CreateSubscriptionInfo();
@@ -63,6 +69,12 @@ SubscriptionInfo SubscriberHandler::CreateSubscriptionInfo() · 20 unmodified lines
6369 return info;
6470 }
6571
72+void SubscriberHandler::SetupSubscriberConnector(SubscriberConnector& connector)
73+{
74+ // TODO: Modify connector properties as desired...
75+ //connector.SetMaxRetries(-1);
76+}
77+
6678 void SubscriberHandler::StatusMessage(const string& message)
6779 {
6880 // TODO: Make sure these messages get logged to an appropriate location
@@ -71,7 +83,9 @@ void SubscriberHandler::StatusMessage(const string& message) · 2 unmodified lines
7183
7284 status << "[" << m_name << "] " << message;
7385
86+ m_coutLock.lock();
7487 SubscriberInstance::StatusMessage(status.str());
88+ m_coutLock.unlock();
7589 }
7690
7791 void SubscriberHandler::ErrorMessage(const string& message)
@@ -82,12 +96,19 @@ void SubscriberHandler::ErrorMessage(const string& message) · 4 unmodified lines
8296
8397 status << "[" << m_name << "] " << message;
8498
99+ m_coutLock.lock();
85100 SubscriberInstance::ErrorMessage(status.str());
101+ m_coutLock.unlock();
86102 }
87103
88104 void SubscriberHandler::DataStartTime(time_t unixSOC, uint16_t milliseconds)
89105 {
90− // TODO: This reports timestamp of very first received measurement (if useful)
106+ // TODO: This reports timestamp, time_t format, of very first received measurement (if useful)
107+}
108+
109+void SubscriberHandler::DataStartTime(DateTime startTime)
110+{
111+ // TODO: This reports timestamp, ptime format, of very first received measurement (if useful)
91112 }
92113
93114 void SubscriberHandler::ReceivedMetadata(const vector<uint8_t>& payload)
@@ -167,16 +188,16 @@ void SubscriberHandler::ReceivedNewMeasurements(const vector<MeasurementPtr>& me · 73 unmodified lines
167188 message << GetTotalMeasurementsReceived() << " measurements received so far..." << endl;
168189
169190 if (TicksToString(timestamp, MaxTimestampSize, TimestampFormat, measurements[0]->Timestamp))
170− message << string(timestamp);
191+ message << string(timestamp) << endl;
171192
172193 message << "Signal ID: " << boost::lexical_cast<string>(measurements[0]->SignalID) << endl;
173194
174− message << "Point\tValue" << endl;
195+ message << "\tPoint\tValue" << endl;
175196
176197 for (const auto& measurement : measurements)
177− message << '\t' << measurement->ID << '\t' << measurement->Value;
198+ message << '\t' << measurement->ID << '\t' << measurement->Value << endl;
178199
179− message << '\t' << GetTotalMeasurementsReceived() << endl;
200+ message << "Total measurements: " << GetTotalMeasurementsReceived() << endl;
180201
181202 StatusMessage(message.str());
182203 }
@@ -200,4 +221,4 @@ void SubscriberHandler::ConnectionEstablished() · 17 unmodified lines
200221 void SubscriberHandler::ConnectionTerminated()
201222 {
202223 StatusMessage("Connection terminated.");
203−}
224+}
Source/Libraries/TimeSeriesPlatformLibrary/Samples/SubscriberHandler.h+15−12
@@ -24,24 +24,24 @@ · 23 unmodified lines
2424 #ifndef __SUBSCRIBER_HANDLER_H
2525 #define __SUBSCRIBER_HANDLER_H
2626
27+#include "../Common/CommonTypes.h"
2728 #include "../Transport/SubscriberInstance.h"
2829
29−using namespace std;
30−using namespace GSF::TimeSeries;
31−using namespace GSF::TimeSeries::Transport;
32−
33−class SubscriberHandler : public SubscriberInstance
30+class SubscriberHandler : public GSF::TimeSeries::Transport::SubscriberInstance
3431 {
3532 private:
36− string m_name;
33+ std::string m_name;
34+ GSF::Mutex m_coutLock;
3735
3836 protected:
39− SubscriptionInfo CreateSubscriptionInfo() override;
40− void StatusMessage(const string& message) override;
41− void ErrorMessage(const string& message) override;
37+ GSF::TimeSeries::Transport::SubscriptionInfo CreateSubscriptionInfo() override;
38+ void SetupSubscriberConnector(GSF::TimeSeries::Transport::SubscriberConnector& connector) override;
39+ void StatusMessage(const std::string& message) override;
40+ void ErrorMessage(const std::string& message) override;
4241 void DataStartTime(time_t unixSOC, uint16_t milliseconds) override;
43− void ReceivedMetadata(const vector<uint8_t>& payload) override;
44− void ReceivedNewMeasurements(const vector<MeasurementPtr>& measurements) override;
42+ void DataStartTime(GSF::DateTime startTime) override;
43+ void ReceivedMetadata(const std::vector<uint8_t>& payload) override;
44+ void ReceivedNewMeasurements(const std::vector<GSF::TimeSeries::MeasurementPtr>& measurements) override;
4545 void ParsedMetadata() override;
4646 void ConfigurationChanged() override;
4747 void HistoricalReadComplete() override;
@@ -49,7 +49,10 @@ protected: · 1 unmodified line
4949 void ConnectionTerminated() override;
5050
5151 public:
52− SubscriberHandler(const string& name);
52+ SubscriberHandler(std::string name);
53+ ~SubscriberHandler();
5354 };
5455
56+typedef GSF::SharedPtr<SubscriberHandler> SubscriberHandlerPtr;
57+
5558 #endif

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