Jpp 19.3.0-rc.3
the software that should make you happy
Loading...
Searching...
No Matches
JSubscription.cc File Reference

Example program to test JNET::JSubscription. More...

#include <string>
#include <iostream>
#include <iomanip>
#include <sstream>
#include "JNet/JControlHost.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"

Go to the source code of this file.

Functions

int main (int argc, char *argv[])
 

Detailed Description

Example program to test JNET::JSubscription.

Author
mdejong

Definition in file JSubscription.cc.

Function Documentation

◆ main()

int main ( int argc,
char * argv[] )

Definition at line 18 of file JSubscription.cc.

19{
20 using namespace std;
21 using namespace JPP;
22
23 int debug;
24
25 try {
26
27 JParser<> zap("Example program to test JNET::JSubscription.");
28
29 zap['d'] = make_field(debug) = 3;
30
31 zap(argc, argv);
32 }
33 catch(const exception &error) {
34 FATAL(error.what() << endl);
35 }
36
37
38 JSubscriptionList subscription;
39
40 const JTag a("A");
41 const JTag b("B");
42 const JTag c("C");
43
44 const JTag tags[] = { a, b, c };
45 const size_t N = sizeof(tags)/sizeof(tags[0]);
46
47 subscription = JSubscriptionAny(a) + JSubscriptionAny(b) + JSubscriptionAny(c);
48
49 ASSERT(subscription->size() == N);
50
51
52 for (size_t i = 0; i != N; ++i) {
53 subscription += JSubscriptionAny(tags[i]);
54 }
55
56 ASSERT(subscription->size() == N);
57
58
59 for (size_t i = 0; i != N; ++i) {
60 subscription += JSubscriptionAll(tags[i]);
61 }
62
63 ASSERT(subscription->size() == N);
64
65 for (JSubscriptionList::const_iterator i = subscription->begin(); i != subscription->end(); ++i) {
66 ASSERT(i->getSubscription() == SUBSCRIBE_ALL);
67 }
68
69
70 for (size_t i = 0; i != N; ++i) {
71 subscription += JSubscriptionAny(tags[i]);
72 }
73
74 ASSERT(subscription->size() == N);
75
76 for (JSubscriptionList::const_iterator i = subscription->begin(); i != subscription->end(); ++i) {
77 ASSERT(i->getSubscription() == SUBSCRIBE_ALL);
78 }
79
80 return 0;
81}
#define ASSERT(A,...)
Assert macro.
Definition JMessage.hh:90
#define FATAL(A)
Definition JMessage.hh:67
int debug
debug level
Definition JSirene.cc:72
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition JParser.hh:2142
Subscription list.
std::set< JSubscription >::const_iterator const_iterator
Utility class to parse command line options.
Definition JParser.hh:1698
const double a
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary class for all subscription.
Auxiliary class for any subscription.