]> rtime.felk.cvut.cz Git - orte.git/blob - orte/examples/reliable/r_subscriber_besteffort.c
Reformat the sources with orte/uncrustify script
[orte.git] / orte / examples / reliable / r_subscriber_besteffort.c
1 /*
2  *  $Id: subscriberbesteffort.c,v 0.0.0.1 2003/12/27
3  *
4  *  DEBUG:  section                     Subscriber BestEffort
5  *
6  *  -------------------------------------------------------------------
7  *                                ORTE
8  *                      Open Real-Time Ethernet
9  *
10  *                      Copyright (C) 2001-2006
11  *  Department of Control Engineering FEE CTU Prague, Czech Republic
12  *                      http://dce.felk.cvut.cz
13  *                      http://www.ocera.org
14  *
15  *  Author:              Petr Smolik    petr@smoliku.cz
16  *  Advisor:             Pavel Pisa
17  *  Project Responsible: Zdenek Hanzalek
18  *  --------------------------------------------------------------------
19  *
20  *  This program is free software; you can redistribute it and/or modify
21  *  it under the terms of the GNU General Public License as published by
22  *  the Free Software Foundation; either version 2 of the License, or
23  *  (at your option) any later version.
24  *
25  *  This program is distributed in the hope that it will be useful,
26  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
27  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
28  *  GNU General Public License for more details.
29  *
30  */
31
32 #include <stdio.h>
33 #ifdef __RTL__
34   #include <posix/pthread.h>
35 #endif
36 #include "orte.h"
37
38 #ifdef MAIN_RENAMED
39 #define main orte_r_subscriber_besteffort_main
40 #define exit return
41 #endif
42
43 static ORTEDomain        *d;
44 static char              instance2Recv[64];
45
46 static void
47 recvCallBack(const ORTERecvInfo *info, void *vinstance, void *recvCallBackParam)
48 {
49   char *instance = (char *)vinstance;
50
51   switch (info->status) {
52     case NEW_DATA:
53       printf("%s\n", instance);
54       break;
55     case DEADLINE:
56       printf("deadline occurred\n");
57       break;
58   }
59 }
60
61
62 int
63 main(int argc, char *args[])
64 {
65   ORTESubscription *s;
66   NtpTime         deadline, minimumSeparation;
67
68   ORTEInit();
69   //ORTEVerbositySetOptions("ALL,10");
70   d = ORTEDomainAppCreate(ORTE_DEFAULT_DOMAIN, NULL, NULL, ORTE_FALSE);
71   ORTETypeRegisterAdd(d, "HelloMsg", NULL, NULL, NULL, sizeof(instance2Recv));
72   NTPTIME_BUILD(deadline, 3);
73   NTPTIME_BUILD(minimumSeparation, 0);
74   s = ORTESubscriptionCreate(
75     d,
76     IMMEDIATE,
77     BEST_EFFORTS,
78     "Reliable HelloMsg",
79     "HelloMsg",
80     &instance2Recv,
81     &deadline,
82     &minimumSeparation,
83     recvCallBack,
84     NULL,
85     IPADDRESS_INVALID);
86   if (s == NULL) {
87     printf("ORTESubscriptionCreate failed\n");
88     return 1;
89   }
90   #ifndef CONFIG_ORTE_RT
91   while (1)
92     ORTESleepMs(1000);
93   #endif
94   return 0;
95 }
96
97 #ifdef CONFIG_ORTE_RT
98 void
99 hello_init(void)
100 {
101   main(0, NULL);
102 }
103 void
104 hello_exit(void)
105 {
106   ORTEDomainAppDestroy(d);
107 }
108 MODULE_LICENSE("GPL");
109 module_init(hello_init);
110 module_exit(hello_exit);
111 #endif