This example is modeled after the Orbix grid example with
the following OMG IDL, and will only work if you configured
ILU with support for OMG IDL (--enable-omg-idl-support),
support for Python, and support for the OMG IIOP protocol
(--enable-corba-iiop):

// grid.idl

#pragma ID grid "IDL:grid:1.0"

// IDL defintion of a 2-D grid (in row major order):

interface grid {
	readonly attribute short height;  // height of the grid
	readonly attribute short width;   // width of the grid

	// set the element [n,m] of the grid, to value:
	void set(in short n, in short m, in long value);

	// return element [n,m] of the grid:
	long get(in short n, in short m);
};

Or, in ISL:

INTERFACE grid;

TYPE grid = OBJECT OPTIONAL TYPEID "IDL:grid:1.0"
  METHODS
    ilu--prefix-idlAttribute--get-height () : SHORT INTEGER,
    ilu--prefix-idlAttribute--get-width () : SHORT INTEGER,
    set (n : SHORT INTEGER, m : SHORT INTEGER, value : INTEGER),
    get (n : SHORT INTEGER, m : SHORT INTEGER) : INTEGER
  END;

To use, first stub the OMG IDL file with the Python stubber:

    % python-stubber grid.idl
    client stubs for interface "grid" to grid.py ...
    server stubs for interface "grid" to grid__skel.py ...
    % 

Then run the server:

    % python gridServer.py &
    [2] 15873
    % IOR:000000000000001C49444...6E6B2F00
    %

To try it, run the client:

    % python gridClient.py IOR:000000000000001C49444...6E6B2F00
    width = 10, height = 10
    set of (1,1) succeeded
    %
