• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • tdecore
 

tdecore

  • tdecore
ksockaddr.h
1/*
2 * This file is part of the KDE libraries
3 * Copyright (C) 2000-2003 Thiago Macieira <thiago.macieira@kdemail.net>
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Library General Public License for more details.
14 *
15 * You should have received a copy of the GNU Library General Public License
16 * along with this library; see the file COPYING.LIB. If not, write to
17 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 * Boston, MA 02110-1301, USA.
19 */
20#ifndef KSOCKADDR_H
21#define KSOCKADDR_H
22
23#include <tqobject.h>
24#include <tqcstring.h>
25#include <tqstring.h>
26#include "tdelibs_export.h"
27
28/*
29 * This file defines a class that envelopes most, if not all, socket addresses
30 */
31typedef unsigned ksocklen_t;
32
33struct sockaddr;
34
35class KExtendedSocket; // No need to define it fully
36
37class TDESocketAddressPrivate;
46class TDECORE_EXPORT TDESocketAddress: public TQObject
47{
48 TQ_OBJECT
49protected:
53 TDESocketAddress() { init(); }
54
60 TDESocketAddress(const sockaddr* sa, ksocklen_t size);
61
62public:
66 virtual ~TDESocketAddress();
67
72 virtual TQString pretty() const;
73
78 const sockaddr* address() const
79 { return data; }
80
85 virtual ksocklen_t size() const
86 { return datasize; }
87
93 operator const sockaddr*() const
94 { return data; }
95
100 int family() const;
101
107 inline int ianaFamily() const
108 { return ianaFamily(family()); }
109
115 virtual bool isEqual(const TDESocketAddress& other) const;
116 bool isEqual(const TDESocketAddress* other) const
117 { return isEqual(*other); }
118
123 bool operator==(const TDESocketAddress& other) const
124 { return isEqual(other); }
125
136 bool isCoreEqual(const TDESocketAddress& other) const;
137
148 bool isCoreEqual(const TDESocketAddress* other) const
149 { return isCoreEqual(*other); }
150
158 virtual TQString nodeName() const;
159
167 virtual TQString serviceName() const;
168
169protected:
170 sockaddr* data;
171 ksocklen_t datasize;
172 bool owndata;
173
174private:
175 void init();
176 /* No copy constructor */
177 TDESocketAddress(TDESocketAddress&);
178 TDESocketAddress& operator=(TDESocketAddress&);
179
180public:
188 static TDESocketAddress* newAddress(const struct sockaddr *sa, ksocklen_t size);
189
197 static int ianaFamily(int af);
198
203 static int fromIanaFamily(int iana);
204
205 friend class KExtendedSocket;
206protected:
207 virtual void virtual_hook( int id, void* data );
208private:
209 TDESocketAddressPrivate* d;
210};
211
212/*
213 * External definitions
214 * We need these for KInetSocketAddress
215 */
216struct sockaddr_in;
217struct sockaddr_in6;
218struct in_addr;
219struct in6_addr;
220
221class KInetSocketAddressPrivate;
233class TDECORE_EXPORT KInetSocketAddress: public ::TDESocketAddress
234{
235 TQ_OBJECT
236public:
240 KInetSocketAddress();
241
245 KInetSocketAddress(const KInetSocketAddress&);
246
252 KInetSocketAddress(const sockaddr_in* sin, ksocklen_t len);
253
259 KInetSocketAddress(const sockaddr_in6* sin6, ksocklen_t len);
260
266 KInetSocketAddress(const in_addr& addr, unsigned short port);
267
273 KInetSocketAddress(const in6_addr& addr, unsigned short port);
274
284 KInetSocketAddress(const TQString& addr, unsigned short port, int family = -1);
285
289 virtual ~KInetSocketAddress();
290
296 bool setAddress(const KInetSocketAddress& ksa);
297
304 bool setAddress(const sockaddr_in* sin, ksocklen_t len);
305
314 bool setAddress(const sockaddr_in6* sin6, ksocklen_t len);
315
322 bool setAddress(const in_addr& addr, unsigned short port);
323
330 bool setAddress(const in6_addr& addr, unsigned short port);
331
349 bool setAddress(const TQString& addr, unsigned short port, int family = -1);
350
356 bool setHost(const in_addr& addr);
357
363 bool setHost(const in6_addr& addr);
364
371 bool setHost(const TQString& addr, int family = -1);
372
378 bool setPort(unsigned short port);
379
387 bool setFamily(int family);
388
394 bool setFlowinfo(TQ_UINT32 flowinfo);
395
401 bool setScopeId(int scopeid);
402
407 virtual TQString pretty() const;
408
413 virtual TQString nodeName() const;
414 // TQString prettyHost() const;
415
420 virtual TQString serviceName() const;
421
431 const sockaddr_in* addressV4() const;
432
437 const sockaddr_in6* addressV6() const;
438
444 in_addr hostV4() const;
445
452 in6_addr hostV6() const;
453
458 unsigned short port() const;
459
464 TQ_UINT32 flowinfo() const;
465
470 int scopeId() const;
471
477 virtual ksocklen_t size() const; // should be socklen_t
478
479 /* comparation */
491 static bool areEqualInet(const TDESocketAddress &s1, const TDESocketAddress &s2, bool coreOnly);
492
504 static bool areEqualInet6(const TDESocketAddress &s1, const TDESocketAddress &s2, bool coreOnly);
505
506 /* operators */
507
514 operator const sockaddr_in*() const
515 { return addressV4(); }
516
522 operator const sockaddr_in6*() const
523 { return addressV6(); }
524
528 KInetSocketAddress& operator=(const KInetSocketAddress &other)
529 { setAddress(other); return *this; }
530
531private:
532
533 void fromV4();
534 void fromV6();
535
536public:
544 static TQString addrToString(int family, const void *addr);
545
555 static bool stringToAddr(int family, const char *text, void *dest);
556
557 friend class KExtendedSocket;
558protected:
559 virtual void virtual_hook( int id, void* data );
560private:
561 KInetSocketAddressPrivate* d;
562};
563
564extern const ::KInetSocketAddress addressAny, addressLoopback;
565
566/*
567 * External definition KUnixSocketAddress
568 */
569struct sockaddr_un;
570
571class KUnixSocketAddressPrivate;
584class TDECORE_EXPORT KUnixSocketAddress: public ::TDESocketAddress
585{
586 TQ_OBJECT
587public:
591 KUnixSocketAddress();
592
598 KUnixSocketAddress(const sockaddr_un* raw_data, ksocklen_t size);
599
604 KUnixSocketAddress(TQCString pathname);
605
609 virtual ~KUnixSocketAddress();
610
617 bool setAddress(const sockaddr_un* socket_address, ksocklen_t size);
618
624 bool setAddress(TQCString path);
625
631 TQCString pathname() const;
632
637 virtual TQString pretty() const;
638
639 /*
640 * Returns the path in the form of a TQString.
641 * This can be fed into KExtendedSocket.
642 * @return the path (can be TQString::null).
643 * @see pathname()
644 */
645 virtual TQString serviceName() const;
646
651 const sockaddr_un* address() const;
652
658 operator const sockaddr_un*() const
659 { return address(); }
660
671 static bool areEqualUnix(const TDESocketAddress &s1, const TDESocketAddress &s2, bool coreOnly);
672
673private:
674 void init();
675
676 friend class KExtendedSocket;
677protected:
678 virtual void virtual_hook( int id, void* data );
679private:
680 KUnixSocketAddressPrivate* d;
681};
682
683#endif // KSOCKADDR_H
KExtendedSocket
The extended socket class.
Definition: kextsock.h:92
KInetSocketAddress
An Inet (IPv4 or IPv6) socket address.
Definition: ksockaddr.h:234
KInetSocketAddress::operator=
KInetSocketAddress & operator=(const KInetSocketAddress &other)
Sets this object to be the same as the other.
Definition: ksockaddr.h:528
KInetSocketAddress::scopeId
int scopeId() const
Returns the scope id for this IPv6 socket.
KInetSocketAddress::hostV6
in6_addr hostV6() const
Returns the host address.
KUnixSocketAddress
A Unix socket address.
Definition: ksockaddr.h:585
TDESocketAddress
A socket address.
Definition: ksockaddr.h:47
TDESocketAddress::ianaFamily
int ianaFamily() const
Returns the IANA family number of this address.
Definition: ksockaddr.h:107
TDESocketAddress::TDESocketAddress
TDESocketAddress()
Creates an empty class.
Definition: ksockaddr.h:53
TDESocketAddress::isCoreEqual
bool isCoreEqual(const TDESocketAddress *other) const
Some sockets may differ in such things as services or port numbers, like Internet sockets.
Definition: ksockaddr.h:148
TDESocketAddress::address
const sockaddr * address() const
Returns a sockaddr structure, for passing down to library functions.
Definition: ksockaddr.h:78
TDESocketAddress::size
virtual ksocklen_t size() const
Returns sockaddr structure size.
Definition: ksockaddr.h:85
TDESocketAddress::operator==
bool operator==(const TDESocketAddress &other) const
Overloaded == operator.
Definition: ksockaddr.h:123

tdecore

Skip menu "tdecore"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

tdecore

Skip menu "tdecore"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdecore by doxygen 1.9.4
This website is maintained by Timothy Pearson.