Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Unified Diff: tools/ipc_fuzzer/message_lib/message_names.h

Issue 105083002: IPC fuzzer: create message_lib library. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments. Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/ipc_fuzzer/message_lib/message_lib.gyp ('k') | tools/ipc_fuzzer/message_lib/message_names.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/ipc_fuzzer/message_lib/message_names.h
diff --git a/tools/ipc_fuzzer/message_lib/message_names.h b/tools/ipc_fuzzer/message_lib/message_names.h
new file mode 100644
index 0000000000000000000000000000000000000000..7ad47cc6b565fd3084c8d3f2fb2841865da1e256
--- /dev/null
+++ b/tools/ipc_fuzzer/message_lib/message_names.h
@@ -0,0 +1,59 @@
+// Copyright 2013 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.
+
+#ifndef TOOLS_IPC_FUZZER_MESSAGE_LIB_MESSAGE_NAMES_H_
+#define TOOLS_IPC_FUZZER_MESSAGE_LIB_MESSAGE_NAMES_H_
+
+#include <map>
+#include <string>
+#include "base/basictypes.h"
+#include "base/logging.h"
+
+namespace ipc_fuzzer {
+
+class MessageNames {
+ public:
+ MessageNames();
+ ~MessageNames();
+ static MessageNames* GetInstance();
+
+ void Add(uint32 type, const std::string& name) {
+ name_map_[type] = name;
+ type_map_[name] = type;
+ }
+
+ bool TypeExists(uint32 type) {
+ return name_map_.find(type) != name_map_.end();
+ }
+
+ bool NameExists(const std::string& name) {
+ return type_map_.find(name) != type_map_.end();
+ }
+
+ const std::string& TypeToName(uint32 type) {
+ TypeToNameMap::iterator it = name_map_.find(type);
+ CHECK(it != name_map_.end());
+ return it->second;
+ }
+
+ uint32 NameToType(const std::string& name) {
+ NameToTypeMap::iterator it = type_map_.find(name);
+ CHECK(it != type_map_.end());
+ return it->second;
+ }
+
+ private:
+ typedef std::map<uint32, std::string> TypeToNameMap;
+ typedef std::map<std::string, uint32> NameToTypeMap;
+ TypeToNameMap name_map_;
+ NameToTypeMap type_map_;
+
+ static MessageNames* all_names_;
+
+ DISALLOW_COPY_AND_ASSIGN(MessageNames);
+};
+
+} // namespace ipc_fuzzer
+
+#endif // TOOLS_IPC_FUZZER_MESSAGE_LIB_MESSAGE_NAMES_H_
« no previous file with comments | « tools/ipc_fuzzer/message_lib/message_lib.gyp ('k') | tools/ipc_fuzzer/message_lib/message_names.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698