source: source/ariba/communication/modules/transport/protlib/assocdata.h@ 5638

Last change on this file since 5638 was 5638, checked in by Christoph Mayer, 15 years ago

adress detection aufgeräumt, network info für bleutooth, data stream (hopeful crash fix), logging auf maemo nur warn, ...

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