• 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  */
31 typedef unsigned ksocklen_t;
32 
33 struct sockaddr;
34 
35 class KExtendedSocket; // No need to define it fully
36 
37 class TDESocketAddressPrivate;
46 class TDECORE_EXPORT TDESocketAddress: public TQObject
47 {
48  TQ_OBJECT
49 protected:
53  TDESocketAddress() { init(); }
54 
60  TDESocketAddress(const sockaddr* sa, ksocklen_t size);
61 
62 public:
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 
169 protected:
170  sockaddr* data;
171  ksocklen_t datasize;
172  bool owndata;
173 
174 private:
175  void init();
176  /* No copy constructor */
177  TDESocketAddress(TDESocketAddress&);
178  TDESocketAddress& operator=(TDESocketAddress&);
179 
180 public:
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;
206 protected:
207  virtual void virtual_hook( int id, void* data );
208 private:
209  TDESocketAddressPrivate* d;
210 };
211 
212 /*
213  * External definitions
214  * We need these for KInetSocketAddress
215  */
216 struct sockaddr_in;
217 struct sockaddr_in6;
218 struct in_addr;
219 struct in6_addr;
220 
221 class KInetSocketAddressPrivate;
233 class TDECORE_EXPORT KInetSocketAddress: public ::TDESocketAddress
234 {
235  TQ_OBJECT
236 public:
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 
531 private:
532 
533  void fromV4();
534  void fromV6();
535 
536 public:
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;
558 protected:
559  virtual void virtual_hook( int id, void* data );
560 private:
561  KInetSocketAddressPrivate* d;
562 };
563 
564 extern const ::KInetSocketAddress addressAny, addressLoopback;
565 
566 /*
567  * External definition KUnixSocketAddress
568  */
569 struct sockaddr_un;
570 
571 class KUnixSocketAddressPrivate;
584 class TDECORE_EXPORT KUnixSocketAddress: public ::TDESocketAddress
585 {
586  TQ_OBJECT
587 public:
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 
673 private:
674  void init();
675 
676  friend class KExtendedSocket;
677 protected:
678  virtual void virtual_hook( int id, void* data );
679 private:
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::scopeId
int scopeId() const
Returns the scope id for this IPv6 socket.
KInetSocketAddress::operator=
KInetSocketAddress & operator=(const KInetSocketAddress &other)
Sets this object to be the same as the other.
Definition: ksockaddr.h:528
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.1
This website is maintained by Timothy Pearson.