Home | History | Annotate | Download | only in nacl_irt
      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 #include "base/synchronization/lock.h"
     12 
     13 namespace base {
     14 class MessageLoopProxy;
     15 class WaitableEvent;
     16 }  // namespace base
     17 
     18 namespace IPC {
     19 struct ChannelHandle;
     20 class ChannelProxy;
     21 class SyncMessageFilter;
     22 }  // namespace IPC
     23 
     24 namespace ppapi {
     25 
     26 class ManifestService {
     27  public:
     28   ManifestService(const IPC::ChannelHandle& handle,
     29                   scoped_refptr<base::MessageLoopProxy> io_message_loop,
     30                   base::WaitableEvent* shutdown_event);
     31   ~ManifestService();
     32 
     33   void StartupInitializationComplete();
     34   bool OpenResource(const char* file, int* fd);
     35 
     36  private:
     37   scoped_ptr<IPC::ChannelProxy> channel_;
     38   scoped_refptr<IPC::SyncMessageFilter> filter_;
     39 
     40   base::Lock open_resource_lock_;
     41 
     42   DISALLOW_COPY_AND_ASSIGN(ManifestService);
     43 };
     44 
     45 }  // namespace ppapi
     46 
     47 #endif  // PPAPI_NACL_IRT_MANIFEST_SERVICE_H_
     48