examples: remove samples with private traits

Change-Id: Icd89ae8db2d73c398ab779748a35eeb35617bbe4
Reviewed-on: https://weave-review.googlesource.com/3270
Reviewed-by: Paul Westbrook <pwestbro@google.com>
diff --git a/examples/daemon/oven/oven.cc b/examples/daemon/oven/oven.cc
deleted file mode 100644
index f92c838..0000000
--- a/examples/daemon/oven/oven.cc
+++ /dev/null
@@ -1,290 +0,0 @@
-// Copyright 2015 The Weave Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "examples/daemon/common/daemon.h"
-
-#include <weave/device.h>
-#include <weave/provider/task_runner.h>
-
-#include <base/bind.h>
-#include <base/memory/weak_ptr.h>
-
-namespace {
-// Time for sensor temperature to match setting temperature
-const double kWarmUpTime = 60.0;
-// Oven max temp
-const double kMaxTemp = 300.0;
-// Oven min temp
-const double kMinTemp = 20.0;
-
-const char kTraits[] = R"({
-  "temperatureSetting": {
-    "commands": {
-      "setConfig": {
-        "minimalRole": "user",
-        "parameters": {
-          "units": {
-            "type": "string"
-          },
-          "tempSetting": {
-            "type": "number"
-          }
-        },
-        "errors": ["tempOutOfRange", "unsupportedUnits"]
-      }
-    },
-    "state": {
-      "supportedUnits": {
-        "type": "array",
-        "items": {
-          "type": "string",
-          "enum": [ "celsius", "fahrenheit", "kelvin" ]
-        },
-        "minItems": 1,
-        "uniqueItems": true,
-        "isRequired": true
-      },
-      "units": {
-        "type": "string",
-        "enum": [ "celsius", "fahrenheit", "kelvin" ],
-        "isRequired": true
-      },
-      "tempSetting": {
-        "type": "number",
-        "isRequired": true
-      },
-      "maxTempSetting": {
-        "type": "number",
-        "isRequired": true
-      },
-      "minTempSetting": {
-        "type": "number",
-        "isRequired": true
-      }
-    }
-  },
-  "temperatureSensor": {
-    "commands": {
-      "setConfig": {
-        "minimalRole": "user",
-        "parameters": {
-          "units": {
-            "type": "string"
-          }
-        },
-        "errors": ["unsupportedUnits"]
-      }
-    },
-    "state": {
-      "supportedUnits": {
-        "type": "array",
-        "items": {
-          "type": "string",
-          "enum": [
-            "celsius",
-            "fahrenheit",
-            "kelvin"
-          ]
-        },
-        "minItems": 1,
-        "uniqueItems": true,
-        "isRequired": true
-      },
-      "units": {
-        "type": "string",
-        "enum": [ "celsius", "fahrenheit", "kelvin" ],
-        "isRequired": true
-      },
-      "value": {
-        "type": "number",
-        "isRequired": true
-      }
-    }
-  },
-  "brightness": {
-    "commands": {
-      "setConfig": {
-        "minimalRole": "user",
-        "parameters": {
-          "brightness": {
-            "type": "integer",
-            "minimum": 0,
-            "maximum": 100
-          }
-        }
-      }
-    },
-    "state": {
-      "brightness": {
-        "type": "integer",
-        "isRequired": true,
-        "minimum": 0,
-        "maximum": 100
-      }
-    }
-  }
-})";
-
-const char kComponent[] = "oven";
-}  // anonymous namespace
-
-// OvenHandler is a virtual oven example
-// It implements the following commands from traits:
-// - temperatureSetting: sets the temperature for the oven
-// - brightness: sets the brightness of the oven light
-// It exposes the following states from traits:
-// - temperatureSetting: temperature setting for the oven
-// - temperatureSensor: current oven temperature
-// - brightness: current oven brightness
-class OvenHandler {
- public:
-  OvenHandler(weave::provider::TaskRunner* task_runner)
-      : task_runner_{task_runner} {}
-
-  void Register(weave::Device* device) {
-    device_ = device;
-
-    device->AddTraitDefinitionsFromJson(kTraits);
-    CHECK(device->AddComponent(
-        kComponent, {"temperatureSetting", "temperatureSensor", "brightness"},
-        nullptr));
-
-    UpdateOvenState();
-
-    device->AddCommandHandler(kComponent, "temperatureSetting.setConfig",
-                              base::Bind(&OvenHandler::OnSetTempCommand,
-                                         weak_ptr_factory_.GetWeakPtr()));
-
-    device->AddCommandHandler(kComponent, "brightness.setConfig",
-                              base::Bind(&OvenHandler::OnSetBrightnessCommand,
-                                         weak_ptr_factory_.GetWeakPtr()));
-  }
-
- private:
-  void OnSetTempCommand(const std::weak_ptr<weave::Command>& command) {
-    auto cmd = command.lock();
-    if (!cmd)
-      return;
-    LOG(INFO) << "received command: " << cmd->GetName();
-
-    const auto& params = cmd->GetParameters();
-    std::string units;
-    double temp;
-
-    if (params.GetString("units", &units) &&
-        params.GetDouble("tempSetting", &temp)) {
-      units_ = units;
-      target_temperature_ = temp;
-
-      UpdateOvenState();
-
-      cmd->Complete({}, nullptr);
-      LOG(INFO) << cmd->GetName() << " updated oven, matching temp";
-
-      if (target_temperature_ != current_temperature_ && !is_match_ticking_) {
-        double tickIncrement =
-            ((target_temperature_ - current_temperature_) / kWarmUpTime);
-        DoTick(tickIncrement);
-      }
-      return;
-    }
-
-    weave::ErrorPtr error;
-    weave::Error::AddTo(&error, FROM_HERE, "invalid_parameter_value",
-                        "Invalid parameters");
-    cmd->Abort(error.get(), nullptr);
-  }
-
-  void OnSetBrightnessCommand(const std::weak_ptr<weave::Command>& command) {
-    auto cmd = command.lock();
-    if (!cmd)
-      return;
-    LOG(INFO) << "received command: " << cmd->GetName();
-
-    const auto& params = cmd->GetParameters();
-
-    int brightness;
-    if (params.GetInteger("brightness", &brightness)) {
-      brightness_ = brightness;
-
-      UpdateOvenState();
-
-      cmd->Complete({}, nullptr);
-      return;
-    }
-
-    weave::ErrorPtr error;
-    weave::Error::AddTo(&error, FROM_HERE, "invalid_parameter_value",
-                        "Invalid parameters");
-    cmd->Abort(error.get(), nullptr);
-  }
-
-  void UpdateOvenState() {
-    base::DictionaryValue state;
-    base::ListValue supportedUnits;
-    supportedUnits.AppendStrings({"celsius"});
-
-    state.SetString("temperatureSensor.units", units_);
-    state.SetDouble("temperatureSensor.value", current_temperature_);
-    state.Set("temperatureSensor.supportedUnits",
-              supportedUnits.CreateDeepCopy());
-
-    state.SetString("temperatureSetting.units", units_);
-    state.SetDouble("temperatureSetting.tempSetting", target_temperature_);
-    state.Set("temperatureSetting.supportedUnits",
-              supportedUnits.CreateDeepCopy());
-    state.SetDouble("temperatureSetting.maxTempSetting", kMaxTemp);
-    state.SetDouble("temperatureSetting.minTempSetting", kMinTemp);
-
-    state.SetInteger("brightness.brightness", brightness_);
-
-    device_->SetStateProperties(kComponent, state, nullptr);
-  }
-
-  void DoTick(double tickIncrement) {
-    LOG(INFO) << "Oven matching temp tick";
-
-    if (std::fabs(target_temperature_ - current_temperature_) >=
-        tickIncrement) {
-      is_match_ticking_ = true;
-      current_temperature_ += tickIncrement;
-      UpdateOvenState();
-      task_runner_->PostDelayedTask(
-          FROM_HERE, base::Bind(&OvenHandler::DoTick,
-                                weak_ptr_factory_.GetWeakPtr(), tickIncrement),
-          base::TimeDelta::FromSeconds(1));
-      return;
-    }
-
-    is_match_ticking_ = false;
-    current_temperature_ = target_temperature_;
-    UpdateOvenState();
-
-    LOG(INFO) << "Oven temp matched";
-  }
-
-  weave::Device* device_{nullptr};
-  weave::provider::TaskRunner* task_runner_{nullptr};
-
-  std::string units_ = "celsius";
-  double target_temperature_ = 0.0;
-  double current_temperature_ = 0.0;
-  int brightness_ = 0;
-  bool is_match_ticking_ = false;
-
-  base::WeakPtrFactory<OvenHandler> weak_ptr_factory_{this};
-};
-
-int main(int argc, char** argv) {
-  Daemon::Options opts;
-  if (!opts.Parse(argc, argv)) {
-    Daemon::Options::ShowUsage(argv[0]);
-    return 1;
-  }
-  Daemon daemon{opts};
-  OvenHandler handler{daemon.GetTaskRunner()};
-  handler.Register(daemon.GetDevice());
-  daemon.Run();
-  return 0;
-}
diff --git a/examples/daemon/speaker/speaker.cc b/examples/daemon/speaker/speaker.cc
deleted file mode 100644
index 56da840..0000000
--- a/examples/daemon/speaker/speaker.cc
+++ /dev/null
@@ -1,178 +0,0 @@
-// Copyright 2015 The Weave Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "examples/daemon/common/daemon.h"
-
-#include <weave/device.h>
-
-#include <base/bind.h>
-#include <base/memory/weak_ptr.h>
-
-namespace {
-
-const char kTraits[] = R"({
-  "onOff": {
-    "commands": {
-      "setConfig": {
-        "minimalRole": "user",
-        "parameters": {
-          "state": {
-            "type": "string",
-            "enum": [ "on", "off" ]
-          }
-        }
-      }
-    },
-    "state": {
-      "state": {
-        "type": "string",
-        "enum": [ "on", "off" ],
-        "isRequired": true
-      }
-    }
-  },
-  "volume": {
-    "commands": {
-      "setConfig": {
-        "minimalRole": "user",
-        "parameters": {
-          "volume": {
-            "type": "integer",
-            "minimum": 0,
-            "maximum": 100
-          },
-          "isMuted": { "type": "boolean" }
-        }
-      }
-    },
-    "state": {
-      "isMuted": {
-        "type": "boolean",
-        "isRequired": true
-      },
-      "volume": {
-        "type": "integer",
-        "minimum": 0,
-        "maximum": 100,
-        "isRequired": true
-      }
-    }
-  }
-})";
-
-const char kComponent[] = "speaker";
-
-}  // anonymous namespace
-
-// SpeakerHandler is a command handler example that shows
-// how to handle commands for a Weave speaker.
-class SpeakerHandler {
- public:
-  SpeakerHandler() = default;
-  void Register(weave::Device* device) {
-    device_ = device;
-
-    device->AddTraitDefinitionsFromJson(kTraits);
-    CHECK(device->AddComponent(kComponent, {"onOff", "volume"}, nullptr));
-    UpdateSpeakerState();
-
-    device->AddCommandHandler(kComponent, "onOff.setConfig",
-                              base::Bind(&SpeakerHandler::OnOnOffSetConfig,
-                                         weak_ptr_factory_.GetWeakPtr()));
-    device->AddCommandHandler(kComponent, "volume.setConfig",
-                              base::Bind(&SpeakerHandler::OnVolumeSetConfig,
-                                         weak_ptr_factory_.GetWeakPtr()));
-  }
-
- private:
-  void OnVolumeSetConfig(const std::weak_ptr<weave::Command>& command) {
-    auto cmd = command.lock();
-    if (!cmd)
-      return;
-    LOG(INFO) << "received command: " << cmd->GetName();
-
-    const auto& params = cmd->GetParameters();
-    // Handle volume parameter
-    int32_t volume_value = 0;
-    if (params.GetInteger("volume", &volume_value)) {
-      // Display this command in terminal.
-      LOG(INFO) << cmd->GetName() << " volume: " << volume_value;
-
-      if (volume_value_ != volume_value) {
-        volume_value_ = volume_value;
-        UpdateSpeakerState();
-      }
-      cmd->Complete({}, nullptr);
-      return;
-    }
-
-    // Handle isMuted parameter
-    bool isMuted_status = false;
-    if (params.GetBoolean("isMuted", &isMuted_status)) {
-      // Display this command in terminal.
-      LOG(INFO) << cmd->GetName() << " is "
-                << (isMuted_status ? "muted" : "not muted");
-
-      if (isMuted_status_ != isMuted_status) {
-        isMuted_status_ = isMuted_status;
-
-        LOG(INFO) << "Speaker is now: "
-                  << (isMuted_status ? "muted" : "not muted");
-        UpdateSpeakerState();
-      }
-    }
-
-    cmd->Complete({}, nullptr);
-  }
-
-  void OnOnOffSetConfig(const std::weak_ptr<weave::Command>& command) {
-    auto cmd = command.lock();
-    if (!cmd)
-      return;
-    LOG(INFO) << "received command: " << cmd->GetName();
-    const auto& params = cmd->GetParameters();
-    std::string requested_state;
-    if (params.GetString("state", &requested_state)) {
-      LOG(INFO) << cmd->GetName() << " state: " << requested_state;
-
-      bool new_speaker_status = requested_state == "on";
-      if (new_speaker_status != speaker_status_) {
-        speaker_status_ = new_speaker_status;
-
-        LOG(INFO) << "Speaker is now: " << (speaker_status_ ? "ON" : "OFF");
-        UpdateSpeakerState();
-      }
-    }
-    cmd->Complete({}, nullptr);
-  }
-
-  void UpdateSpeakerState() {
-    base::DictionaryValue state;
-    state.SetString("onOff.state", speaker_status_ ? "on" : "off");
-    state.SetBoolean("volume.isMuted", isMuted_status_);
-    state.SetInteger("volume.volume", volume_value_);
-    device_->SetStateProperties(kComponent, state, nullptr);
-  }
-
-  weave::Device* device_{nullptr};
-
-  // Simulate the state of the speaker.
-  bool speaker_status_;
-  bool isMuted_status_;
-  int32_t volume_value_;
-  base::WeakPtrFactory<SpeakerHandler> weak_ptr_factory_{this};
-};
-
-int main(int argc, char** argv) {
-  Daemon::Options opts;
-  if (!opts.Parse(argc, argv)) {
-    Daemon::Options::ShowUsage(argv[0]);
-    return 1;
-  }
-  Daemon daemon{opts};
-  SpeakerHandler speaker;
-  speaker.Register(daemon.GetDevice());
-  daemon.Run();
-  return 0;
-}
diff --git a/examples/examples.mk b/examples/examples.mk
index 555322c..cb64e2b 100644
--- a/examples/examples.mk
+++ b/examples/examples.mk
@@ -21,9 +21,7 @@
 	examples/daemon/ledflasher/ledflasher.cc \
 	examples/daemon/light/light.cc \
 	examples/daemon/lock/lock.cc \
-	examples/daemon/oven/oven.cc \
-	examples/daemon/sample/sample.cc \
-	examples/daemon/speaker/speaker.cc
+	examples/daemon/sample/sample.cc
 
 examples_daemon_obj_files := $(EXAMPLES_DAEMON_SRC_FILES:%.cc=out/$(BUILD_MODE)/%.o)
 
@@ -62,16 +60,10 @@
 out/$(BUILD_MODE)/weave_daemon_lock : out/$(BUILD_MODE)/examples/daemon/lock/lock.o $(example_daemon_deps)
 	$(CXX) -o $@ $^ $(CFLAGS) $(example_daemon_common_flags)
 
-out/$(BUILD_MODE)/weave_daemon_oven : out/$(BUILD_MODE)/examples/daemon/oven/oven.o $(example_daemon_deps)
-	$(CXX) -o $@ $^ $(CFLAGS) $(example_daemon_common_flags)
-
 out/$(BUILD_MODE)/weave_daemon_sample : out/$(BUILD_MODE)/examples/daemon/sample/sample.o $(example_daemon_deps)
 	$(CXX) -o $@ $^ $(CFLAGS) $(example_daemon_common_flags)
 
-out/$(BUILD_MODE)/weave_daemon_speaker : out/$(BUILD_MODE)/examples/daemon/speaker/speaker.o $(example_daemon_deps)
-	$(CXX) -o $@ $^ $(CFLAGS) $(example_daemon_common_flags)
-
-all-examples : out/$(BUILD_MODE)/weave_daemon_ledflasher out/$(BUILD_MODE)/weave_daemon_light out/$(BUILD_MODE)/weave_daemon_lock out/$(BUILD_MODE)/weave_daemon_oven out/$(BUILD_MODE)/weave_daemon_sample out/$(BUILD_MODE)/weave_daemon_speaker
+all-examples : out/$(BUILD_MODE)/weave_daemon_ledflasher out/$(BUILD_MODE)/weave_daemon_light out/$(BUILD_MODE)/weave_daemon_lock out/$(BUILD_MODE)/weave_daemon_sample
 
 .PHONY : all-examples