• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "tools/ipc_fuzzer/message_lib/message_names.h"
6 #include "tools/ipc_fuzzer/message_lib/all_messages.h"
7 
8 #include "ipc/ipc_message_null_macros.h"
9 #undef IPC_MESSAGE_DECL
10 #define IPC_MESSAGE_DECL(kind, type, name, in, out, ilist, olist) \
11   names.Add(static_cast<uint32>(name::ID), #name);
12 
PopulateIpcMessageNames(ipc_fuzzer::MessageNames & names)13 void PopulateIpcMessageNames(ipc_fuzzer::MessageNames& names) {
14 #include "tools/ipc_fuzzer/message_lib/all_messages.h"
15 }
16 
17 namespace ipc_fuzzer {
18 
19 // static
20 MessageNames* MessageNames::all_names_ = NULL;
21 
MessageNames()22 MessageNames::MessageNames() {
23 }
24 
~MessageNames()25 MessageNames::~MessageNames() {
26 }
27 
28 // static
GetInstance()29 MessageNames* MessageNames::GetInstance() {
30   if (!all_names_) {
31     all_names_ = new MessageNames();
32     PopulateIpcMessageNames(*all_names_);
33   }
34   return all_names_;
35 }
36 
37 }  // namespace ipc_fuzzer
38