10529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 20529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Use of this source code is governed by a BSD-style license that can be 30529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// found in the LICENSE file. 40529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 50529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#ifndef PPAPI_NACL_IRT_MANIFEST_SERVICE_H_ 60529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#define PPAPI_NACL_IRT_MANIFEST_SERVICE_H_ 70529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 80529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "base/macros.h" 90529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "base/memory/ref_counted.h" 100529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "base/memory/scoped_ptr.h" 110529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 120529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochnamespace base { 130529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochclass MessageLoopProxy; 140529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochclass WaitableEvent; 150529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch} // namespace base 160529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 170529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochnamespace IPC { 180529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochstruct ChannelHandle; 190529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochclass ChannelProxy; 200529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochclass SyncMessageFilter; 210529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch} // namespace IPC 220529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 230529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochnamespace ppapi { 240529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 250529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochclass ManifestService { 260529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch public: 270529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch ManifestService(const IPC::ChannelHandle& handle, 280529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch scoped_refptr<base::MessageLoopProxy> io_message_loop, 290529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch base::WaitableEvent* shutdown_event); 300529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch ~ManifestService(); 310529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 320529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch void StartupInitializationComplete(); 33010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) bool OpenResource(const char* file, int* fd); 340529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 350529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch private: 360529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch scoped_ptr<IPC::ChannelProxy> channel_; 370529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch scoped_refptr<IPC::SyncMessageFilter> filter_; 380529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 390529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch DISALLOW_COPY_AND_ASSIGN(ManifestService); 400529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch}; 410529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 420529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch} // namespace ppapi 430529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 440529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#endif // PPAPI_NACL_IRT_MANIFEST_SERVICE_H_ 45