1// Copyright 2014 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#ifndef MOJO_EXAMPLES_PEPPER_CONTAINER_APP_INTERFACE_LIST_H_
6#define MOJO_EXAMPLES_PEPPER_CONTAINER_APP_INTERFACE_LIST_H_
7
8#include <map>
9#include <string>
10
11#include "base/macros.h"
12
13namespace mojo {
14namespace examples {
15
16// InterfaceList maintains the mapping from Pepper interface names to
17// interface pointers.
18class InterfaceList {
19 public:
20  InterfaceList();
21  ~InterfaceList();
22
23  static InterfaceList* GetInstance();
24
25  const void* GetBrowserInterface(const std::string& name) const;
26
27 private:
28  typedef std::map<std::string, const void*> NameToInterfaceMap;
29  NameToInterfaceMap browser_interfaces_;
30
31  DISALLOW_COPY_AND_ASSIGN(InterfaceList);
32};
33
34}  // namespace examples
35}  // namespace mojo
36
37#endif  // MOJO_EXAMPLES_PEPPER_CONTAINER_APP_INTERFACE_LIST_H_
38