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
|
/* -*- C++ -*- */
// $Id$
// ============================================================================
//
// = LIBRARY
// gateway
//
// = FILENAME
// Options.h
//
// = AUTHOR
// Douglas C. Schmidt
//
// ============================================================================
#if !defined (OPTIONS_H)
#define OPTIONS_H
#include "../Gateway/Event.h"
class ACE_Svc_Export Options
// = TITLE
// Singleton that consolidates all Options for a peerd.
{
public:
// = Options that can be enabled/disabled.
enum
{
VERBOSE = 01,
SUPPLIER_ACCEPTOR = 02,
CONSUMER_ACCEPTOR = 04,
SUPPLIER_CONNECTOR = 010,
CONSUMER_CONNECTOR = 020
};
static Options *instance (void);
// Return Singleton.
void parse_args (int argc, char *argv[]);
// Parse the arguments and set the options.
// = Accessor methods.
int enabled (int option) const;
// Determine if an option is enabled.
u_short supplier_acceptor_port (void) const;
// Our acceptor port number, i.e., the one that we passively listen
// on for connections to arrive from a gatewayd and create a
// Supplier.
u_short consumer_acceptor_port (void) const;
// Our acceptor port number, i.e., the one that we passively listen
// on for connections to arrive from a gatewayd and create a
// Consumer.
u_short supplier_connector_port (void) const;
// The connector port number, i.e., the one that we use to actively
// establish connections with a gatewayd and create a Supplier.
u_short consumer_connector_port (void) const;
// The connector port number, i.e., the one that we use to actively
// establish connections with a gatewayd and create a Consumer.
const char *connector_host (void) const;
// Our connector port host, i.e., the host running the gatewayd
// process.
long timeout (void) const;
// Duration between disconnects.
long max_queue_size (void) const;
// The maximum size of the queue.
private:
enum
{
MAX_QUEUE_SIZE = 1024 * 1024 * 16,
// We'll allow up to 16 megabytes to be queued per-output
// channel!!!! This is clearly a policy in search of
// refinement...
DEFAULT_TIMEOUT = 60
// By default, disconnect the peer every minute.
};
Options (void);
// Ensure Singleton.
void print_usage_and_die (void);
// Explain usage and exit.
static Options *instance_;
// Singleton.
u_long options_;
// Flag to indicate if we want verbose diagnostics.
u_short supplier_acceptor_port_;
// The acceptor port number, i.e., the one that we passively listen
// on for connections to arrive from a gatewayd and create a
// Supplier.
u_short consumer_acceptor_port_;
// The acceptor port number, i.e., the one that we passively listen
// on for connections to arrive from a gatewayd and create a
// Consumer.
u_short supplier_connector_port_;
// The connector port number, i.e., the one that we use to actively
// establish connections with a gatewayd and create a Supplier.
u_short consumer_connector_port_;
// The connector port number, i.e., the one that we use to actively
// establish connections with a gatewayd and create a Consumer.
char *connector_host_;
// Our connector host, i.e., where the gatewayd process is running.
long timeout_;
// The amount of time to wait before disconnecting from the Peerd.
long max_queue_size_;
// The maximum size that the queue can grow to.
};
#endif /* OPTIONS_H */
|