Software Development Manual
July 2004
Thank you for your interest in the Pandora Development Engine. This development manual will provide you with a detailed guide on programming within the Pandora environment, including coverage of all application programming interfaces and standards that are present in the system. If you have any questions about the documentation or wish to alert us to any errors, write to documentation@rocklyte.com with your comments. The manual is designed to be printable, so you may print out each section for reading in hard-copy format, or you can choose to read it with your favourite HTML viewer if you prefer.
The Pandora Engine is a multi-platform development kit that provides an 'end-to-end' development solution. This means that it can do everything from simple tasks such as allocating memory, to managing files, graphics, windows, gadgets, audio and running scripts. It provides all of this in a platform neutral design structure, so Pandora based programs will work on any Pandora supported platform (e.g. Windows, Linux) with a simple recompile for the target platform. The Pandora Engine is fully object oriented and easily extendible. The Linux version also includes its own graphics engine so that you can create full-screen programs and games without needing X11.
Pandora is significantly different to other multi-platform environments as it uses a 100% pure implementation of Modular Object Orientation - MOO. Much unlike Java and other OO development platforms, the Pandora Engine is not a language, but a large set of shared libraries. There is also no restriction on what language you wish to use when writing a Pandora based program, so long as the necessary "include files" exist for it. Because it is modular the system is fully scalable, making it possible to downgrade the system to work on small embedded devices, or upgraded for bigger and more powerful computer systems.
The "engine" behind Pandora is known as the Object Kernel, which is a central interface for managing all of the objects and other allocations within the system. The object kernel is not a kernel in the traditional sense - it is actually designed to extend the functionality of the many traditional, procedural kernels already available. For example, it can be said that the object kernel extends the functionality of the Linux kernel by providing MOO features to application programs. A more detailed explanation of MOO and object management is provided in the section Modular Object Orientation Explained.
The following diagram illustrates where the Pandora Engine sits in relation to the rest of the system environment. Because Pandora can run on standard system kernels (e.g. Unix, QNX, Linux) you will notice that it sits in the middle of the diagram. This is an important note as Pandora is typically implemented as a "middle-tier" architecture, the only exception being embedded systems where it may run as a low-level interface. There are many system kernels and software drivers in the existing market, so in many cases low-level implementations of the Pandora Engine are not necessary.
As a Pandora developer you will be working solely within the developer space shown in the diagram, either creating the necessary modules, scripts and classes to generate an object oriented program, or you can choose to write a straight executable program. If you are creating a truly modular and object-oriented piece of software then you will need to work within Athene, which means you will need to write object scripts to generate the program interface. If you are creating an executable then you can work with or without Athene as the end-result will be a stand-alone program.
In order to get a full installation working you will require: The correct Pandora binaries for your development system; a language compiler; and the manual that you are reading now. Note that only C/C++ header files are officially supported, so if you choose a different language you may need to seek third party support for it. For more information on the installation process, refer to the Installation Procedure section of this manual.
It is important to note that even if you are an experienced developer, learning how to use the Pandora Engine may take some time unless you already have some working knowledge of the methodologies used to create it. If you are using Pandora to create programs for Athene, be prepared to reserve a few extra days for self-education as the program development process is significantly different to other existing systems. Make sure that you read this manual thoroughly, and remember to check the technical documents if you need a more thorough understanding of how any part of the system works. Also, please note that you don't have to do it alone - if you have trouble, join the Pandora Engine's developer mailing list to seek help and discuss your experiences with the system.
Next: Modular Object Orientation Explained