summaryrefslogtreecommitdiffstats
path: root/media/base/state_matrix.cc
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-04 23:14:18 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-04 23:14:18 +0000
commitd69814028ebe5ec50ccedb7e64cba7e452371099 (patch)
treea817b23ad70777aa7850d2b2aadbffa4ad1f95a9 /media/base/state_matrix.cc
parent95f3674d76b15309d64fc5b11449863bbec08f1a (diff)
downloadchromium_src-d69814028ebe5ec50ccedb7e64cba7e452371099.zip
chromium_src-d69814028ebe5ec50ccedb7e64cba7e452371099.tar.gz
chromium_src-d69814028ebe5ec50ccedb7e64cba7e452371099.tar.bz2
Initial StateMatrix idea using composition and void*
BUG=none TEST=media_unittests Review URL: http://codereview.chromium.org/3416001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65128 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/base/state_matrix.cc')
-rw-r--r--media/base/state_matrix.cc26
1 files changed, 26 insertions, 0 deletions
diff --git a/media/base/state_matrix.cc b/media/base/state_matrix.cc
new file mode 100644
index 0000000..f0ef07b
--- /dev/null
+++ b/media/base/state_matrix.cc
@@ -0,0 +1,26 @@
+// Copyright (c) 2010 The Chromium 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 "media/base/state_matrix.h"
+
+#include "base/stl_util-inl.h"
+
+namespace media {
+
+StateMatrix::StateMatrix() {
+}
+
+StateMatrix::~StateMatrix() {
+ STLDeleteValues(&states_);
+}
+
+bool StateMatrix::IsStateDefined(int state) {
+ return states_.find(state) != states_.end();
+}
+
+int StateMatrix::ExecuteHandler(void* instance, int state) {
+ return states_.find(state)->second->ExecuteHandler(instance);
+}
+
+} // namespace media