An Overlay-based
Virtual Network Substrate
SpoVNet

source: trash/old-modules/transport/protlib/assocdata_uds.h @ 5641

Last change on this file since 5641 was 5641, checked in by Christoph Mayer, 14 years ago
File size: 3.0 KB
Line 
1/// ----------------------------------------*- mode: C++; -*--
2/// @file assocdata_uds.h
3/// association data for Unix Domain transport connnections
4/// -- AssocData structure to store data of a signaling associaton
5/// -- i.e., a socket-based signaling transport connection
6//
7/// ----------------------------------------------------------
8/// $Id: assocdata_uds.h 2872 2008-02-18 10:58:03Z bless $
9/// $HeadURL: https://svn.ipv6.tm.uka.de/nsis/protlib/trunk/include/assocdata_uds.h $
10// ===========================================================
11//
12// Copyright (C) 2005-2007, all rights reserved by
13// - Institute of Telematics, Universitaet Karlsruhe (TH)
14//
15// More information and contact:
16// https://projekte.tm.uka.de/trac/NSIS
17//
18// This program is free software; you can redistribute it and/or modify
19// it under the terms of the GNU General Public License as published by
20// the Free Software Foundation; version 2 of the License
21//
22// This program is distributed in the hope that it will be useful,
23// but WITHOUT ANY WARRANTY; without even the implied warranty of
24// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
25// GNU General Public License for more details.
26//
27// You should have received a copy of the GNU General Public License along
28// with this program; if not, write to the Free Software Foundation, Inc.,
29// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
30//
31// ===========================================================
32
33#ifndef ASSOC_DATA_UDS_H
34#define ASSOC_DATA_UDS_H
35
36#include "address.h"
37
38
39namespace protlib {
40
41/** @ingroup transport
42  * @{
43  */
44
45typedef int socketfd_t; ///< socket type interface
46typedef unsigned int associd_t; /// SCTP lib interface
47
48/// association data, used to keep all necessary information
49/// (socket, peer address, shutdown, touched) about a single connection
50struct AssocDataUDS {
51  AssocDataUDS(socketfd_t socketfd,
52            const udsaddress& peeraddress,
53            const udsaddress& ownaddress):
54    socketfd(socketfd),
55    assoc(0),
56    peer(peeraddress),
57    ownaddr(ownaddress),
58    thread_ID(0),
59    num_of_out_streams(0),
60    shutdown(false),
61    touched(true)
62  {};
63
64  AssocDataUDS(associd_t ass, const udsaddress& ap, const udsaddress& oa, uint32 streams)
65    : socketfd(0),
66      assoc(ass),
67      peer(ap),
68      ownaddr(oa),
69      thread_ID(0),
70      num_of_out_streams(streams),
71      shutdown(false),
72      touched(true)
73  {};
74
75  const socketfd_t socketfd; ///< socket of signaling transport connection
76  const associd_t assoc; ///< required for SCTP
77
78  const udsaddress peer; ///< address of the signaling peer
79  const udsaddress ownaddr; ///< own endpoint address of the signaling connection
80
81  pthread_t thread_ID; ///< related receiver thread
82
83  const uint32 num_of_out_streams; ///< required for SCTP
84
85  // shutdown: connection is being shutdown, shutdown
86  // is not complete yet
87  bool shutdown;
88  // this is required for a second changce algorithm when cleaning up unused connections
89  bool touched;
90}; // end AssocDataUDS
91
92//@}
93
94} // end namespace protlib
95#endif
Note: See TracBrowser for help on using the repository browser.