aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-01-21 19:09:50 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-01-21 19:09:50 +0000
commit28e18ba48168b6ea3ca09164c647c96fe261a74a (patch)
treeb4c3c22a853e35dcd614d7ed26d776c1fc231a4a /searchlib
parentda91b7fd521edc6b00498247c91a58a3d8c132b5 (diff)
c_str -> data
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/apps/docstore/create-idx-from-dat.cpp2
-rw-r--r--searchlib/src/tests/aggregator/perdocexpr.cpp6
-rw-r--r--searchlib/src/tests/features/imported_dot_product/imported_dot_product_test.cpp2
-rw-r--r--searchlib/src/tests/transactionlog/translogclient_test.cpp28
-rw-r--r--searchlib/src/tests/transactionlogstress/translogstress.cpp6
-rw-r--r--searchlib/src/vespa/searchlib/docstore/chunk.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/docstore/chunkformat.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/docstore/visitcache.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/docstore/visitcache.h2
-rw-r--r--searchlib/src/vespa/searchlib/docstore/writeablefilechunk.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/expression/functionnodes.cpp8
-rw-r--r--searchlib/src/vespa/searchlib/transactionlog/common.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/transactionlog/domain.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/transactionlog/domainpart.cpp8
-rw-r--r--searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp2
15 files changed, 41 insertions, 41 deletions
diff --git a/searchlib/src/apps/docstore/create-idx-from-dat.cpp b/searchlib/src/apps/docstore/create-idx-from-dat.cpp
index 5990b3ec805..46aca14325f 100644
--- a/searchlib/src/apps/docstore/create-idx-from-dat.cpp
+++ b/searchlib/src/apps/docstore/create-idx-from-dat.cpp
@@ -78,7 +78,7 @@ generate(uint64_t serialNum, size_t chunks, FastOS_FileInterface & idxFile, size
fprintf(stdout, "Failed with lengthError %ld due to '%s'\n", lengthError, e.what());
}
}
- idxFile.Write2(os.c_str(), os.size());
+ idxFile.Write2(os.data(), os.size());
return serialNum;
}
diff --git a/searchlib/src/tests/aggregator/perdocexpr.cpp b/searchlib/src/tests/aggregator/perdocexpr.cpp
index 513e94321e1..610fc58e98f 100644
--- a/searchlib/src/tests/aggregator/perdocexpr.cpp
+++ b/searchlib/src/tests/aggregator/perdocexpr.cpp
@@ -489,9 +489,9 @@ TEST("testResultNodes") {
double d(786324.78);
nbostream os;
os << j << d;
- RawResultNode r1(os.c_str(), sizeof(j));
+ RawResultNode r1(os.data(), sizeof(j));
EXPECT_EQUAL(r1.getInteger(), 789);
- RawResultNode r2(os.c_str() + sizeof(j), sizeof(d));
+ RawResultNode r2(os.data() + sizeof(j), sizeof(d));
EXPECT_EQUAL(r2.getFloat(), 786324.78);
StringResultNode s1, s2("a"), s3("a"), s4("b"), s5("bb");
@@ -560,7 +560,7 @@ void testStreaming(const Identifiable &v) {
EXPECT_EQUAL(os2.size(), os3.size());
ASSERT_TRUE(os2.size() == os3.size());
- EXPECT_EQUAL(0, memcmp(os2.c_str(), os3.c_str(), os3.size()));
+ EXPECT_EQUAL(0, memcmp(os2.data(), os3.data(), os3.size()));
}
TEST("testTimeStamp") {
diff --git a/searchlib/src/tests/features/imported_dot_product/imported_dot_product_test.cpp b/searchlib/src/tests/features/imported_dot_product/imported_dot_product_test.cpp
index b7fb3d2b6a1..2f710c5d6e1 100644
--- a/searchlib/src/tests/features/imported_dot_product/imported_dot_product_test.cpp
+++ b/searchlib/src/tests/features/imported_dot_product/imported_dot_product_test.cpp
@@ -111,7 +111,7 @@ struct ArrayFixture : FixtureBase {
void check_prepare_state_output(const vespalib::tensor::Tensor & tensor, const ExpectedType & expected) {
vespalib::nbostream os;
vespalib::tensor::TypedBinaryFormat::serialize(os, tensor);
- vespalib::string input_vector(os.c_str(), os.size());
+ vespalib::string input_vector(os.data(), os.size());
check_prepare_state_output(".tensor", input_vector, expected);
}
diff --git a/searchlib/src/tests/transactionlog/translogclient_test.cpp b/searchlib/src/tests/transactionlog/translogclient_test.cpp
index 861216fd53c..0dced597917 100644
--- a/searchlib/src/tests/transactionlog/translogclient_test.cpp
+++ b/searchlib/src/tests/transactionlog/translogclient_test.cpp
@@ -77,7 +77,7 @@ public:
RPC::Result CallBackTest::receive(const Packet & p)
{
- nbostream_longlivedbuf h(p.getHandle().c_str(), p.getHandle().size());
+ nbostream_longlivedbuf h(p.getHandle().data(), p.getHandle().size());
LOG(info,"CallBackTest::receive (%zu, %zu, %zu)(%s)", h.rp(), h.size(), h.capacity(), myhex(h.peek(), h.size()).c_str());
while(h.size() > 0) {
Packet::Entry e;
@@ -103,7 +103,7 @@ public:
RPC::Result CallBackManyTest::receive(const Packet & p)
{
- nbostream_longlivedbuf h(p.getHandle().c_str(), p.getHandle().size());
+ nbostream_longlivedbuf h(p.getHandle().data(), p.getHandle().size());
for(;h.size() > 0; _count++, _value++) {
Packet::Entry e;
e.deserialize(h);
@@ -135,7 +135,7 @@ public:
RPC::Result CallBackUpdate::receive(const Packet & packet)
{
- nbostream_longlivedbuf h(packet.getHandle().c_str(), packet.getHandle().size());
+ nbostream_longlivedbuf h(packet.getHandle().data(), packet.getHandle().size());
while (h.size() > 0) {
Packet::Entry e;
e.deserialize(h);
@@ -187,7 +187,7 @@ public:
RPC::Result CallBackStatsTest::receive(const Packet & p)
{
- nbostream_longlivedbuf h(p.getHandle().c_str(), p.getHandle().size());
+ nbostream_longlivedbuf h(p.getHandle().data(), p.getHandle().size());
for(;h.size() > 0; ++_count) {
Packet::Entry e;
e.deserialize(h);
@@ -236,13 +236,13 @@ bool Test::partialUpdateTest()
nbostream os;
os << du;
- vespalib::ConstBufferRef bb(os.c_str(), os.size());
+ vespalib::ConstBufferRef bb(os.data(), os.size());
LOG(info, "DU : %s", myhex(bb.c_str(), bb.size()).c_str());
Packet::Entry e(7, du.getClass().id(), bb);
Packet pa;
pa.add(e);
pa.close();
- ASSERT_TRUE(session.commit(vespalib::ConstBufferRef(pa.getHandle().c_str(), pa.getHandle().size())));
+ ASSERT_TRUE(session.commit(vespalib::ConstBufferRef(pa.getHandle().data(), pa.getHandle().size())));
CallBackUpdate ca;
TransLogClient::Visitor::UP visitor = tls.createVisitor("test1", ca);
@@ -320,10 +320,10 @@ bool Test::fillDomainTest(TransLogClient::Session * s1, const vespalib::string &
ASSERT_TRUE (!b.add(e1));
a.close();
b.close();
- ASSERT_TRUE (s1->commit(vespalib::ConstBufferRef(a.getHandle().c_str(), a.getHandle().size())));
- ASSERT_TRUE (s1->commit(vespalib::ConstBufferRef(b.getHandle().c_str(), b.getHandle().size())));
+ ASSERT_TRUE (s1->commit(vespalib::ConstBufferRef(a.getHandle().data(), a.getHandle().size())));
+ ASSERT_TRUE (s1->commit(vespalib::ConstBufferRef(b.getHandle().data(), b.getHandle().size())));
try {
- s1->commit(vespalib::ConstBufferRef(a.getHandle().c_str(), a.getHandle().size()));
+ s1->commit(vespalib::ConstBufferRef(a.getHandle().data(), a.getHandle().size()));
ASSERT_TRUE(false);
} catch (const std::exception & e) {
EXPECT_EQUAL(vespalib::string("commit failed with code -2. server says: Exception during commit on " + name + " : Incomming serial number(1) must be bigger than the last one (3)."), e.what());
@@ -340,7 +340,7 @@ bool Test::fillDomainTest(TransLogClient::Session * s1, const vespalib::string &
EXPECT_EQUAL(a.range().to(), 3u);
Packet::Entry e;
- vespalib::nbostream h(a.getHandle().c_str(), a.getHandle().size());
+ vespalib::nbostream h(a.getHandle().data(), a.getHandle().size());
e.deserialize(h);
e.deserialize(h);
e.deserialize(h);
@@ -358,13 +358,13 @@ void Test::fillDomainTest(TransLogClient::Session * s1, size_t numPackets, size_
Packet::Entry e(value+1, j+1, vespalib::ConstBufferRef((const char *)&value, sizeof(value)));
if ( ! p->add(e) ) {
p->close();
- ASSERT_TRUE(s1->commit(vespalib::ConstBufferRef(p->getHandle().c_str(), p->getHandle().size())));
+ ASSERT_TRUE(s1->commit(vespalib::ConstBufferRef(p->getHandle().data(), p->getHandle().size())));
p.reset(new Packet());
ASSERT_TRUE(p->add(e));
}
}
p->close();
- ASSERT_TRUE(s1->commit(vespalib::ConstBufferRef(p->getHandle().c_str(), p->getHandle().size())));
+ ASSERT_TRUE(s1->commit(vespalib::ConstBufferRef(p->getHandle().data(), p->getHandle().size())));
}
}
@@ -382,13 +382,13 @@ Test::fillDomainTest(TransLogClient::Session * s1,
Packet::Entry e(value+1, j+1, vespalib::ConstBufferRef((const char *)&entryBuffer[0], entryBuffer.size()));
if ( ! p->add(e) ) {
p->close();
- ASSERT_TRUE(s1->commit(vespalib::ConstBufferRef(p->getHandle().c_str(), p->getHandle().size())));
+ ASSERT_TRUE(s1->commit(vespalib::ConstBufferRef(p->getHandle().data(), p->getHandle().size())));
p.reset(new Packet());
ASSERT_TRUE(p->add(e));
}
}
p->close();
- ASSERT_TRUE(s1->commit(vespalib::ConstBufferRef(p->getHandle().c_str(), p->getHandle().size())));
+ ASSERT_TRUE(s1->commit(vespalib::ConstBufferRef(p->getHandle().data(), p->getHandle().size())));
}
}
diff --git a/searchlib/src/tests/transactionlogstress/translogstress.cpp b/searchlib/src/tests/transactionlogstress/translogstress.cpp
index 76587d78b69..74e48081e17 100644
--- a/searchlib/src/tests/transactionlogstress/translogstress.cpp
+++ b/searchlib/src/tests/transactionlogstress/translogstress.cpp
@@ -118,11 +118,11 @@ EntryGenerator::getRandomEntry(SerialNum num)
if (_buffers != NULL) {
size_t i = _rnd.lrand48() % _buffers->size();
const nbostream& buffer = (*_buffers)[i];
- return Packet::Entry(num, 1024, ConstBufferRef(buffer.c_str(), buffer.size()));
+ return Packet::Entry(num, 1024, ConstBufferRef(buffer.data(), buffer.size()));
} else {
_bufferGenerator.setSeed(_baseSeed + num);
_lastGeneratedBuffer = _bufferGenerator.getRandomBuffer();
- return Packet::Entry(num, 1024, ConstBufferRef(_lastGeneratedBuffer.c_str(), _lastGeneratedBuffer.size()));
+ return Packet::Entry(num, 1024, ConstBufferRef(_lastGeneratedBuffer.data(), _lastGeneratedBuffer.size()));
}
}
@@ -225,7 +225,7 @@ FeederThread::commitPacket()
{
_packet.close();
const vespalib::nbostream& stream = _packet.getHandle();
- if (!_session->commit(ConstBufferRef(stream.c_str(), stream.size()))) {
+ if (!_session->commit(ConstBufferRef(stream.data(), stream.size()))) {
throw std::runtime_error(vespalib::make_string
("FeederThread: Failed commiting %s", PacketPrinter::toStr(_packet).c_str()));
} else {
diff --git a/searchlib/src/vespa/searchlib/docstore/chunk.cpp b/searchlib/src/vespa/searchlib/docstore/chunk.cpp
index 4707e8001a8..c7976fd15ae 100644
--- a/searchlib/src/vespa/searchlib/docstore/chunk.cpp
+++ b/searchlib/src/vespa/searchlib/docstore/chunk.cpp
@@ -89,13 +89,13 @@ Chunk::getLid(uint32_t lid) const
if (it->getLid() == lid) {
#if 1
uint32_t bLid(0), bLen(0);
- vespalib::nbostream is(getData().c_str()+it->getOffset(), it->size());
+ vespalib::nbostream is(getData().data() + it->getOffset(), it->size());
is >> bLid >> bLen;
assert(bLid == lid);
assert(bLen == it->netSize());
assert((bLen + 2*sizeof(uint32_t)) == it->size());
#endif
- buf = vespalib::ConstBufferRef(getData().c_str() + it->getNetOffset(), it->netSize());
+ buf = vespalib::ConstBufferRef(getData().data() + it->getNetOffset(), it->netSize());
}
}
return buf;
diff --git a/searchlib/src/vespa/searchlib/docstore/chunkformat.cpp b/searchlib/src/vespa/searchlib/docstore/chunkformat.cpp
index 4d76b3fea25..a5bed4c33ce 100644
--- a/searchlib/src/vespa/searchlib/docstore/chunkformat.cpp
+++ b/searchlib/src/vespa/searchlib/docstore/chunkformat.cpp
@@ -33,7 +33,7 @@ ChunkFormat::pack(uint64_t lastSerial, vespalib::DataBuffer & compressed, const
const size_t oldPos(compressed.getDataLen());
compressed.writeInt8(compression.type);
compressed.writeInt32(os.size());
- CompressionConfig::Type type(compress(compression, vespalib::ConstBufferRef(os.c_str(), os.size()), compressed, false));
+ CompressionConfig::Type type(compress(compression, vespalib::ConstBufferRef(os.data(), os.size()), compressed, false));
if (compression.type != type) {
compressed.getData()[oldPos] = type;
}
diff --git a/searchlib/src/vespa/searchlib/docstore/visitcache.cpp b/searchlib/src/vespa/searchlib/docstore/visitcache.cpp
index 994df3237f2..e8504480b7d 100644
--- a/searchlib/src/vespa/searchlib/docstore/visitcache.cpp
+++ b/searchlib/src/vespa/searchlib/docstore/visitcache.cpp
@@ -66,7 +66,7 @@ BlobSet::get(uint32_t lid) const
ConstBufferRef buf;
for (LidPosition pos : _positions) {
if (pos.lid() == lid) {
- buf = ConstBufferRef(_buffer.c_str() + pos.offset(), pos.size());
+ buf = ConstBufferRef(_buffer.data() + pos.offset(), pos.size());
break;
}
}
diff --git a/searchlib/src/vespa/searchlib/docstore/visitcache.h b/searchlib/src/vespa/searchlib/docstore/visitcache.h
index eb035ac2a2c..8a06794ee35 100644
--- a/searchlib/src/vespa/searchlib/docstore/visitcache.h
+++ b/searchlib/src/vespa/searchlib/docstore/visitcache.h
@@ -60,7 +60,7 @@ public:
void remove(uint32_t lid);
const Positions & getPositions() const { return _positions; }
vespalib::ConstBufferRef get(uint32_t lid) const;
- vespalib::ConstBufferRef getBuffer() const { return vespalib::ConstBufferRef(_buffer.c_str(), _buffer.size()); }
+ vespalib::ConstBufferRef getBuffer() const { return vespalib::ConstBufferRef(_buffer.data(), _buffer.size()); }
private:
Positions _positions;
vespalib::nbostream _buffer;
diff --git a/searchlib/src/vespa/searchlib/docstore/writeablefilechunk.cpp b/searchlib/src/vespa/searchlib/docstore/writeablefilechunk.cpp
index e802ec0a326..70295d81a93 100644
--- a/searchlib/src/vespa/searchlib/docstore/writeablefilechunk.cpp
+++ b/searchlib/src/vespa/searchlib/docstore/writeablefilechunk.cpp
@@ -867,13 +867,13 @@ WriteableFileChunk::unconditionallyFlushPendingChunks(const vespalib::LockGuard
_pendingDat -= pc.getDataLen();
lastSerial = pc.getLastSerial();
const nbostream &os2(pc.getSerializedIdx());
- os.write(os2.c_str(), os2.size());
+ os.write(os2.data(), os2.size());
}
}
vespalib::system_time timeStamp(vespalib::system_clock::now());
auto idxFile = openIdx();
idxFile->SetPosition(idxFile->GetSize());
- ssize_t wlen = idxFile->Write2(os.c_str(), os.size());
+ ssize_t wlen = idxFile->Write2(os.data(), os.size());
updateCurrentDiskFootprint();
if (wlen != static_cast<ssize_t>(os.size())) {
diff --git a/searchlib/src/vespa/searchlib/expression/functionnodes.cpp b/searchlib/src/vespa/searchlib/expression/functionnodes.cpp
index 0eb85cba4ba..b770b9ffc9d 100644
--- a/searchlib/src/vespa/searchlib/expression/functionnodes.cpp
+++ b/searchlib/src/vespa/searchlib/expression/functionnodes.cpp
@@ -489,7 +489,7 @@ bool CatFunctionNode::onExecute() const
getArg(i).execute();
getArg(i).getResult().serialize(nos);
}
- static_cast<RawResultNode &>(updateResult()).setBuffer(os.c_str(), os.size());
+ static_cast<RawResultNode &>(updateResult()).setBuffer(os.data(), os.size());
return true;
}
@@ -520,14 +520,14 @@ bool XorBitFunctionNode::internalExecute(const nbostream & os) const
{
const size_t numBytes(_tmpXor.size());
memset(&_tmpXor[0], 0, numBytes);
- const char * s(os.c_str());
+ const char * s(os.data());
for (size_t i(0), m(os.size()/numBytes); i < m; i++) {
for (size_t j(0), k(numBytes); j < k; j++) {
_tmpXor[j] ^= s[j + k*i];
}
}
for (size_t i((os.size()/numBytes)*numBytes); i < os.size(); i++) {
- _tmpXor[i%numBytes] = os.c_str()[i];
+ _tmpXor[i%numBytes] = os.data()[i];
}
static_cast<RawResultNode &>(updateResult()).setBuffer(&_tmpXor[0], numBytes);
return true;
@@ -537,7 +537,7 @@ bool MD5BitFunctionNode::internalExecute(const nbostream & os) const
{
const unsigned int MD5_DIGEST_LENGTH = 16;
unsigned char md5ScratchPad[MD5_DIGEST_LENGTH];
- fastc_md5sum(os.c_str(), os.size(), md5ScratchPad);
+ fastc_md5sum(os.data(), os.size(), md5ScratchPad);
static_cast<RawResultNode &>(updateResult()).setBuffer(md5ScratchPad, std::min(sizeof(md5ScratchPad), getNumBytes()));
return true;
}
diff --git a/searchlib/src/vespa/searchlib/transactionlog/common.cpp b/searchlib/src/vespa/searchlib/transactionlog/common.cpp
index a84e27b2e53..a5eaa61af12 100644
--- a/searchlib/src/vespa/searchlib/transactionlog/common.cpp
+++ b/searchlib/src/vespa/searchlib/transactionlog/common.cpp
@@ -37,7 +37,7 @@ Packet::Packet(const void * buf, size_t sz) :
_limit(sz),
_buf(static_cast<const char *>(buf), sz)
{
- nbostream_longlivedbuf os(_buf.c_str(), sz);
+ nbostream_longlivedbuf os(_buf.data(), sz);
while ( os.size() > 0 ) {
Entry e;
e.deserialize(os);
@@ -55,7 +55,7 @@ bool Packet::merge(const Packet & packet)
if (retval) {
_count += packet._count;
_range.to(packet._range.to());
- _buf.write(packet.getHandle().c_str(), packet.getHandle().size());
+ _buf.write(packet.getHandle().data(), packet.getHandle().size());
}
return retval;
}
diff --git a/searchlib/src/vespa/searchlib/transactionlog/domain.cpp b/searchlib/src/vespa/searchlib/transactionlog/domain.cpp
index fc9518ccf1b..5a64d829183 100644
--- a/searchlib/src/vespa/searchlib/transactionlog/domain.cpp
+++ b/searchlib/src/vespa/searchlib/transactionlog/domain.cpp
@@ -282,7 +282,7 @@ void waitPendingSync(vespalib::Monitor &syncMonitor, bool &pendingSync)
void Domain::commit(const Packet & packet)
{
DomainPart::SP dp(_parts.rbegin()->second);
- vespalib::nbostream_longlivedbuf is(packet.getHandle().c_str(), packet.getHandle().size());
+ vespalib::nbostream_longlivedbuf is(packet.getHandle().data(), packet.getHandle().size());
Packet::Entry entry;
entry.deserialize(is);
if (dp->byteSize() > _domainPartSize) {
diff --git a/searchlib/src/vespa/searchlib/transactionlog/domainpart.cpp b/searchlib/src/vespa/searchlib/transactionlog/domainpart.cpp
index d2838711a51..8a6e833bd1f 100644
--- a/searchlib/src/vespa/searchlib/transactionlog/domainpart.cpp
+++ b/searchlib/src/vespa/searchlib/transactionlog/domainpart.cpp
@@ -403,7 +403,7 @@ void
DomainPart::commit(SerialNum firstSerial, const Packet &packet)
{
int64_t firstPos(_transLog->GetPosition());
- nbostream_longlivedbuf h(packet.getHandle().c_str(), packet.getHandle().size());
+ nbostream_longlivedbuf h(packet.getHandle().data(), packet.getHandle().size());
if (_range.from() == 0) {
_range.from(firstSerial);
}
@@ -495,7 +495,7 @@ DomainPart::visit(SerialNumRange &r, Packet &packet)
}
} else {
const nbostream & tmp = start->second.getHandle();
- nbostream_longlivedbuf h(tmp.c_str(), tmp.size());
+ nbostream_longlivedbuf h(tmp.data(), tmp.size());
LOG(debug, "Visit partial[%" PRIu64 ", %" PRIu64 "] (%zd, %zd, %zd)",
start->second.range().from(), start->second.range().to(), h.rp(), h.size(), h.capacity());
Packet newPacket(h.size());
@@ -585,13 +585,13 @@ DomainPart::write(FastOS_FileInterface &file, const Packet::Entry &entry)
size_t start(os.size());
entry.serialize(os);
size_t end(os.size());
- crc = calcCrc(_defaultCrc, os.c_str()+start, end - start);
+ crc = calcCrc(_defaultCrc, os.data() + start, end - start);
os << crc;
size_t osSize = os.size();
assert(osSize == len + sizeof(len) + sizeof(uint8_t));
LockGuard guard(_writeLock);
- if ( ! file.CheckedWrite(os.c_str(), osSize) ) {
+ if ( ! file.CheckedWrite(os.data(), osSize) ) {
throw runtime_error(handleWriteError("Failed writing the entry.", file, lastKnownGoodPos, entry, end - start));
}
_writtenSerial = entry.serial();
diff --git a/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp b/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp
index 37903bc21f5..a3528c4f615 100644
--- a/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp
+++ b/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp
@@ -366,7 +366,7 @@ public:
req->SetMethodName("visitCallback");
req->GetParams()->AddString(domain.c_str());
req->GetParams()->AddInt32(id);
- req->GetParams()->AddData(packet.getHandle().c_str(), packet.getHandle().size());
+ req->GetParams()->AddData(packet.getHandle().data(), packet.getHandle().size());
return send(req);
}