1 Mojo Public C++ API 2 =================== 3 4 This directory contains C++ language bindings for the Mojo Public API. 5 6 A number of subdirectories provide wrappers for the lower-level C APIs (in 7 subdirectories of the same name, under mojo/public/c/). Typically, these 8 wrappers provide increased convenience and/or type-safety. 9 10 Other subdirectories provide support (static) libraries of various sorts. In 11 this case, the organization is to have the public interface for the library in 12 defined in header files in the subdirectory itself and the implementation of the 13 library at a lower level, under a lib (sub)subdirectory. A developer should be 14 able to substitute their own implementation of any such support library, and 15 expect other support libraries, which may depend on that library, to work 16 properly. 17 18 Bindings 19 -------- 20 21 The bindings/ subdirectory contains a support (static) library needed by the 22 code generated by the bindings generator tool (in mojo/public/tools/bindings/), 23 which translates Mojo IDL (.mojom) files into idiomatic C++ (among other 24 languages). 25 26 This library depends on the Environment library. 27 28 Environment 29 ----------- 30 31 The environment/ subdirectory contains a support (static) library that 32 represents shared state needed to support the Bindings and GLES2 libraries. 33 34 This library depends on the Utility library. 35 36 37 GLES2 38 ----- 39 40 The gles2/ subdirectory contains C++ wrappers (and some additional helpers) of 41 the API defined in mojo/public/c/gles2/ (which provides access to GLES2). 42 43 These wrappers depend on the Environment library. 44 45 Shell 46 ----- 47 48 The shell/ subdirectory contains a support (static) library that aids in writing 49 Mojo applications and interacting with the Shell service. 50 51 System 52 ------ 53 54 The system/ subdirectory contains C++ wrappers (and some additional helpers) of 55 the API defined in mojo/public/c/system/, which defines the basic, "core" API, 56 especially used to communicate with Mojo services. 57 58 Test Support 59 ------------ 60 61 The test_support/ subdirectory contains C++ wrappers of the test-only API 62 defined in mojo/public/c/test_support/. It is not meant for general use by Mojo 63 applications. 64 65 Utility 66 ------- 67 68 The utility/ subdirectory contains a support (static) library that provides 69 various basic functionality. Most notably, it provides an implementation of a 70 RunLoop based on MojoWaitMany() that applications may use as the basis for 71 asynchronous message processing. 72