1 // Copyright (c) 2011 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_CPP_MODULE_EMBEDDER_H_ 6 #define PPAPI_CPP_MODULE_EMBEDDER_H_ 7 8 #include "ppapi/c/ppp.h" 9 10 /// @file 11 /// This file defines the APIs for creating a Module object. 12 namespace pp { 13 14 class Module; 15 16 /// This function creates the <code>pp::Module</code> object associated with 17 /// this module. 18 /// 19 /// <strong>Note: </strong>NaCl module developers must implement this function. 20 /// 21 /// @return Returns the module if it was successfully created, or NULL on 22 /// failure. Upon failure, the module will be unloaded. 23 pp::Module* CreateModule(); 24 25 /// Sets the get interface function in the broker process. 26 /// 27 /// This function is only relevant when you're using the PPB_Broker interface 28 /// in a trusted native plugin. In this case, you may need to implement 29 /// PPP_GetInterface when the plugin is loaded in the unsandboxed process. 30 /// Normally the C++ wrappers implement PPP_GetInterface for you but this 31 /// doesn't work in the context of the broker process. 32 // 33 /// So if you need to implement PPP_* interfaces in the broker process, call 34 /// this function in your PPP_InitializeBroker implementation which will set 35 /// up the given function as implementing PPP_GetInterface. 36 void SetBrokerGetInterfaceFunc(PP_GetInterface_Func broker_get_interface); 37 38 } // namespace pp 39 40 #endif // PPAPI_CPP_MODULE_EMBEDDER_H_ 41