Move away from Singleton
Move from Singleton to LazyInstance for one-of classes in Shill.
This will allow them to be subclassed (mocked).
BUG=chromium-os:18986
TEST=Re-run unit tests
Change-Id: I83320694db5df1a263332315ad4f6955b107280b
Reviewed-on: http://gerrit.chromium.org/gerrit/5676
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/resolver.h b/resolver.h
index bbf188f..34b43a7 100644
--- a/resolver.h
+++ b/resolver.h
@@ -6,8 +6,8 @@
#define SHILL_RESOLVER_
#include <base/file_path.h>
+#include <base/lazy_instance.h>
#include <base/memory/ref_counted.h>
-#include <base/memory/singleton.h>
#include "shill/refptr_types.h"
@@ -17,6 +17,8 @@
// of an ipconfig into a "resolv.conf" formatted file.
class Resolver {
public:
+ virtual ~Resolver();
+
// Since this is a singleton, use Resolver::GetInstance()->Foo()
static Resolver *GetInstance();
@@ -28,13 +30,12 @@
// Remove any created domain name service file
bool ClearDNS();
- private:
- friend struct DefaultSingletonTraits<Resolver>;
- friend class ResolverTest;
-
- // Don't allow this object to be created
+ protected:
Resolver();
- ~Resolver();
+
+ private:
+ friend struct base::DefaultLazyInstanceTraits<Resolver>;
+ friend class ResolverTest;
FilePath path_;