summaryrefslogtreecommitdiff
path: root/CIAO/connectors/dds4ccm/tests/LateBinding/ReadGet/Receiver/RG_LateBinding_Receiver_impl.h
blob: 4a6ac43e9b8662997fe798e10b0b5771b0fe88c7 (plain)
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
// $Id$

#ifndef RG_LATEBINDING_RECEIVER_IMPL_H_
#define RG_LATEBINDING_RECEIVER_IMPL_H_

#include "RG_LateBinding_ReceiverEC.h"

namespace CIAO_RG_LateBinding_Receiver_Impl
{
  class RG_LateBinding_Receiver_impl;

  /**
   * Timeout_Handler
   */
  class Timeout_Handler :
    public ACE_Event_Handler
  {
  public:
    Timeout_Handler (RG_LateBinding_Receiver_impl &callback);
    virtual int handle_timeout (const ACE_Time_Value &tv,
                                const void *arg);
  private:
    RG_LateBinding_Receiver_impl &callback_;
  };

  /**
   * RG_LateBinding_Receiver_impl
   */
  class RG_LateBinding_Receiver_impl
  {
  public:
    RG_LateBinding_Receiver_impl (
      ::RG_LateBinding::CCM_Receiver_Context_ptr ctx,
      ::CORBA::UShort expected);
    ~RG_LateBinding_Receiver_impl (void);

    void start (
      ACE_Reactor *reactor);

    void set_topic_name_reader (void);
    void set_topic_name_getter (void);

    void start_reading (void);
    void start_getting (void);
    void test_exception (void);
  private:
    ::RG_LateBinding::CCM_Receiver_Context_var ciao_context_;
    CORBA::UShort expected_;

    Timeout_Handler *to_handler_;

    void check_samples (
      const char * test,
      const RG_LateBindingTestSeq& samples,
      const ::CORBA::UShort& expected);
  };
};

#endif /* RG_LATEBINDING_RECEIVER_IMPL_H_ */