Showing the changes to Source/Libraries/TimeSeriesPlatformLibrary/Samples/AverageFrequencyCalculator.cpp (1 of 8 files). Show all
Unified · Split
| @@ -34,11 +34,11 @@ using namespace GSF; · 33 unmodified lines | ||
| 34 | 34 | using namespace GSF::TimeSeries; |
| 35 | 35 | using namespace GSF::TimeSeries::Transport; |
| 36 | 36 | |
| 37 | −DataSubscriber Subscriber; | |
| 37 | +DataSubscriber* Subscriber; | |
| 38 | 38 | SubscriptionInfo Info; |
| 39 | 39 | |
| 40 | 40 | // Create helper objects for subscription. |
| 41 | −void SetupSubscriberConnector(SubscriberConnector& connector, string hostname, uint16_t port); | |
| 41 | +void SetupSubscriberConnector(SubscriberConnector& connector, const string& hostname, uint16_t port); | |
| 42 | 42 | SubscriptionInfo CreateSubscriptionInfo(); |
| 43 | 43 | |
| 44 | 44 | // Handlers for subscriber callbacks. |
| @@ -48,7 +48,7 @@ void DisplayStatusMessage(DataSubscriber* source, const string& message); · 3 unmodified lines | ||
| 48 | 48 | void DisplayErrorMessage(DataSubscriber* source, const string& message); |
| 49 | 49 | |
| 50 | 50 | // Runs the subscriber. |
| 51 | −void RunSubscriber(string hostname, uint16_t port); | |
| 51 | +void RunSubscriber(const string& hostname, uint16_t port); | |
| 52 | 52 | |
| 53 | 53 | // Sample application to demonstrate average frequency calculation using the subscriber API. |
| 54 | 54 | int main(int argc, char* argv[]) |
| @@ -69,6 +69,9 @@ int main(int argc, char* argv[]) · 14 unmodified lines | ||
| 69 | 69 | hostname = argv[1]; |
| 70 | 70 | stringstream(argv[2]) >> port; |
| 71 | 71 | |
| 72 | + // Maintain the life-time of DataSubscriber within main | |
| 73 | + Subscriber = new DataSubscriber(); | |
| 74 | + | |
| 72 | 75 | // Run the subscriber. |
| 73 | 76 | RunSubscriber(hostname, port); |
| 74 | 77 | |
| @@ -77,9 +80,11 @@ int main(int argc, char* argv[]) · 2 unmodified lines | ||
| 77 | 80 | getline(cin, line); |
| 78 | 81 | |
| 79 | 82 | // Disconnect the subscriber to stop background threads. |
| 80 | − Subscriber.Disconnect(); | |
| 83 | + Subscriber->Disconnect(); | |
| 81 | 84 | cout << "Disconnected." << endl; |
| 82 | 85 | |
| 86 | + delete Subscriber; | |
| 87 | + | |
| 83 | 88 | return 0; |
| 84 | 89 | } |
| 85 | 90 | |
| @@ -88,26 +93,26 @@ int main(int argc, char* argv[]) · 2 unmodified lines | ||
| 88 | 93 | // - Register callbacks |
| 89 | 94 | // - Connect to publisher |
| 90 | 95 | // - Subscribe |
| 91 | −void RunSubscriber(string hostname, uint16_t port) | |
| 96 | +void RunSubscriber(const string& hostname, uint16_t port) | |
| 92 | 97 | { |
| 93 | − SubscriberConnector& connector = Subscriber.GetSubscriberConnector(); | |
| 98 | + SubscriberConnector& connector = Subscriber->GetSubscriberConnector(); | |
| 94 | 99 | |
| 95 | 100 | // Set up helper objects |
| 96 | 101 | SetupSubscriberConnector(connector, hostname, port); |
| 97 | 102 | Info = CreateSubscriptionInfo(); |
| 98 | 103 | |
| 99 | 104 | // Register callbacks |
| 100 | − Subscriber.RegisterStatusMessageCallback(&DisplayStatusMessage); | |
| 101 | − Subscriber.RegisterErrorMessageCallback(&DisplayErrorMessage); | |
| 102 | − Subscriber.RegisterNewMeasurementsCallback(&ProcessMeasurements); | |
| 105 | + Subscriber->RegisterStatusMessageCallback(&DisplayStatusMessage); | |
| 106 | + Subscriber->RegisterErrorMessageCallback(&DisplayErrorMessage); | |
| 107 | + Subscriber->RegisterNewMeasurementsCallback(&ProcessMeasurements); | |
| 103 | 108 | |
| 104 | 109 | cout << endl << "Connecting to " << hostname << ":" << port << "..." << endl << endl; |
| 105 | 110 | |
| 106 | 111 | // Connect and subscribe to publisher |
| 107 | − if (connector.Connect(Subscriber, Info)) | |
| 112 | + if (connector.Connect(*Subscriber, Info)) | |
| 108 | 113 | { |
| 109 | 114 | cout << "Connected! Subscribing to data..." << endl << endl; |
| 110 | − Subscriber.Subscribe(); | |
| 115 | + Subscriber->Subscribe(); | |
| 111 | 116 | } |
| 112 | 117 | else |
| 113 | 118 | { |
| @@ -131,14 +136,14 @@ SubscriptionInfo CreateSubscriptionInfo() · 17 unmodified lines | ||
| 131 | 136 | info.UseLocalClockAsRealTime = false; |
| 132 | 137 | info.UseMillisecondResolution = true; |
| 133 | 138 | |
| 134 | − // This controls the downsampling time, in seconds | |
| 139 | + // This controls the down-sampling time, in seconds | |
| 135 | 140 | info.Throttled = true; |
| 136 | 141 | info.LagTime = 1.0; |
| 137 | 142 | |
| 138 | 143 | return info; |
| 139 | 144 | } |
| 140 | 145 | |
| 141 | −void SetupSubscriberConnector(SubscriberConnector& connector, string hostname, uint16_t port) | |
| 146 | +void SetupSubscriberConnector(SubscriberConnector& connector, const string& hostname, uint16_t port) | |
| 142 | 147 | { |
| 143 | 148 | // SubscriberConnector is another helper object which allows the |
| 144 | 149 | // user to modify settings for auto-reconnects and retry cycles. |