Resources | developer.brewmp.com Resources | developer.brewmp.com

Developer

resources

QIDLC Compiler Help

Base version:

Brew MP 1.0.4

Qidlc is a command-line executable used to implement remote objects for Brew MP. This document discusses how to use the compiler, including command-line options.

An object is called remote if its methods can be invoked from outside the domain it resides in. A domain may be the operating system's kernel, a user process, a mobile device, or a programming language. In each case, the user of a remote object does not need to know where the object is hosted, or what language the object is implemented in. Instead, the user calls methods on a stub object generated by qidlc. The stub marshals the input into a shared wire format, and ships the data to the domain where the object is hosted. The host domain implements a skel object, also generated by qidlc, that unmarshals the data, and invokes the requested method on the native object. This process is illustrated below.

To generate stubs and skels, qidlc requires that the interface to an object is strictly defined. The syntax for defining an object interface is called IDL. Qidlc compiles IDL files into headers, stubs, skels, and a Component Information File (CIF). The generated header can be used to implement the native object, and for users to call methods on the object. The stub, skel and CIF are compiled into a module. The CIF tells the operating system how to load the stub and skel. When an object is passed outside the host domain, the operating system automatically wraps the native object with a stub and skel.

For details on how IDL is mapped to the supported implementation languages, C, C++, and Lua, see the Qualcomm Interface Definition Language Reference on the Brew MP website.