• 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
33namespace KNetwork {
34
35class KResolverEntry;
36
52class KDECORE_EXPORT_DEPRECATED KDatagramPacket //krazy:exclude=dpointer,inline (lightweight; kde3)
53{
54 QByteArray m_data;
55 KSocketAddress m_address;
56
57public:
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
167class KDatagramSocketPrivate;
182class KDECORE_EXPORT_DEPRECATED KDatagramSocket: public KClientSocketBase
183{
184 Q_OBJECT
185
186public:
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
261protected:
265 virtual qint64 writeData(const char *data, qint64 len, const KSocketAddress* to);
266
267private Q_SLOTS:
268 void lookupFinishedLocal();
269 void lookupFinishedPeer();
270
271private:
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::KDatagramPacket
KDatagramPacket(const QByteArray &content)
Constructs the datagram with the specified content.
Definition: k3datagramsocket.h:67
KNetwork::KDatagramPacket::address
const KSocketAddress & address() const
Returns the socket address.
Definition: k3datagramsocket.h:138
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
QString
qint64
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-2023 The KDE developers.
Generated on Mon Feb 20 2023 00:00:00 by doxygen 1.9.6 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