5#ifndef QPRIVATELINEARBUFFER_P_H
6#define QPRIVATELINEARBUFFER_P_H
19#include <QtCore/qtconfigmacros.h>
24class QPrivateLinearBuffer
27 QPrivateLinearBuffer() : len(0), first(0), buf(0), capacity(0) {
29 ~QPrivateLinearBuffer() {
36 qsizetype size()
const
40 bool isEmpty()
const {
43 void skip(qsizetype n)
55 int ch = uchar(*first);
60 qsizetype read(
char* target, qsizetype size)
62 qsizetype r = (std::min)(size, len);
63 memcpy(target, first, r);
68 char* reserve(qsizetype size)
70 makeSpace(size + len, freeSpaceAtEnd);
71 char* writePtr = first + len;
75 void chop(qsizetype size)
83 QByteArray readAll() {
87 return QByteArray(f, l);
89 qsizetype readLine(
char* target, qsizetype size)
91 qsizetype r = (std::min)(size, len);
92 char* eol =
static_cast<
char*>(memchr(first,
'\n', r));
95 memcpy(target, first, r);
100 bool canReadLine()
const {
101 return memchr(first,
'\n', len);
103 void ungetChar(
char c) {
106 makeSpace(len+1, freeSpaceAtStart);
112 void ungetBlock(
const char* block, qsizetype size)
114 if ((first - buf) < size) {
116 makeSpace(len + size, freeSpaceAtStart);
120 memcpy(first, block, size);
124 enum FreeSpacePos {freeSpaceAtStart, freeSpaceAtEnd};
125 void makeSpace(size_t required, FreeSpacePos where) {
127 while (newCapacity < required)
129 const qsizetype moveOffset = (where == freeSpaceAtEnd) ? 0 : qsizetype(newCapacity) - len;
130 if (newCapacity > capacity) {
132 char* newBuf =
new char[newCapacity];
133 memmove(newBuf + moveOffset, first, len);
136 capacity = newCapacity;
139 memmove(buf + moveOffset, first, len);
141 first = buf + moveOffset;
#define QPRIVATELINEARBUFFER_BUFFERSIZE
bool setSocketDescriptor(int socketDescriptor, QBluetoothServiceInfo::Protocol socketType, QBluetoothSocket::SocketState socketState=QBluetoothSocket::SocketState::ConnectedState, QBluetoothSocket::OpenMode openMode=QBluetoothSocket::ReadWrite) override
qint64 bytesToWrite() const override
bool canReadLine() const override
QString localName() const override
void defaultSocketConnectFailed(const QJniObject &socket, const QJniObject &targetUuid, const QBluetoothUuid &qtTargetUuid)
void connectToService(const QBluetoothAddress &address, const QBluetoothUuid &uuid, QIODevice::OpenMode openMode) override
quint16 localPort() const override
void connectToServiceHelper(const QBluetoothAddress &address, const QBluetoothUuid &uuid, QIODevice::OpenMode openMode) override
static QBluetoothUuid reverseUuid(const QBluetoothUuid &serviceUuid)
bool ensureNativeSocket(QBluetoothServiceInfo::Protocol type) override
QBluetoothAddress peerAddress() const override
friend class QBluetoothServerPrivate
void fallbackSocketConnectFailed(const QJniObject &socket, const QJniObject &targetUuid)
quint16 peerPort() const override
bool setSocketDescriptor(const QJniObject &socket, QBluetoothServiceInfo::Protocol socketType, QBluetoothSocket::SocketState socketState=QBluetoothSocket::SocketState::ConnectedState, QBluetoothSocket::OpenMode openMode=QBluetoothSocket::ReadWrite) override
QString peerName() const override
QBluetoothAddress localAddress() const override
QBluetoothSocketPrivateAndroid()
InputStreamThread * inputThread
void connectToService(const QBluetoothServiceInfo &service, QIODevice::OpenMode openMode) override
void inputThreadError(int errorCode)
qint64 bytesAvailable() const override
qint64 writeData(const char *data, qint64 maxSize) override
~QBluetoothSocketPrivateAndroid() override
void connectToService(const QBluetoothAddress &address, quint16 port, QIODevice::OpenMode openMode) override
qint64 readData(char *data, qint64 maxSize) override
bool fallBackReversedConnect(const QBluetoothUuid &uuid)
bool useReverseUuidWorkAroundConnect
static void convertAddress(const quint64 from, quint8(&to)[6])
static quint64 convertAddress(const quint8(&from)[6], quint64 *to=nullptr)