XCOM is a system designed to support component based programming in Linux. Although the system primarily targets Linux other POSIX supporting operating systems and Win32 class operating systems are planned to be supported.
The following design goals are followed in making the current system:
The current version of XCOM have the following features:
The IDL compiler generates C++ code which conforms to the binary standard of XCOM. When the generated code is compiled its binary layout conforms to the XCOMs binary format. Most notably, other component systems uses virtual functions to implement this kind of functionality, but in XCOM a mix of templates and inheritance is used to provide a similar mechanism without using virtual functions because the mechanisms used for implementing virtual function mechanism may change from compiler to compiler. Also the binary format rules of the XCOM is designed to be not overly C++ oriented and not prohibit implementing remoting in the future.
The generated C++ code permits the use of the system without delving to the binary details, such as reference counting and memory management. In most of the scenarios all of these can be handled behind the scenes.
Error reporting via exceptions are also supported natively provided only the IDL defined exception objects are allowed to propagate through interface methods. Inheritance between exception types are also supported in order to support complex usage scenarios.
The following are possible enhancements that may be implemented in future versions:
My name is Emir Uner. The project started its life as my Master's Thesis project. Over it a lot of features added and enhancements made.
David K. Turner has helped with the platform independence code, written component implementation helper templates and macros, and nearly all of the present documentation.