History

TimeSeriesPlatformLibrary: Updated samples to control DataSubscriber lifetimes within main function to accommodate desired order-of-operations for standard function pointer destruction.

J. Ritchie Carroll committed 7 years ago

Commit 5bc9e1f1 parent b1a5c818 files · +66 −36Browse files

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

Unified · Split

Source/Libraries/TimeSeriesPlatformLibrary/Samples/SimpleSubscribe.cpp+12−7
@@ -34,7 +34,7 @@ using namespace GSF; · 33 unmodified lines
3434 using namespace GSF::TimeSeries;
3535 using namespace GSF::TimeSeries::Transport;
3636
37−DataSubscriber Subscriber;
37+DataSubscriber* Subscriber;
3838
3939 bool RunSubscriber(const string& hostname, uint16_t port);
4040 void ProcessMeasurements(DataSubscriber* source, const vector<MeasurementPtr>& measurements);
@@ -68,6 +68,9 @@ int main(int argc, char* argv[]) · 27 unmodified lines
6868 hostname = argv[1];
6969 stringstream(argv[2]) >> port;
7070
71+ // Maintain the life-time of DataSubscriber within main
72+ Subscriber = new DataSubscriber();
73+
7174 // Run the subscriber.
7275 if (RunSubscriber(hostname, port))
7376 {
@@ -77,9 +80,11 @@ int main(int argc, char* argv[]) · 3 unmodified lines
7780 }
7881
7982 // Disconnect the subscriber to stop background threads.
80− Subscriber.Disconnect();
83+ Subscriber->Disconnect();
8184 cout << "Disconnected." << endl;
8285
86+ delete Subscriber;
87+
8388 return 0;
8489 }
8590
@@ -96,9 +101,9 @@ bool RunSubscriber(const string& hostname, uint16_t port) · 10 unmodified lines
96101 info.FilterExpression = "PPA:1;PPA:2;PPA:3;PPA:4;PPA:5;PPA:6;PPA:7;PPA:8;PPA:9;PPA:10;PPA:11;PPA:12;PPA:13;PPA:14";
97102
98103 // Register callbacks
99− Subscriber.RegisterStatusMessageCallback(&DisplayStatusMessage);
100− Subscriber.RegisterErrorMessageCallback(&DisplayErrorMessage);
101− Subscriber.RegisterNewMeasurementsCallback(&ProcessMeasurements);
104+ Subscriber->RegisterStatusMessageCallback(&DisplayStatusMessage);
105+ Subscriber->RegisterErrorMessageCallback(&DisplayErrorMessage);
106+ Subscriber->RegisterNewMeasurementsCallback(&ProcessMeasurements);
102107
103108 cout << endl << "Connecting to " << hostname << ":" << port << "..." << endl << endl;
104109
@@ -107,7 +112,7 @@ bool RunSubscriber(const string& hostname, uint16_t port) · 2 unmodified lines
107112
108113 try
109114 {
110− Subscriber.Connect(hostname, port);
115+ Subscriber->Connect(hostname, port);
111116 connected = true;
112117 }
113118 catch (SubscriberException& ex)
@@ -126,7 +131,7 @@ bool RunSubscriber(const string& hostname, uint16_t port) · 12 unmodified lines
126131 if (connected)
127132 {
128133 cout << "Connected! Subscribing to data..." << endl << endl;
129− Subscriber.Subscribe(info);
134+ Subscriber->Subscribe(info);
130135 }
131136 else
132137 {

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