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 PPAPI_NACL_IRT_MANIFEST_SERVICE_H_ 6#define PPAPI_NACL_IRT_MANIFEST_SERVICE_H_ 7 8#include "base/macros.h" 9#include "base/memory/ref_counted.h" 10#include "base/memory/scoped_ptr.h" 11 12namespace base { 13class MessageLoopProxy; 14class WaitableEvent; 15} // namespace base 16 17namespace IPC { 18struct ChannelHandle; 19class ChannelProxy; 20class SyncMessageFilter; 21} // namespace IPC 22 23namespace ppapi { 24 25class ManifestService { 26 public: 27 ManifestService(const IPC::ChannelHandle& handle, 28 scoped_refptr<base::MessageLoopProxy> io_message_loop, 29 base::WaitableEvent* shutdown_event); 30 ~ManifestService(); 31 32 void StartupInitializationComplete(); 33 bool OpenResource(const char* file, int* fd); 34 35 private: 36 scoped_ptr<IPC::ChannelProxy> channel_; 37 scoped_refptr<IPC::SyncMessageFilter> filter_; 38 39 DISALLOW_COPY_AND_ASSIGN(ManifestService); 40}; 41 42} // namespace ppapi 43 44#endif // PPAPI_NACL_IRT_MANIFEST_SERVICE_H_ 45