The Cairo Public Interface defines how programs invoke Cairo, and what services Cairo must provide through those portions of the API. These other programs range from GUI display/control programs for user interface, to scripts and methods that are attached to Casbah objects stored in the Casbah Virtual Namespace.
Each distinct connection to a Cairo server must get its own instance of CairoAdapter (the main Cairo Public Interface class). Each thread inside a Cairo server must have its own instance of CairoAdapter (note that this should be the same instance as the one used for the connection that the thread is servicing.)
Most of the methods in Cairo Public Interface accept a path argument. This path argument always takes the same format. path must be either a CaString (e.g. /user/john/To Do List, a CaList (e.g. [user, john, To Do List]), or a handle returned by a prior call to get().