FACT++  1.0
test_server_many.c
Go to the documentation of this file.
1 #include <stdio.h>
2 #include <dis.h>
3 
4 char str[10][80];
5 
6 typedef struct {
7  int i;
8  int j;
9  int k;
10  double d;
11  short s;
12  char c;
13  short t;
14  float f;
15  char str[20];
16 }TT;
17 
18 double ServMany[100000];
19 int ServManyIds[100000];
20 
21 TT t;
22 /*
23 int big_buff[1024];
24 */
25 void cmnd_rout(tag, buf, size)
26 int *tag, *size;
27 TT *buf;
28 {
29 int i,*ptr;
30 
31  printf("Command received, size = %d, TT size = %d:\n", *size,
32  sizeof(TT));
33  printf("buf->i = %d, buf->d = %2.2f, buf->s = %d, buf->c = %c, buf->f = %2.2f, buf->str = %s\n",
34  buf->i,buf->d,buf->s,buf->c,buf->f,buf->str);
35 }
36 
37 void client_exited(tag)
38 int *tag;
39 {
40  char name[84];
41  char *ptr;
42 
43  if(dis_get_client(name))
44  printf("Client %s (%d) exited\n", name, *tag);
45  else
46  printf("Client %d exited\n", *tag);
47 }
48 
49 void exit_cmnd(code)
50 int *code;
51 {
52  printf("Exit_cmnd %d\n", *code);
53  exit(*code);
54 }
55 
56 main(argc,argv)
57 int argc;
58 char **argv;
59 {
60  int i, j, id, *ptr;
61  char aux[80];
62  char name[84], *ptrc;
63  int big_ids[20];
64  int index = 0;
65  char straux[128];
66  void update_services();
67 
70  for(i = 0; i< 10; i++)
71  {
72  sprintf(str[i],"%s/Service_%03d",argv[1],i);
73  dis_add_service( str[i], "C", str[i], strlen(str[i])+1,
74  (void *)0, 0 );
75  }
76  t.i = 123;
77  t.j = 123;
78  t.k = 123;
79  t.d = 56.78;
80  t.s = 12;
81  t.t = 12;
82  t.c = 'a';
83  t.f = 4.56;
84  ptr = (int *)&t;
85  strcpy(t.str,"hello world");
86 /*
87  sprintf(aux,"%s/TEST_SWAP",argv[1]);
88  id = dis_add_service( aux, "l:3;d:1;s:1;c:1;s:1;f:1;c:20", &t, sizeof(t),
89  (void *)0, 0 );
90 
91  sprintf(aux,"%s/TEST_CMD",argv[1]);
92  dis_add_cmnd(aux,"l:3;d:1;s:1;c:1;s:1;f:1;c:20",cmnd_rout, 0);
93 */
94 /*
95  big_buff[0] = 1;
96  for(i = 0; i < 20; i++)
97  {
98  sprintf(aux,"%s/TestMem_%d",argv[1], i);
99  big_ids[i] = dis_add_service( aux, "I", big_buff, 1024*sizeof(int),
100  (void *)0, 0 );
101  }
102 */
103  for(i = 0; i< 100000; i++)
104  {
105  ServMany[i] = i;
106  sprintf(straux,"%s/ServiceMany%05d",argv[1],i);
107  ServManyIds[i] = dis_add_service( straux, "D", &ServMany[i], sizeof(double),
108  (void *)0, 0 );
109  }
110  dis_start_serving( argv[1] );
111  if(dis_get_client(name))
112  {
113  printf("client %s\n",name);
114  }
115 
116  dtq_start_timer(30, update_services, 0);
117 
118  while(1)
119  {
120 /*
121  for(i = 0; i < 20; i++)
122  {
123  index++;
124  big_buff[0] = index;
125  dis_update_service(big_ids[i]);
126  }
127  sleep(1);
128 */
129  pause();
130 /*
131  sleep(30);
132  update_services();
133 */
134  }
135 }
136 
138 {
139  int i;
140 
142 
144 printf("Start updating\n");
145  for(i = 0; i< 100000; i++)
146  {
147  ServMany[i] = ServMany[i]+1;
149  if(i == 10000)
150  {
151  int aux;
152  aux = ServMany[i];
153  ServMany[i] = 123;
155  ServMany[i] = aux;
156  }
157  }
159 printf("Stop updating\n");
160 }
161 
char str[20]
Definition: test_client.c:23
int ServManyIds[100000]
float f
Definition: test_client.c:22
main(int argc, char **argv)
void exit_cmnd(int *code)
char str[10][80]
int i
Definition: db_dim_client.c:21
Definition: test_client.c:14
char id[4]
Definition: FITS.h:71
void update_services()
short s
Definition: test_client.c:19
void dtq_start_timer(int time, void(*user_routine)(), dim_long tag)
Definition: dtq.c:790
#define dis_start_serving
Definition: dis.h:8
#define dis_update_service
Definition: dis.h:18
TT t
char c
Definition: test_client.c:20
int i
Definition: test_client.c:15
short t
Definition: test_client.c:21
double ServMany[100000]
int j
Definition: test_client.c:16
#define dis_get_client
Definition: dis.h:11
int size
Definition: db_dim_server.c:17
int k
Definition: test_client.c:17
double d
Definition: test_client.c:18
#define dis_add_service
Definition: dis.h:12
void dim_print_date_time()
Definition: utilities.c:134
#define dis_add_exit_handler
Definition: dis.h:15
#define dis_add_client_exit_handler
Definition: dis.h:14
void cmnd_rout(int *tag, TT *buf, int *size)
sprintf(name1,"NewService%d", i)
void client_exited(int *tag)