From: Mukund Sivaraman Date: Wed, 3 Oct 2012 05:19:01 +0000 (+0530) Subject: [2206] Make constructors protected X-Git-Tag: trac2351_base~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=94656c03d42d0339c79d10be8ccedaea6da55028;p=thirdparty%2Fkea.git [2206] Make constructors protected --- diff --git a/src/lib/datasrc/memory/zone_table_segment.h b/src/lib/datasrc/memory/zone_table_segment.h index 85050196f5..ca7b9d2f22 100644 --- a/src/lib/datasrc/memory/zone_table_segment.h +++ b/src/lib/datasrc/memory/zone_table_segment.h @@ -58,6 +58,14 @@ private: /// management implementation. Derived classes would implement the /// interface for specific memory-implementation behavior. class ZoneTableSegment { +protected: + /// \brief Protected constructor + /// + /// An instance implementing this interface is expected to be + /// created by the factory method (\c create()), so this constructor + /// is protected. + ZoneTableSegment() + {} public: /// \brief Destructor virtual ~ZoneTableSegment() {} diff --git a/src/lib/datasrc/memory/zone_table_segment_local.h b/src/lib/datasrc/memory/zone_table_segment_local.h index 6d823a7d8e..45a5b5fd16 100644 --- a/src/lib/datasrc/memory/zone_table_segment_local.h +++ b/src/lib/datasrc/memory/zone_table_segment_local.h @@ -28,6 +28,17 @@ namespace memory { /// MemorySegmentLocal based ZoneTableSegment. Please see the /// ZoneTableSegment class documentation for usage. class ZoneTableSegmentLocal : public ZoneTableSegment { + // This is so that ZoneTableSegmentLocal can be instantiated from + // ZoneTableSegment::create(). + friend class ZoneTableSegment; +protected: + /// \brief Protected constructor + /// + /// Instances are expected to be created by the factory method + /// (\c ZoneTableSegment::create()), so this constructor is + /// protected. + ZoneTableSegmentLocal() + {} public: /// \brief Destructor virtual ~ZoneTableSegmentLocal() {}