RGC

RGC is an object-oriented library based on  GLib which handles  RPC communications between a server and one or more clients, on local or remote machines. It uses a simple binary protocol, RBP, to achieve good performance and low overhead (the critical parts of the library are  RT-safe). On the server side it can support other protocols (as  OSC and  D-BUS) to better integrate with existing programs.

Architecture

RGC is split (and packaged) into two parts: rgc_server and rgc_client. They are built from the src/client and src/server directories. The src/common directory contains some shared functionality and some shortcuts for frequently used GLib stuff.

The src/connection implements both the client-side and the server-side communications protocols.

Protocols

The main protocol used in communicating between the server and the client is RBP. Every protocol is implemented by subclassing RgcProtocolServer and RgcProtocolClient. Note that not every protocol implements all the methods declared here - the missing ones will be simply ignored.

RGC Object Design