File: DevTest.h

package info (click to toggle)
tango 10.0.2%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 89,936 kB
  • sloc: cpp: 201,786; sh: 1,645; python: 953; java: 800; perl: 467; javascript: 447; xml: 325; makefile: 272; sql: 72; ruby: 24
file content (422 lines) | stat: -rw-r--r-- 14,386 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
// NOLINTBEGIN(*)

#ifndef _DEV_TEST_H
  #define _DEV_TEST_H
  #include <tango/tango.h>

class EventCallBack : public Tango::CallBack
{
    void push_event(Tango::EventData *);

  public:
    int cb_executed;
    int cb_err;
};

enum _CardinalPoints
{
    NORTH = 0,
    SOUTH,
    EAST,
    WEST
};

typedef _CardinalPoints CardinalPoints;

  #ifdef TANGO_TEST_BASE_CLASS
    #undef TANGO_BASE_CLASS
    #define TANGO_BASE_CLASS TANGO_TEST_BASE_CLASS
  #endif

  #ifndef COMPAT
class DevTest : public TANGO_BASE_CLASS
{
  #else
class DevTest : public Tango::Device_3Impl
{
  #endif
  public:
    DevTest(Tango::DeviceClass *, std::string &);
    DevTest(Tango::DeviceClass *, const char *);
    DevTest(Tango::DeviceClass *, const char *, const char *);
    DevTest(Tango::DeviceClass *, const char *, const char *, Tango::DevState, const char *);

    ~DevTest()
    {
        delete_device();
    }

    // virtual Tango_DevString& dev_InOutString(Tango_DevString DateToParse);
    virtual Tango::ConstDevString dev_status();
    virtual void always_executed_hook();
    virtual void server_init_hook();
    virtual void signal_handler(long signo);

    virtual void init_device();
    virtual void delete_device();

    short *get_short_array()
    {
        return array2_buffer;
    }

    bool templ_state(const CORBA::Any &);
    void IOTempl();
    void IOPushEvent();
    void IOPushDevEncodedEvent();
    Tango::DevLong IOSubscribeEvent(const Tango::DevVarStringArray *);
    void IOUnSubscribeEvent(Tango::DevLong &);
    void IOFillPollBuffAttr();
    void IOFillPollBuffEncodedAttr();
    void IOFillPollBuffCmd();
    void IOTemplIn(Tango::DevLong);
    void IOSetWAttrLimit(const Tango::DevVarDoubleArray *);
    void push_data_ready(const Tango::DevVarLongStringArray *);
    void set_enum_labels();
    void add_enum_label(Tango::DevString);
    void cmd_push_pipe_event(Tango::DevShort);
    void cmd_push_state_status_event();

    Tango::DevVarLongArray *IOTemplOut();
    Tango::DevVarDoubleArray *IOTemplInOut(Tango::DevDouble);

    void set_attr_long(Tango::DevLong l)
    {
        attr_long = l;
    }

    void set_wattr_throw(Tango::DevShort in)
    {
        wattr_throw = in;
    }

    Tango::DevVarStringArray *IOPollingInDevice();
    void IOSophisticatedPollInDevice();
    Tango::DevVarStringArray *IOGetPollMess();

    //
    // Attribute related methods
    //

    void read_Short_attr(Tango::Attribute &att);
    void read_Long_attr(Tango::Attribute &att);
    void read_Long64_attr(Tango::Attribute &att);
    void read_Double_attr(Tango::Attribute &att);
    void read_String_attr(Tango::Attribute &att);
    void read_Short_spec_attr(Tango::Attribute &att);
    void read_Long_spec_attr(Tango::Attribute &att);
    void read_Double_spec_attr(Tango::Attribute &att);
    void read_String_spec_attr(Tango::Attribute &att);
    void read_Short_ima_attr(Tango::Attribute &att);
    void read_Long_ima_attr(Tango::Attribute &att);
    void read_Double_ima_attr(Tango::Attribute &att);
    void read_String_ima_attr(Tango::Attribute &att);
    void read_attr_no_data(Tango::Attribute &att);
    void read_attr_wrong_type(Tango::Attribute &att);
    void read_attr_wrong_size(Tango::Attribute &att);
    void read_attr_no_alarm(Tango::Attribute &att);
    void read_Short_attr_with_w(Tango::Attribute &att);
    void read_Long_attr_with_w(Tango::Attribute &att);
    void read_Short_attr_rw(Tango::Attribute &att);
    void read_Long64_attr_rw(Tango::Attribute &att);
    void read_ULong_attr_rw(Tango::Attribute &att);
    void read_ULong64_attr_rw(Tango::Attribute &att);
    void read_State_attr_rw(Tango::Attribute &att);
    void read_String_attr_rw(Tango::Attribute &att);
    void read_attr_asyn(Tango::Attribute &att);
    void read_attr_asyn_to(Tango::Attribute &att);
    void read_attr_asyn_except(Tango::Attribute &att);
    void read_PollLong_attr(Tango::Attribute &att);
    void read_PollString_spec_attr(Tango::Attribute &att);
    void read_attr_dq_sh(Tango::Attribute &att);
    void read_attr_dq_lo(Tango::Attribute &att);
    void read_attr_dq_db(Tango::Attribute &att);
    void read_attr_dq_str(Tango::Attribute &att);
    void read_Short_spec_attr_rw(Tango::Attribute &att);
    void read_String_spec_attr_rw(Tango::Attribute &att);
    void read_String_empty_spec_attr_rw(Tango::Attribute &att);
    void read_Long_spec_attr_rw(Tango::Attribute &att);
    void read_Short_ima_attr_rw(Tango::Attribute &att);
    void read_String_ima_attr_rw(Tango::Attribute &att);
    void read_Event_change_tst(Tango::Attribute &att);
    void read_Event64_change_tst(Tango::Attribute &att);
    void read_Event_quality_tst(Tango::Attribute &att);
    void read_Poll_buff(Tango::Attribute &att);
    void read_Poll_buffRW(Tango::Attribute &att);

    void read_Long64_spec_attr_rw(Tango::Attribute &att);
    void read_ULong_spec_attr_rw(Tango::Attribute &att);
    void read_ULong64_spec_attr_rw(Tango::Attribute &att);
    void read_State_spec_attr_rw(Tango::Attribute &att);

    void read_Float_attr(Tango::Attribute &att);
    void read_Boolean_attr(Tango::Attribute &att);
    void read_UShort_attr(Tango::Attribute &att);
    void read_UChar_attr(Tango::Attribute &att);
    void read_ULong_attr(Tango::Attribute &att);
    void read_ULong64_attr(Tango::Attribute &att);
    void read_Float_spec_attr(Tango::Attribute &att);
    void read_Boolean_spec_attr(Tango::Attribute &att);
    void read_UShort_spec_attr(Tango::Attribute &att);
    void read_UChar_spec_attr(Tango::Attribute &att);
    void read_Float_spec_attr_rw(Tango::Attribute &att);
    void read_UChar_spec_attr_rw(Tango::Attribute &att);
    void read_Boolean_ima_attr_rw(Tango::Attribute &att);
    void read_UShort_ima_attr_rw(Tango::Attribute &att);
    void read_slow_actuator(Tango::Attribute &att);
    void read_fast_actuator(Tango::Attribute &att);
    void read_Encoded_attr_rw(Tango::Attribute &att);
    void read_Encoded_attr_image(Tango::Attribute &att);

    void read_Sub_device_tst(Tango::Attribute &att);
    void read_Slow_attr(Tango::Attribute &att);

    void read_Def_attr(Tango::Attribute &att);
    void read_DefUser_attr(Tango::Attribute &att);
    void read_DefClass_attr(Tango::Attribute &att);
    void read_DefClassUser_attr(Tango::Attribute &att);

    void read_Enum_attr(Tango::Attribute &att);
    void read_Enum_spec_attr_rw(Tango::Attribute &att);
    void read_DynEnum_attr(Tango::Attribute &att);
    void read_ReynaldPoll_attr(Tango::Attribute &att);
    void read_attr_asyn_write(Tango::Attribute &att);

    void write_Short_attr_rw(Tango::WAttribute &att);
    void write_Long64_attr_rw(Tango::WAttribute &att);
    void write_ULong_attr_rw(Tango::WAttribute &att);
    void write_ULong64_attr_rw(Tango::WAttribute &att);
    void write_State_attr_rw(Tango::WAttribute &att);
    void write_String_attr_rw(Tango::WAttribute &att);
    void write_Short_attr_w(Tango::WAttribute &att);
    void write_Short_attr_w2(Tango::WAttribute &att);
    void write_Long_attr_w(Tango::WAttribute &att);
    void write_Double_attr_w(Tango::WAttribute &att);
    void write_String_attr_w(Tango::WAttribute &att);
    void write_String_attr_w2(Tango::WAttribute &att);
    void write_attr_asyn_write(Tango::WAttribute &att);
    void write_attr_asyn_write_to(Tango::WAttribute &att);
    void write_attr_asyn_write_except(Tango::WAttribute &att);

    void write_Short_spec_attr_w(TANGO_UNUSED(Tango::WAttribute &att)) { }

    void write_Long_spec_attr_w(TANGO_UNUSED(Tango::WAttribute &att)) { }

    void write_Double_spec_attr_w(TANGO_UNUSED(Tango::WAttribute &att)) { }

    void write_String_spec_attr_w(Tango::WAttribute &att);

    void write_Short_ima_attr_w(TANGO_UNUSED(Tango::WAttribute &att)) { }

    void write_String_ima_attr_w(TANGO_UNUSED(Tango::WAttribute &att)) { }

    void write_Short_spec_attr_rw(TANGO_UNUSED(Tango::WAttribute &att)) { }

    void write_String_spec_attr_rw(TANGO_UNUSED(Tango::WAttribute &att)) { }

    void write_String_empty_spec_attr_rw(TANGO_UNUSED(Tango::WAttribute &att)) { }

    void write_Long_spec_attr_rw(Tango::WAttribute &att);

    void write_Short_ima_attr_rw(TANGO_UNUSED(Tango::WAttribute &att)) { }

    void write_String_ima_attr_rw(TANGO_UNUSED(Tango::WAttribute &att)) { }

    void write_Float_attr_w(Tango::WAttribute &att);
    void write_Boolean_attr_w(Tango::WAttribute &att);
    void write_UShort_attr_w(Tango::WAttribute &att);
    void write_UChar_attr_w(Tango::WAttribute &att);
    void write_Float_spec_attr_w(Tango::WAttribute &att);
    void write_Boolean_spec_attr_w(Tango::WAttribute &att);
    void write_UShort_spec_attr_w(Tango::WAttribute &att);
    void write_UChar_spec_attr_w(Tango::WAttribute &att);
    void write_Float_ima_attr_w(Tango::WAttribute &att);
    void write_UShort_ima_attr_w(Tango::WAttribute &att);
    void write_Float_spec_attr_rw(Tango::WAttribute &att);
    void write_UChar_spec_attr_rw(Tango::WAttribute &att);
    void write_Boolean_ima_attr_rw(Tango::WAttribute &att);
    void write_UShort_ima_attr_rw(Tango::WAttribute &att);
    void write_slow_actuator(Tango::WAttribute &att);
    void write_fast_actuator(Tango::WAttribute &att);
    void write_Encoded_attr_rw(Tango::WAttribute &att);
    void write_Poll_buffRW(Tango::WAttribute &att);

    void write_Long64_spec_attr_rw(Tango::WAttribute &att);
    void write_ULong_spec_attr_rw(Tango::WAttribute &att);
    void write_ULong64_spec_attr_rw(Tango::WAttribute &att);
    void write_State_spec_attr_rw(Tango::WAttribute &att);

    void write_Def_attr(Tango::WAttribute &att);
    void write_DefUser_attr(Tango::WAttribute &att);
    void write_DefClass_attr(Tango::WAttribute &att);
    void write_DefClassUser_attr(Tango::WAttribute &att);

    void write_Enum_attr(Tango::WAttribute &att);
    void write_Enum_spec_attr_rw(Tango::WAttribute &att);

    virtual void write_attr_hardware(std::vector<long> &);

    // Pipe related  methods

    bool is_RPipe_allowed(Tango::PipeReqType);
    void read_RPipe(Tango::Pipe &);

    bool is_RWPipe_allowed(Tango::PipeReqType);
    void read_RWPipe(Tango::Pipe &);
    void write_RWPipe(Tango::WPipe &);

    bool is_ConfPipe_allowed(Tango::PipeReqType);
    void read_ConfPipe(Tango::Pipe &);

    bool is_RPipeDE_allowed(Tango::PipeReqType);
    void read_RPipeDE(Tango::Pipe &);

    int get_att_poll_period(std::string &_s)
    {
        return get_attribute_poll_period(_s);
    }

    void stop_poll_att(std::string &_s)
    {
        stop_poll_attribute(_s);
    }

    friend class IOInitWAttr;
    friend class IOAttrThrowEx;
    friend class IOAddOneElt;
    friend class IORemoveOneElt;
    friend class IOIncValue;
    friend class IODecValue;
    friend class IOChangeQuality;
    friend class IOGetCbExecuted;
    friend class ChangeEncodedFormat;
    friend class ChangeEncodedData;
    friend class IOAddCommand;
    friend class ForbiddenEnumValue;
    friend class SetPipeOutput;

  public:
    std::vector<std::string> poll_messages;

  protected:
    Tango::DevDouble attr_double;
    Tango::DevShort attr_short;
    Tango::DevShort attr_short_rw;
    Tango::DevLong64 attr_long64_rw;
    Tango::DevULong attr_ulong_rw;
    Tango::DevULong64 attr_ulong64_rw;
    Tango::DevState attr_state_rw;
    Tango::DevString attr_string_rw;
    Tango::DevLong attr_long;
    Tango::DevLong64 attr_long64;
    Tango::DevDouble attr_db_array[3];
    Tango::DevLong attr_long_array[10];
    Tango::DevString attr_str_array[2];

    Tango::DevLong64 attr_spec_long64_rw[3];
    Tango::DevULong attr_spec_ulong_rw[3];
    Tango::DevULong64 attr_spec_ulong64_rw[3];
    Tango::DevState attr_spec_state_rw[3];

    Tango::DevShort short_spec_attr[2];
    Tango::DevLong long_spec_attr[3];
    Tango::DevShort short_ima_attr[4];
    Tango::ConstDevString string_spec_attr[2];
    Tango::ConstDevString string_empty_spec_attr[1];
    Tango::ConstDevString string_ima_attr[2];

    Tango::DevDouble attr_dq_double;
    Tango::DevShort attr_dq_short;
    Tango::DevLong attr_dq_long;
    char attr_dq_str[80];

    long PollLong_attr_num;
    Tango::DevLong Poll_attr_long;

    long PollString_spec_attr_num;

    short array2_buffer[10];

    bool Short_attr_except;
    bool Short_attr_w_except;
    bool Long_attr_except;
    bool io_init_wattr_except;
    bool event_change_attr_except;
    bool event_quality_attr_except;
    bool event_throw_out_of_sync;

    Tango::DevLong attr_event[10];
    long attr_event_size;
    Tango::DevLong64 attr_event64[4];
    long attr_event64_size;
    Tango::DevDouble attr_qua_event[2];
    Tango::AttrQuality attr_event_qua;

    EventCallBack cb;
    Tango::DeviceProxy *remote_dev;
    std::map<int, std::string> event_atts;

    Tango::DevFloat attr_float;
    Tango::DevBoolean attr_boolean;
    Tango::DevUShort attr_ushort;
    Tango::DevUChar attr_uchar;
    Tango::DevULong attr_ulong;
    Tango::DevULong64 attr_ulong64;

    Tango::DevFloat attr_spec_float[3];
    Tango::DevBoolean attr_spec_boolean[5];
    Tango::DevUShort attr_spec_ushort[2];
    Tango::DevUChar attr_spec_uchar[6];

    struct timeval slow_actua_write;
    Tango::DevShort slow_actua;
    Tango::DevDouble fast_actua;

    Tango::DevBoolean attr_sub_device_tst;
    Tango::DevDouble attr_slow;

    Tango::DevShort wattr_throw;

  #ifndef COMPAT
    Tango::EncodedAttribute jpeg;
    Tango::DevEncoded enc_attr;
    Tango::DevEncoded *enc_attr_ptr;
    Tango::DevString enc_format;
    unsigned char enc_data[10];
  #endif

    Tango::DevLong att_conf;
    CardinalPoints cp;
    CardinalPoints cp_array[5];
    Tango::DevShort enum_value;

    Tango::DevLong dl;
    std::vector<double> v_db;
    Tango::DevVarStateArray dvsa;

    Tango::DataElement<std::string> pipe_str;
    Tango::DataElement<Tango::DevString> pipe_devstr;
    Tango::DataElement<Tango::DevEncoded> pipe_enc;
    Tango::DataElement<std::vector<std::string>> pipe_v_str;
    Tango::DataElement<Tango::DevVarStringArray> pipe_dvsa;

    Tango::DevicePipeBlob inner_inner_blob;
    Tango::DevicePipeBlob inner_blob;

    std::string inner_str;
    Tango::DevBoolean inner_bool;
    std::vector<Tango::DevLong> v_dl;
    std::vector<Tango::DevBoolean> v_bool;
    omni_mutex pipe_mutex;

    Tango::DevShort rpipe_type;

    int Reynald_ctr;
    double Reynald_val;

    Tango::DevLong attr_asyn_write_val;
};

#endif

// NOLINTEND(*)