1effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// found in the LICENSE file. 4effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 5effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#ifndef MOJO_EXAMPLES_PEPPER_CONTAINER_APP_INTERFACE_LIST_H_ 6effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#define MOJO_EXAMPLES_PEPPER_CONTAINER_APP_INTERFACE_LIST_H_ 7effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 8effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include <map> 9effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include <string> 10effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 11effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "base/macros.h" 12effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 13effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochnamespace mojo { 14effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochnamespace examples { 15effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 16effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// InterfaceList maintains the mapping from Pepper interface names to 17effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// interface pointers. 18effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochclass InterfaceList { 19effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch public: 20effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch InterfaceList(); 21effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch ~InterfaceList(); 22effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 23effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch static InterfaceList* GetInstance(); 24effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 25effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch const void* GetBrowserInterface(const std::string& name) const; 26effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 27effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch private: 28effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch typedef std::map<std::string, const void*> NameToInterfaceMap; 29effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch NameToInterfaceMap browser_interfaces_; 30effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 31effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch DISALLOW_COPY_AND_ASSIGN(InterfaceList); 32effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch}; 33effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 34effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} // namespace examples 35effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} // namespace mojo 36effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 37effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#endif // MOJO_EXAMPLES_PEPPER_CONTAINER_APP_INTERFACE_LIST_H_ 38