Я пишу метод для анализа сетевого пакета в виде QByteArray
, Он извлечет несколько значений, используя QDataStream
а затем, надеюсь, передать QDataStream
наряду с другим методом для дальнейшей обработки (чтобы избежать накладных расходов на создание другого QDataStream
потом).
Вот мой код:
//datagram is QByteArray
QDataStream ds=new QDataStream(&datagram, QIODevice::ReadOnly);
qint64 someValue = 0;
*ds >> someValue;
emit receivePacket(ds,host, port);
Поскольку я использую сигналы, передача по ссылке не рекомендуется, и поскольку QDataStream
является Q_DISABLE_COPY
Единственный оставленный вариант — пройти по указателю. Но если я решу передать его по указателю, как мне эффективно управлять памятью? (удаляя только один раз) позже?
Задача ещё не решена.
Других решений пока нет …