| 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_
|
|
|