#include "Example.h"
int replyCount = 10;
rdaDeviceHandle* device;
rdaRequest* rq;
void updateReplyCount()
{
replyCount--;
if (replyCount == 0) device->monitorOff(rq);
else cout << "*****\n";
}
class SubscriptionReportHandler : public rdaReplyHandler
{
public:
virtual void handleReply(const rdaRequest&, const rdaData& value)
{
cout << value;
updateReplyCount();
}
virtual void handleError(const rdaRequest&, const rdaException& ex)
{
cout << ex << endl;
updateReplyCount();
}
virtual void disconnected(const rdaRequest&)
{
cout << "DISCONNECTED FROM DATA SOURCE\n";
}
virtual void reconnected(const rdaRequest&)
{
cout << "RECONNECTED TO DATA SOURCE\n";
}
virtual void cancelled(const rdaRequest&)
{
cout << "SUBSCRIPTION CANCELLED\n";
exit(0);
}
};
int main(int argc, char** argv)
{
setParameters(argc, argv);
try
{
rdaRDAService* rda = rdaRDAService::init();
device = rda->getDeviceHandle(deviceName);
SubscriptionReportHandler rh;
if (cycle == 0) rq = device->monitorOn(property, false, &rh);
else rq = device->monitorOn(property, cycle, false, &rh);
sleepForever();
}
catch(const rdaException& ex)
{
cout << ex << endl;
}
catch(const rdaInternalError& ex)
{
cout << ex << endl;
}
return 0;
}