summaryrefslogtreecommitdiff
path: root/apps/Gateway/Gateway/Channel_Connector.h
blob: 3e27f37355aaf95ffaf2a08e965c3ecfa0e19c96 (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
/* -*- C++ -*- */
// $Id$


// ============================================================================
//
// = LIBRARY
//    apps
// 
// = FILENAME
//    Channel_Connector.h
//
// = AUTHOR
//    Doug Schmidt 
// 
// ============================================================================

#if !defined (_CHANNEL_CONNECTOR)
#define _CHANNEL_CONNECTOR

#include "ace/Connector.h"
#include "Thr_Channel.h"

class Channel_Connector : public ACE_Connector<Channel, CHANNEL_PEER_CONNECTOR>
  // = TITLE
  //    A concrete factory class that setups connections to peerds 
  //    and produces a new Channel object to do the dirty work...
{
public:
  Channel_Connector (void);

  // Initiate (or reinitiate) a connection on the Channel.
  int initiate_connection (Channel *, 
			   ACE_Synch_Options & = ACE_Synch_Options::synch);

protected:  
  // Override the connection-failure method to add timer support.
  virtual int handle_close (ACE_HANDLE sd, ACE_Reactor_Mask);
};

#endif /* _CHANNEL_CONNECTOR */