diff options
author | Tor Brede Vekterli <vekterli@yahoo-inc.com> | 2017-03-13 13:51:40 +0000 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@yahoo-inc.com> | 2017-03-13 14:20:46 +0000 |
commit | 6c6a2f7b840f65209563ec1553cc71cfa02683a6 (patch) | |
tree | 666d79fd6b24257944b438d5daf9ce66c342a3ab | |
parent | 720617cf9e441059558870525cfefe94a85df788 (diff) |
Create explicit, non implicitly inlined function definitions
35 files changed, 95 insertions, 5 deletions
diff --git a/document/src/vespa/document/fieldvalue/document.cpp b/document/src/vespa/document/fieldvalue/document.cpp index cef9b885dd0..5535ba659ec 100644 --- a/document/src/vespa/document/fieldvalue/document.cpp +++ b/document/src/vespa/document/fieldvalue/document.cpp @@ -141,6 +141,9 @@ Document::Document(const DocumentTypeRepo& repo, ByteBuffer& header, ByteBuffer& deserializeBody(repo, body); } +Document::~Document() { +} + void Document::swap(Document & rhs) { diff --git a/document/src/vespa/document/fieldvalue/document.h b/document/src/vespa/document/fieldvalue/document.h index cfaa7e33c00..9c4ac0ba267 100644 --- a/document/src/vespa/document/fieldvalue/document.h +++ b/document/src/vespa/document/fieldvalue/document.h @@ -59,6 +59,7 @@ public: ByteBuffer& header, ByteBuffer& body, const DataType *anticipatedType = 0); + ~Document(); void setRepo(const DocumentTypeRepo & repo); const DocumentTypeRepo * getRepo() const { return _fields.getRepo(); } diff --git a/document/src/vespa/document/repo/configbuilder.cpp b/document/src/vespa/document/repo/configbuilder.cpp index 11d6fd4c3a7..81a3da5db00 100644 --- a/document/src/vespa/document/repo/configbuilder.cpp +++ b/document/src/vespa/document/repo/configbuilder.cpp @@ -12,5 +12,12 @@ int32_t createFieldId(const vespalib::string &name, int32_t type) { int32_t DatatypeConfig::id_counter = 100; +DatatypeConfig::DatatypeConfig() { + id = ++id_counter; +} + +DatatypeConfig::DatatypeConfig(const DatatypeConfig&) = default; +DatatypeConfig& DatatypeConfig::operator=(const DatatypeConfig&) = default; + } // namespace config_builder } // namespace document diff --git a/document/src/vespa/document/repo/configbuilder.h b/document/src/vespa/document/repo/configbuilder.h index 11d5c99bee3..5a2932f4663 100644 --- a/document/src/vespa/document/repo/configbuilder.h +++ b/document/src/vespa/document/repo/configbuilder.h @@ -17,9 +17,11 @@ struct DatatypeConfig : DocumenttypesConfig::Documenttype::Datatype { static int32_t id_counter; std::vector<DatatypeConfig> nested_types; - DatatypeConfig() { - id = ++id_counter; - } + DatatypeConfig(); + + DatatypeConfig(const DatatypeConfig&); + DatatypeConfig& operator=(const DatatypeConfig&); + DatatypeConfig &setId(int32_t i) { id = i; return *this; } void addNestedType(const TypeOrId &t); }; diff --git a/eval/src/vespa/eval/tensor/sparse/sparse_tensor_unsorted_address_builder.cpp b/eval/src/vespa/eval/tensor/sparse/sparse_tensor_unsorted_address_builder.cpp index ed396c4cc94..b7df157c158 100644 --- a/eval/src/vespa/eval/tensor/sparse/sparse_tensor_unsorted_address_builder.cpp +++ b/eval/src/vespa/eval/tensor/sparse/sparse_tensor_unsorted_address_builder.cpp @@ -15,6 +15,8 @@ SparseTensorUnsortedAddressBuilder::SparseTensorUnsortedAddressBuilder() { } +SparseTensorUnsortedAddressBuilder::~SparseTensorUnsortedAddressBuilder() { +} void SparseTensorUnsortedAddressBuilder::buildTo(SparseTensorAddressBuilder & diff --git a/eval/src/vespa/eval/tensor/sparse/sparse_tensor_unsorted_address_builder.h b/eval/src/vespa/eval/tensor/sparse/sparse_tensor_unsorted_address_builder.h index b5892796bb4..2c6435a0d6d 100644 --- a/eval/src/vespa/eval/tensor/sparse/sparse_tensor_unsorted_address_builder.h +++ b/eval/src/vespa/eval/tensor/sparse/sparse_tensor_unsorted_address_builder.h @@ -63,6 +63,7 @@ class SparseTensorUnsortedAddressBuilder public: SparseTensorUnsortedAddressBuilder(); + ~SparseTensorUnsortedAddressBuilder(); bool empty() const { return _elementStrings.empty(); } void add(vespalib::stringref dimension, vespalib::stringref label) { diff --git a/searchcore/src/tests/proton/documentdb/configurer/configurer_test.cpp b/searchcore/src/tests/proton/documentdb/configurer/configurer_test.cpp index a9c6b8f7e1f..a8c6cd885a2 100644 --- a/searchcore/src/tests/proton/documentdb/configurer/configurer_test.cpp +++ b/searchcore/src/tests/proton/documentdb/configurer/configurer_test.cpp @@ -281,7 +281,7 @@ struct MyFastAccessFeedView init(); } - ~MyFastAccessFeedView() { } + ~MyFastAccessFeedView(); void init() { ISummaryAdapter::SP summaryAdapter(new MySummaryAdapter()); @@ -308,6 +308,9 @@ struct MyFastAccessFeedView } }; +MyFastAccessFeedView::~MyFastAccessFeedView() { +} + struct FastAccessFixture { ExecutorThreadingService _writeService; diff --git a/searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_compaction_test.cpp b/searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_compaction_test.cpp index ebf4cb78276..49c2ed240b7 100644 --- a/searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_compaction_test.cpp +++ b/searchcore/src/tests/proton/documentdb/lid_space_compaction/lid_space_compaction_test.cpp @@ -253,6 +253,7 @@ struct JobFixture _jobRunner(_job) { } + ~JobFixture(); JobFixture &addStats(uint32_t docIdLimit, const LidVector &usedLids, const LidPairVector &usedFreePairs) { @@ -292,6 +293,9 @@ struct JobFixture } }; +JobFixture::~JobFixture() { +} + struct HandlerFixture { DocBuilder _docBuilder; diff --git a/searchcore/src/tests/proton/reference/document_db_reference_resolver/document_db_reference_resolver_test.cpp b/searchcore/src/tests/proton/reference/document_db_reference_resolver/document_db_reference_resolver_test.cpp index 15668427c03..c0adecb8214 100644 --- a/searchcore/src/tests/proton/reference/document_db_reference_resolver/document_db_reference_resolver_test.cpp +++ b/searchcore/src/tests/proton/reference/document_db_reference_resolver/document_db_reference_resolver_test.cpp @@ -140,6 +140,7 @@ struct DocumentModel { { initChildDocType(); } + ~DocumentModel(); void initChildDocType() { childDocType.addField(Field("ref", refDataType, true)); childDocType.addField(Field("other_ref", refDataType, true)); @@ -148,6 +149,9 @@ struct DocumentModel { } }; +DocumentModel::~DocumentModel() { +} + void set(const vespalib::string &name, const vespalib::string &referenceField, diff --git a/searchcore/src/vespa/searchcore/proton/server/executorthreadingservice.cpp b/searchcore/src/vespa/searchcore/proton/server/executorthreadingservice.cpp index 75bde228586..99df6ed8e1b 100644 --- a/searchcore/src/vespa/searchcore/proton/server/executorthreadingservice.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/executorthreadingservice.cpp @@ -25,6 +25,9 @@ ExecutorThreadingService::ExecutorThreadingService(uint32_t threads, { } +ExecutorThreadingService::~ExecutorThreadingService() { +} + vespalib::Syncable & ExecutorThreadingService::sync() { diff --git a/searchcore/src/vespa/searchcore/proton/server/executorthreadingservice.h b/searchcore/src/vespa/searchcore/proton/server/executorthreadingservice.h index 7bbaebd3576..2cf63363f6f 100644 --- a/searchcore/src/vespa/searchcore/proton/server/executorthreadingservice.h +++ b/searchcore/src/vespa/searchcore/proton/server/executorthreadingservice.h @@ -34,6 +34,7 @@ public: ExecutorThreadingService(uint32_t threads = 1, uint32_t stackSize = 128 * 1024, uint32_t taskLimit = 1000); + ~ExecutorThreadingService(); /** * Implements vespalib::Syncable diff --git a/searchcore/src/vespa/searchcore/proton/server/transactionlogmanager.cpp b/searchcore/src/vespa/searchcore/proton/server/transactionlogmanager.cpp index d35d9a41f52..463a5fa9704 100644 --- a/searchcore/src/vespa/searchcore/proton/server/transactionlogmanager.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/transactionlogmanager.cpp @@ -32,6 +32,8 @@ TransactionLogManager::TransactionLogManager(const vespalib::string &tlsSpec, { } +TransactionLogManager::~TransactionLogManager() { +} void TransactionLogManager::init(SerialNum oldestConfigSerial, diff --git a/searchcore/src/vespa/searchcore/proton/server/transactionlogmanager.h b/searchcore/src/vespa/searchcore/proton/server/transactionlogmanager.h index 0afa55bea24..37a6c3bf5a5 100644 --- a/searchcore/src/vespa/searchcore/proton/server/transactionlogmanager.h +++ b/searchcore/src/vespa/searchcore/proton/server/transactionlogmanager.h @@ -30,6 +30,7 @@ public: **/ TransactionLogManager(const vespalib::string &tlsSpec, const vespalib::string &domainName); + ~TransactionLogManager(); /** * Init the transaction log. diff --git a/searchcorespi/src/vespa/searchcorespi/index/indexmaintainer.cpp b/searchcorespi/src/vespa/searchcorespi/index/indexmaintainer.cpp index 5d16b0ba331..5590169fbef 100644 --- a/searchcorespi/src/vespa/searchcorespi/index/indexmaintainer.cpp +++ b/searchcorespi/src/vespa/searchcorespi/index/indexmaintainer.cpp @@ -134,6 +134,12 @@ DiskIndexWithDestructorClosure::~DiskIndexWithDestructorClosure() {} } // namespace +IndexMaintainer::FusionArgs::~FusionArgs() { +} + +IndexMaintainer::SetSchemaArgs::~SetSchemaArgs() { +} + uint32_t IndexMaintainer::getNewAbsoluteId() { diff --git a/searchcorespi/src/vespa/searchcorespi/index/indexmaintainer.h b/searchcorespi/src/vespa/searchcorespi/index/indexmaintainer.h index dbab3e40028..5c2bc30dae7 100644 --- a/searchcorespi/src/vespa/searchcorespi/index/indexmaintainer.h +++ b/searchcorespi/src/vespa/searchcorespi/index/indexmaintainer.h @@ -246,6 +246,7 @@ class IndexMaintainer : public IIndexManager, _wtSchema(), _old_source_list() { } + ~FusionArgs(); }; IFlushTarget::SP getFusionTarget(); @@ -271,6 +272,7 @@ class IndexMaintainer : public IIndexManager, _oldIndex(), _oldSourceList() { } + ~SetSchemaArgs(); }; void doneSetSchema(SetSchemaArgs &args, IMemoryIndex::SP &newIndex); diff --git a/searchlib/src/tests/docstore/logdatastore/logdatastore_test.cpp b/searchlib/src/tests/docstore/logdatastore/logdatastore_test.cpp index 3f42464ffe5..9d99a15894a 100644 --- a/searchlib/src/tests/docstore/logdatastore/logdatastore_test.cpp +++ b/searchlib/src/tests/docstore/logdatastore/logdatastore_test.cpp @@ -341,6 +341,7 @@ public: GrowStrategy(), TuneFileSummary(), _fileHeaderContext, _tlSyncer, NULL) { } + ~VisitStore(); IDataStore & getStore() { return _datastore; } private: TmpDirectory _myDir; @@ -351,6 +352,9 @@ private: LogDataStore _datastore; }; +VisitStore::~VisitStore() { +} + TEST("test visit cache does not cache empty ones and is able to access some backing store.") { const char * A7 = "aAaAaAa"; VisitStore store; diff --git a/searchlib/src/vespa/searchlib/aggregation/vdshit.cpp b/searchlib/src/vespa/searchlib/aggregation/vdshit.cpp index 4f981de7edd..aa0d0cc1d84 100644 --- a/searchlib/src/vespa/searchlib/aggregation/vdshit.cpp +++ b/searchlib/src/vespa/searchlib/aggregation/vdshit.cpp @@ -17,6 +17,9 @@ static FieldBase _G_summaryField("summary"); IMPLEMENT_IDENTIFIABLE_NS2(search, aggregation, VdsHit, Hit); +VdsHit::~VdsHit() { +} + Serializer & VdsHit::onSerialize(Serializer &os) const { diff --git a/searchlib/src/vespa/searchlib/aggregation/vdshit.h b/searchlib/src/vespa/searchlib/aggregation/vdshit.h index 89fb1acbae6..f4f5db28eb6 100644 --- a/searchlib/src/vespa/searchlib/aggregation/vdshit.h +++ b/searchlib/src/vespa/searchlib/aggregation/vdshit.h @@ -17,6 +17,7 @@ public: DECLARE_NBO_SERIALIZE; VdsHit() : Hit(), _docId(), _summary() {} VdsHit(DocId docId, HitRank rank) : Hit(rank), _docId(docId), _summary() {} + ~VdsHit(); virtual VdsHit *clone() const { return new VdsHit(*this); } virtual void visitMembers(vespalib::ObjectVisitor &visitor) const; const DocId & getDocId() const { return _docId; } diff --git a/searchlib/src/vespa/searchlib/attribute/attributefilesavetarget.cpp b/searchlib/src/vespa/searchlib/attribute/attributefilesavetarget.cpp index e5b5b6567f8..c9a846d47df 100644 --- a/searchlib/src/vespa/searchlib/attribute/attributefilesavetarget.cpp +++ b/searchlib/src/vespa/searchlib/attribute/attributefilesavetarget.cpp @@ -34,6 +34,8 @@ AttributeFileSaveTarget(const TuneFileAttributes &tuneFileAttributes, { } +AttributeFileSaveTarget::~AttributeFileSaveTarget() { +} bool AttributeFileSaveTarget::setup() diff --git a/searchlib/src/vespa/searchlib/attribute/attributefilesavetarget.h b/searchlib/src/vespa/searchlib/attribute/attributefilesavetarget.h index 9b931be4fb8..b2651f76100 100644 --- a/searchlib/src/vespa/searchlib/attribute/attributefilesavetarget.h +++ b/searchlib/src/vespa/searchlib/attribute/attributefilesavetarget.h @@ -23,6 +23,7 @@ public: AttributeFileSaveTarget(const TuneFileAttributes &tuneFileAttributes, const search::common::FileHeaderContext & fileHeaderContext); + ~AttributeFileSaveTarget(); // Implements IAttributeSaveTarget /** Setups this saveTarget by opening the relevant files **/ diff --git a/searchlib/src/vespa/searchlib/attribute/attributememorysavetarget.cpp b/searchlib/src/vespa/searchlib/attribute/attributememorysavetarget.cpp index f1fbfef43aa..cfc4061d4d5 100644 --- a/searchlib/src/vespa/searchlib/attribute/attributememorysavetarget.cpp +++ b/searchlib/src/vespa/searchlib/attribute/attributememorysavetarget.cpp @@ -21,6 +21,9 @@ AttributeMemorySaveTarget::AttributeMemorySaveTarget() { } +AttributeMemorySaveTarget::~AttributeMemorySaveTarget() { +} + IAttributeFileWriter & AttributeMemorySaveTarget::datWriter() diff --git a/searchlib/src/vespa/searchlib/attribute/attributememorysavetarget.h b/searchlib/src/vespa/searchlib/attribute/attributememorysavetarget.h index 48828039d9e..0e2826f7091 100644 --- a/searchlib/src/vespa/searchlib/attribute/attributememorysavetarget.h +++ b/searchlib/src/vespa/searchlib/attribute/attributememorysavetarget.h @@ -33,6 +33,7 @@ private: public: AttributeMemorySaveTarget(); + ~AttributeMemorySaveTarget(); /** * Write the underlying buffer(s) to file(s). diff --git a/searchlib/src/vespa/searchlib/attribute/iattributesavetarget.cpp b/searchlib/src/vespa/searchlib/attribute/iattributesavetarget.cpp index e0f240dc15f..ab9931a7fbf 100644 --- a/searchlib/src/vespa/searchlib/attribute/iattributesavetarget.cpp +++ b/searchlib/src/vespa/searchlib/attribute/iattributesavetarget.cpp @@ -7,5 +7,11 @@ LOG_SETUP(".searchlib.attribute.iattributesavetarget"); namespace search { +IAttributeSaveTarget::Config::~Config() { +} + +IAttributeSaveTarget::~IAttributeSaveTarget() { +} + } // namespace search diff --git a/searchlib/src/vespa/searchlib/attribute/iattributesavetarget.h b/searchlib/src/vespa/searchlib/attribute/iattributesavetarget.h index d3e74ef4885..d0ab72983a7 100644 --- a/searchlib/src/vespa/searchlib/attribute/iattributesavetarget.h +++ b/searchlib/src/vespa/searchlib/attribute/iattributesavetarget.h @@ -77,6 +77,8 @@ public: _version(version) { } + ~Config(); + const vespalib::string & getFileName() const { return _fileName; } const vespalib::string & @@ -154,7 +156,7 @@ public: virtual IAttributeFileWriter &weightWriter() = 0; virtual IAttributeFileWriter &udatWriter() = 0; - virtual ~IAttributeSaveTarget() {} + virtual ~IAttributeSaveTarget(); }; } // namespace search diff --git a/searchlib/src/vespa/searchlib/diskindex/bitvectorfile.cpp b/searchlib/src/vespa/searchlib/diskindex/bitvectorfile.cpp index 0a2c9cbc955..d5239e3393f 100644 --- a/searchlib/src/vespa/searchlib/diskindex/bitvectorfile.cpp +++ b/searchlib/src/vespa/searchlib/diskindex/bitvectorfile.cpp @@ -202,6 +202,8 @@ BitVectorFileWrite::close(void) Parent::close(); } +BitVectorCandidate::~BitVectorCandidate() { +} void BitVectorCandidate::checkPointWrite(nbostream &out) diff --git a/searchlib/src/vespa/searchlib/diskindex/bitvectorfile.h b/searchlib/src/vespa/searchlib/diskindex/bitvectorfile.h index a33bd8e6c0f..9a88f4bea21 100644 --- a/searchlib/src/vespa/searchlib/diskindex/bitvectorfile.h +++ b/searchlib/src/vespa/searchlib/diskindex/bitvectorfile.h @@ -110,6 +110,8 @@ public: _array.reserve(_bitVectorLimit); } + ~BitVectorCandidate(); + void clear(void) { diff --git a/searchlib/src/vespa/searchlib/memoryindex/document_remover.cpp b/searchlib/src/vespa/searchlib/memoryindex/document_remover.cpp index ee4938da59f..3c9c8bb6ac4 100644 --- a/searchlib/src/vespa/searchlib/memoryindex/document_remover.cpp +++ b/searchlib/src/vespa/searchlib/memoryindex/document_remover.cpp @@ -22,6 +22,9 @@ DocumentRemover::DocumentRemover(const WordStore &wordStore) { } +DocumentRemover::~DocumentRemover() { +} + void DocumentRemover::remove(uint32_t docId, IDocumentRemoveListener &listener) { diff --git a/searchlib/src/vespa/searchlib/memoryindex/document_remover.h b/searchlib/src/vespa/searchlib/memoryindex/document_remover.h index d9435ed4fb2..d7cb67ac1aa 100644 --- a/searchlib/src/vespa/searchlib/memoryindex/document_remover.h +++ b/searchlib/src/vespa/searchlib/memoryindex/document_remover.h @@ -49,6 +49,7 @@ private: public: DocumentRemover(const WordStore &wordStore); + ~DocumentRemover(); void remove(uint32_t docId, IDocumentRemoveListener &inverter); CompactDocumentWordsStore &getStore() { return _store; } const CompactDocumentWordsStore &getStore() const { return _store; } diff --git a/slobrok/src/vespa/slobrok/server/metrics_producer.cpp b/slobrok/src/vespa/slobrok/server/metrics_producer.cpp index a30bdb8233f..7ac04e1b142 100644 --- a/slobrok/src/vespa/slobrok/server/metrics_producer.cpp +++ b/slobrok/src/vespa/slobrok/server/metrics_producer.cpp @@ -103,6 +103,9 @@ MetricsProducer::MetricsProducer(const RPCHooks &hooks, { } +MetricsProducer::~MetricsProducer() { +} + vespalib::string MetricsProducer::getMetrics(const vespalib::string &consumer) { diff --git a/slobrok/src/vespa/slobrok/server/metrics_producer.h b/slobrok/src/vespa/slobrok/server/metrics_producer.h index ca4a222a3cb..d66a1d53071 100644 --- a/slobrok/src/vespa/slobrok/server/metrics_producer.h +++ b/slobrok/src/vespa/slobrok/server/metrics_producer.h @@ -25,6 +25,7 @@ public: void snapshot(); MetricsProducer(const RPCHooks &hooks, FNET_Transport &transport); + ~MetricsProducer(); }; diff --git a/staging_vespalib/src/vespa/vespalib/objects/objectdumper.cpp b/staging_vespalib/src/vespa/vespalib/objects/objectdumper.cpp index 396c0214a9b..e15cf9a3e47 100644 --- a/staging_vespalib/src/vespa/vespalib/objects/objectdumper.cpp +++ b/staging_vespalib/src/vespa/vespalib/objects/objectdumper.cpp @@ -41,6 +41,9 @@ ObjectDumper::ObjectDumper(int indent) { } +ObjectDumper::~ObjectDumper() { +} + //----------------------------------------------------------------------------- void diff --git a/staging_vespalib/src/vespa/vespalib/objects/objectdumper.h b/staging_vespalib/src/vespa/vespalib/objects/objectdumper.h index 7edb017c3a8..b630246328c 100644 --- a/staging_vespalib/src/vespa/vespalib/objects/objectdumper.h +++ b/staging_vespalib/src/vespa/vespalib/objects/objectdumper.h @@ -49,6 +49,7 @@ public: * @param indent indent size in number of spaces **/ ObjectDumper(int indent = 4); + ~ObjectDumper(); /** * Obtain the created object string representation. This object diff --git a/storage/src/vespa/storage/frameworkimpl/thread/deadlockdetector.cpp b/storage/src/vespa/storage/frameworkimpl/thread/deadlockdetector.cpp index 06972b60cee..b904a0ea103 100644 --- a/storage/src/vespa/storage/frameworkimpl/thread/deadlockdetector.cpp +++ b/storage/src/vespa/storage/frameworkimpl/thread/deadlockdetector.cpp @@ -256,7 +256,12 @@ namespace { _maxProcTickTimeSeen._alignment = Column::LEFT; _maxWaitTickTimeSeen._alignment = Column::LEFT; } + ~ThreadTable(); }; + + ThreadTable::~ThreadTable() { + } + struct ThreadStatusWriter : public DeadLockDetector::ThreadVisitor { ThreadTable& _table; framework::MilliSecTime _time; diff --git a/storage/src/vespa/storage/persistence/testandsethelper.cpp b/storage/src/vespa/storage/persistence/testandsethelper.cpp index 7ea40720f27..3108a8f03c4 100644 --- a/storage/src/vespa/storage/persistence/testandsethelper.cpp +++ b/storage/src/vespa/storage/persistence/testandsethelper.cpp @@ -49,6 +49,9 @@ TestAndSetHelper::TestAndSetHelper(PersistenceThread & thread, const api::TestAn parseDocumentSelection(); } +TestAndSetHelper::~TestAndSetHelper() { +} + api::ReturnCode TestAndSetHelper::retrieveAndMatch() { // Walk document selection tree to build a minimal field set FieldVisitor fieldVisitor(*_docTypePtr); diff --git a/storage/src/vespa/storage/persistence/testandsethelper.h b/storage/src/vespa/storage/persistence/testandsethelper.h index 9c220547c7f..52797a38054 100644 --- a/storage/src/vespa/storage/persistence/testandsethelper.h +++ b/storage/src/vespa/storage/persistence/testandsethelper.h @@ -33,6 +33,7 @@ class TestAndSetHelper { public: TestAndSetHelper(PersistenceThread & thread, const api::TestAndSetCommand & cmd); + ~TestAndSetHelper(); api::ReturnCode retrieveAndMatch(); }; |