shill: Add Technology class

Move Technology enum out into its own class, and create static
functions for converting between these and strings.

BUG=chromium-os:20114
TEST=Rerun unit tests

Change-Id: I9e3aea44e5d0b14d844328f023b01d7f8ea04c42
Reviewed-on: http://gerrit.chromium.org/gerrit/8204
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/device.h b/device.h
index 7574e4e..17e7775 100644
--- a/device.h
+++ b/device.h
@@ -18,6 +18,7 @@
 #include "shill/refptr_types.h"
 #include "shill/service.h"
 #include "shill/shill_event.h"
+#include "shill/technology.h"
 
 namespace shill {
 
@@ -34,15 +35,6 @@
 // this class.
 class Device : public base::RefCounted<Device> {
  public:
-  enum Technology {
-    kEthernet,
-    kWifi,
-    kCellular,
-    kBlacklisted,
-    kUnknown,
-    kNumTechnologies
-  };
-
   // A constructor for the Device object
   Device(ControlInterface *control_interface,
          EventDispatcher *dispatcher,
@@ -60,7 +52,7 @@
   virtual void Stop();
 
   // Base method always returns false.
-  virtual bool TechnologyIs(const Technology type) const;
+  virtual bool TechnologyIs(const Technology::Identifier type) const;
 
   virtual void LinkEvent(unsigned flags, unsigned change);