About COID


Features


Screenshot of an example class declaration decorated with coid keywords:

header file screenshot


Features in development


XML Gateway - COID served C++ classes will be usable directly as backend servers for AJAX technique applications. Currently there's a simple http service that is used for http tunneling. We are extending this service and adding metastream capabilities to coid/comm library, for COID to serve as a gateway for XMLHttpRequest calls from browsers. No special handling required by your code, a XMLHttpRequest call will get translated directly to a method call.

In-browser console - Using the AJAX technique, a web application that connects to the coid server and allows to inspect the server and services, create and destroy managed objects, call methods of running services and so on.

Interfaces
- in addition to default 'interface' exposed by the class (all its methods form the default class interface), a specific interface (a subset) can be implemented by the service and requested from a client. The interface is defined as a virtual base class, extended with COID-required keywords. Applications or other services can bind to various different objects using one interface client class, given that the objects implement the interface.

Access specifiers - a client may be given different interface in dependence on authentification or application specific processing. For example, client that authentifies itself as anonymous can be given interface with only the read-only methods (const methods in class) present. The methods that modify the object (non-const ones) are replaced with universal method that either returns or throws ersDENIED error object. This works for both direct and remote access. What methods are accessible in the interface can be determined not only by the const-ness, but also by custom flags. Generally, method is accessible in the client if the authentified client has all flags set that are specified as required for accessing the method.