• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdelibs-4.14.38 API Reference
  • KDE Home
  • Contact Us
 

KDECore

  • kdecore
  • network
k3datagramsocket.h
Go to the documentation of this file.
1 /* -*- C++ -*-
2  * Copyright (C) 2003,2005 Thiago Macieira <thiago@kde.org>
3  *
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining
6  * a copy of this software and associated documentation files (the
7  * "Software"), to deal in the Software without restriction, including
8  * without limitation the rights to use, copy, modify, merge, publish,
9  * distribute, sublicense, and/or sell copies of the Software, and to
10  * permit persons to whom the Software is furnished to do so, subject to
11  * the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be included
14  * in all copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20  * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21  * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23  */
24 
25 #ifndef KDATAGRAMSOCKET_H
26 #define KDATAGRAMSOCKET_H
27 
28 #include <QtCore/QByteArray>
29 
30 #include "k3socketaddress.h"
31 #include "k3clientsocketbase.h"
32 
33 namespace KNetwork {
34 
35 class KResolverEntry;
36 
52 class KDECORE_EXPORT_DEPRECATED KDatagramPacket //krazy:exclude=dpointer,inline (lightweight; kde3)
53 {
54  QByteArray m_data;
55  KSocketAddress m_address;
56 
57 public:
61  KDatagramPacket()
62  { }
63 
67  explicit KDatagramPacket(const QByteArray& content)
68  : m_data(content)
69  { }
70 
76  KDatagramPacket(const char* content, uint length)
77  { setData(content, length); }
78 
82  KDatagramPacket(const QByteArray& content, const KSocketAddress& addr)
83  : m_data(content), m_address(addr)
84  { }
85 
89  KDatagramPacket(const char *content, uint length, const KSocketAddress& addr)
90  : m_address(addr)
91  { setData(content, length); }
92 
96  KDatagramPacket(const KDatagramPacket& other)
97  { *this = other; }
98 
102  ~KDatagramPacket()
103  { }
104 
108  const QByteArray& data() const
109  { return m_data; }
110 
114  uint length() const
115  { return m_data.size(); }
116 
120  uint size() const
121  { return m_data.size(); }
122 
126  bool isEmpty() const
127  { return m_data.isEmpty(); }
128 
132  bool isNull() const
133  { return m_data.isNull(); }
134 
138  const KSocketAddress& address() const
139  { return m_address; }
140 
144  void setAddress(const KSocketAddress& addr)
145  { m_address = addr; }
146 
151  void detach()
152  { m_data.detach(); }
153 
157  void setData(const QByteArray& data)
158  { m_data = data; }
159 
163  void setData(const char* data, uint length)
164  { m_data = QByteArray(data, length); }
165 };
166 
167 class KDatagramSocketPrivate;
182 class KDECORE_EXPORT_DEPRECATED KDatagramSocket: public KClientSocketBase
183 {
184  Q_OBJECT
185 
186 public:
190  KDatagramSocket(QObject* parent = 0L);
191 
195  virtual ~KDatagramSocket();
196 
200  // virtual bool lookup();
201 
210  virtual bool bind(const QString& node = QString(),
211  const QString& service = QString());
212 
217  virtual bool bind(const KResolverEntry& entry);
218 
231  virtual bool connect(const QString& node = QString(),
232  const QString& service = QString(),
233  OpenMode mode = ReadWrite);
234 
239  virtual bool connect(const KResolverEntry& entry, OpenMode mode = ReadWrite);
240 
247  virtual KDatagramPacket receive();
248 
259  virtual qint64 send(const KDatagramPacket& packet);
260 
261 protected:
265  virtual qint64 writeData(const char *data, qint64 len, const KSocketAddress* to);
266 
267 private Q_SLOTS:
268  void lookupFinishedLocal();
269  void lookupFinishedPeer();
270 
271 private:
272  bool doBind();
273  void setupSignals();
274 
275  KDatagramSocketPrivate* const d;
276 };
277 
278 } // namespace KNetwork
279 
280 #endif
KNetwork::KClientSocketBase
Abstract client socket class.
Definition: k3clientsocketbase.h:51
KNetwork::KDatagramPacket
one datagram
Definition: k3datagramsocket.h:53
KNetwork::KDatagramPacket::KDatagramPacket
KDatagramPacket(const QByteArray &content, const KSocketAddress &addr)
Constructs the datagram with the specified content and address.
Definition: k3datagramsocket.h:82
KNetwork::KDatagramPacket::length
uint length() const
Returns the data length.
Definition: k3datagramsocket.h:114
KNetwork::KDatagramPacket::setData
void setData(const char *data, uint length)
Sets the data to the given buffer and size.
Definition: k3datagramsocket.h:163
KNetwork::KDatagramPacket::~KDatagramPacket
~KDatagramPacket()
Destructor.
Definition: k3datagramsocket.h:102
KNetwork::KDatagramPacket::address
const KSocketAddress & address() const
Returns the socket address.
Definition: k3datagramsocket.h:138
KNetwork::KDatagramPacket::KDatagramPacket
KDatagramPacket(const QByteArray &content)
Constructs the datagram with the specified content.
Definition: k3datagramsocket.h:67
KNetwork::KDatagramPacket::KDatagramPacket
KDatagramPacket(const KDatagramPacket &other)
Copy constructor.
Definition: k3datagramsocket.h:96
KNetwork::KDatagramPacket::isNull
bool isNull() const
Returns true if this object is null.
Definition: k3datagramsocket.h:132
KNetwork::KDatagramPacket::KDatagramPacket
KDatagramPacket(const char *content, uint length, const KSocketAddress &addr)
Constructs the datagram with the specified content and address.
Definition: k3datagramsocket.h:89
KNetwork::KDatagramPacket::KDatagramPacket
KDatagramPacket()
Default constructor.
Definition: k3datagramsocket.h:61
KNetwork::KDatagramPacket::setData
void setData(const QByteArray &data)
Sets the data to the given value.
Definition: k3datagramsocket.h:157
KNetwork::KDatagramPacket::isEmpty
bool isEmpty() const
Returns true if this object is empty.
Definition: k3datagramsocket.h:126
KNetwork::KDatagramPacket::KDatagramPacket
KDatagramPacket(const char *content, uint length)
Constructs the datagram with the specified content.
Definition: k3datagramsocket.h:76
KNetwork::KDatagramPacket::setAddress
void setAddress(const KSocketAddress &addr)
Sets the address stored to the given value.
Definition: k3datagramsocket.h:144
KNetwork::KDatagramPacket::size
uint size() const
Returns the data length.
Definition: k3datagramsocket.h:120
KNetwork::KDatagramPacket::detach
void detach()
Detaches our data from a shared pool.
Definition: k3datagramsocket.h:151
KNetwork::KDatagramPacket::data
const QByteArray & data() const
Returns the data.
Definition: k3datagramsocket.h:108
KNetwork::KDatagramSocket
A socket that operates on datagrams.
Definition: k3datagramsocket.h:183
KNetwork::KResolverEntry
One resolution entry.
Definition: k3resolver.h:69
KNetwork::KSocketAddress
A generic socket address.
Definition: k3socketaddress.h:415
QObject
k3clientsocketbase.h
k3socketaddress.h
KNetwork
A namespace to store all networking-related (socket) classes.
Definition: k3bufferedsocket.h:35
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Tue Jan 26 2021 00:00:00 by doxygen 1.9.1 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KDECore

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

kdelibs-4.14.38 API Reference

Skip menu "kdelibs-4.14.38 API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal