Added a stub Event message handler in the scheduler driver.

Review: https://reviews.apache.org/r/36493


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/d52da5d0
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/d52da5d0
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/d52da5d0

Branch: refs/heads/master
Commit: d52da5d0b047412c93323d764b0d2183ddb99dfb
Parents: 6bd6257
Author: Benjamin Mahler <[email protected]>
Authored: Tue Jul 14 17:57:02 2015 -0700
Committer: Benjamin Mahler <[email protected]>
Committed: Thu Jul 16 16:11:43 2015 -0700

----------------------------------------------------------------------
 src/sched/sched.cpp | 100 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 99 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/d52da5d0/src/sched/sched.cpp
----------------------------------------------------------------------
diff --git a/src/sched/sched.cpp b/src/sched/sched.cpp
index e372a15..cd80f29 100644
--- a/src/sched/sched.cpp
+++ b/src/sched/sched.cpp
@@ -93,7 +93,12 @@ using namespace mesos::internal;
 using namespace mesos::internal::master;
 using namespace mesos::scheduler;
 
-using namespace process;
+using process::Clock;
+using process::DispatchEvent;
+using process::Future;
+using process::MessageEvent;
+using process::Process;
+using process::UPID;
 
 using std::map;
 using std::string;
@@ -165,6 +170,8 @@ public:
 protected:
   virtual void initialize()
   {
+    install<Event>(&SchedulerProcess::receive);
+
     // TODO(benh): Get access to flags so that we can decide whether
     // or not to make ZooKeeper verbose.
     install<FrameworkRegisteredMessage>(
@@ -420,6 +427,97 @@ protected:
     }
   }
 
+  void drop(const Event& event, const string& message)
+  {
+    // TODO(bmahler): Increment a metric.
+
+    // NOTE: The << operator for 'event.type()' from
+    // type_utils.hpp does not resolve here.
+    LOG(WARNING) << "Dropping "
+                 << mesos::scheduler::Event_Type_Name(event.type())
+                 << ": " << message;
+  }
+
+  void receive(const UPID& from, const Event& event)
+  {
+    switch (event.type()) {
+      case Event::SUBSCRIBED: {
+        if (!event.has_subscribed()) {
+          drop(event, "Expecting 'subscribed' to be present");
+          break;
+        }
+
+        drop(event, "Unimplemented");
+        break;
+      }
+
+      case Event::OFFERS: {
+        if (!event.has_offers()) {
+          drop(event, "Expecting 'offers' to be present");
+          break;
+        }
+
+        drop(event, "Unimplemented");
+        break;
+      }
+
+      case Event::RESCIND: {
+        if (!event.has_rescind()) {
+          drop(event, "Expecting 'rescind' to be present");
+          break;
+        }
+
+        drop(event, "Unimplemented");
+        break;
+      }
+
+      case Event::UPDATE: {
+        if (!event.has_update()) {
+          drop(event, "Expecting 'update' to be present");
+          break;
+        }
+
+        drop(event, "Unimplemented");
+        break;
+      }
+
+      case Event::MESSAGE: {
+        if (!event.has_message()) {
+          drop(event, "Expecting 'message' to be present");
+          break;
+        }
+
+        drop(event, "Unimplemented");
+        break;
+      }
+
+      case Event::FAILURE: {
+        if (!event.has_failure()) {
+          drop(event, "Expecting 'failure' to be present");
+          break;
+        }
+
+        drop(event, "Unimplemented");
+        break;
+      }
+
+      case Event::ERROR: {
+        if (!event.has_error()) {
+          drop(event, "Expecting 'error' to be present");
+          break;
+        }
+
+        drop(event, "Unimplemented");
+        break;
+      }
+
+      default: {
+        drop(event, "Unknown event");
+        break;
+      }
+    }
+  }
+
   void registered(
       const UPID& from,
       const FrameworkID& frameworkId,

Reply via email to