From: Mukund Sivaraman Date: Mon, 10 Sep 2012 07:41:13 +0000 (+0530) Subject: [2108] Pass memory segment to InMemoryClient constructor X-Git-Tag: trac2351_base~70^2~13 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f1f2184dc4023a2cdd4157aefd3bdafdb164d586;p=thirdparty%2Fkea.git [2108] Pass memory segment to InMemoryClient constructor --- diff --git a/src/lib/datasrc/memory/memory_client.cc b/src/lib/datasrc/memory/memory_client.cc index 7758e3cae9..5617690d29 100644 --- a/src/lib/datasrc/memory/memory_client.cc +++ b/src/lib/datasrc/memory/memory_client.cc @@ -87,7 +87,9 @@ private: }; public: - InMemoryClientImpl(RRClass rrclass) : + InMemoryClientImpl(util::MemorySegment& mem_sgmt, + RRClass rrclass) : + local_mem_sgmt_(mem_sgmt), rrclass_(rrclass), zone_count_(0), zone_table_(ZoneTable::create(local_mem_sgmt_, rrclass)), @@ -106,7 +108,7 @@ public: // Memory segment to allocate/deallocate memory for the zone table. // (This will eventually have to be abstract; for now we hardcode the // specific derived segment class). - util::MemorySegmentLocal local_mem_sgmt_; + util::MemorySegment& local_mem_sgmt_; const RRClass rrclass_; unsigned int zone_count_; ZoneTable* zone_table_; @@ -671,8 +673,9 @@ generateRRsetFromIterator(ZoneIterator* iterator, LoadCallback callback) { } } -InMemoryClient::InMemoryClient(RRClass rrclass) : - impl_(new InMemoryClientImpl(rrclass)) +InMemoryClient::InMemoryClient(util::MemorySegment& mem_sgmt, + RRClass rrclass) : + impl_(new InMemoryClientImpl(mem_sgmt, rrclass)) {} InMemoryClient::~InMemoryClient() { diff --git a/src/lib/datasrc/memory/memory_client.h b/src/lib/datasrc/memory/memory_client.h index 0c211c1dd4..a28125950f 100644 --- a/src/lib/datasrc/memory/memory_client.h +++ b/src/lib/datasrc/memory/memory_client.h @@ -15,6 +15,8 @@ #ifndef DATASRC_MEMORY_CLIENT_H #define DATASRC_MEMORY_CLIENT_H 1 +#include + #include #include #include @@ -62,7 +64,8 @@ public: /// This constructor internally involves resource allocation, and if /// it fails, a corresponding standard exception will be thrown. /// It never throws an exception otherwise. - InMemoryClient(isc::dns::RRClass rrclass); + InMemoryClient(util::MemorySegment& mem_sgmt, + isc::dns::RRClass rrclass); /// The destructor. ~InMemoryClient(); diff --git a/src/lib/datasrc/memory/tests/memory_client_unittest.cc b/src/lib/datasrc/memory/tests/memory_client_unittest.cc index b86a3bd05d..0290a28cb4 100644 --- a/src/lib/datasrc/memory/tests/memory_client_unittest.cc +++ b/src/lib/datasrc/memory/tests/memory_client_unittest.cc @@ -107,7 +107,7 @@ public: class MemoryClientTest : public ::testing::Test { protected: MemoryClientTest() : zclass_(RRClass::IN()), - client_(new InMemoryClient(zclass_)) + client_(new InMemoryClient(mem_sgmt_, zclass_)) {} ~MemoryClientTest() { if (client_ != NULL) {