blob: 8717c5b5917d749b09e856cd9cea0694077dc4fe (
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
|
#ifndef AMI_BUFFERING_H
#define AMI_BUFFERING_H
#include /**/ "ace/pre.h"
#include "TestS.h"
/// Implement the Test::AMI_Buffering interface
class AMI_Buffering
: public virtual POA_Test::AMI_Buffering
{
public:
/// Constructor
AMI_Buffering (CORBA::ORB_ptr orb,
Test::AMI_Buffering_Admin_ptr admin);
// = The skeleton methods
virtual void receive_data (const Test::Payload &the_payload);
virtual void flush (void);
virtual void sync (void);
virtual void shutdown (void);
/// internal implementation of shutdown. This
void try_shutdown (void);
class Nest_Guard
{
public:
Nest_Guard (AMI_Buffering &);
~Nest_Guard (void);
private:
AMI_Buffering &target_;
};
/// Use an ORB reference to shutdown the application.
CORBA::ORB_var orb_;
/// Report request progress to this interface
Test::AMI_Buffering_Admin_var admin_;
/// nesting depth count for receive_data processing
int nest_;
/// maximum nesting depth reached during run
int max_nest_;
/// flag indicating that a shutdown is required as soon
/// as the nest count reaches 0.
bool must_shutdown_;
};
#include /**/ "ace/post.h"
#endif /* AMI_BUFFERING_H */
|