Fan control: Add Manager class and fan data

Create the fan manager class.

Check in the fan zone data as a normal file.  In a future commit
this will be generated during the compile.  It is required now
for review and so everything compiles.

Change-Id: I5733b81db80c5e072abdbffd42e335fa46c61ef8
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
diff --git a/control/generated.cpp b/control/generated.cpp
new file mode 100644
index 0000000..e6ed723
--- /dev/null
+++ b/control/generated.cpp
@@ -0,0 +1,25 @@
+#include "manager.hpp"
+
+//This will eventually be generated by a script.
+
+using namespace phosphor::fan::control;
+
+const std::vector<ZoneGroup> Manager::_zoneLayouts
+{
+    //Air cooled
+    std::make_tuple(std::vector<Condition>{},
+                    std::vector<ZoneDefinition>{std::make_tuple(0, 10500,
+                                        std::vector<FanDefinition>{
+                                            std::make_tuple("/system/chassis/motherboard/fan0", std::vector<std::string>{"fan0"}),
+                                            std::make_tuple("/system/chassis/motherboard/fan1", std::vector<std::string>{"fan1"}),
+                                            std::make_tuple("/system/chassis/motherboard/fan2", std::vector<std::string>{"fan2"}),
+                                            std::make_tuple("/system/chassis/motherboard/fan3", std::vector<std::string>{"fan3"})})}),
+
+    //Water and air cooled
+    std::make_tuple(std::vector<Condition>{},
+                    std::vector<ZoneDefinition>{std::make_tuple(0, 10500,
+                                        std::vector<FanDefinition>{
+                                            std::make_tuple("/system/chassis/motherboard/fan0", std::vector<std::string>{"fan0"}),
+                                            std::make_tuple("/system/chassis/motherboard/fan2", std::vector<std::string>{"fan2"}),
+                                            std::make_tuple("/system/chassis/motherboard/fan3", std::vector<std::string>{"fan3"})})})
+};