_EXTENDING C++ FOR DISTRIBUTED APPLICATIONS_ by Patrick Suel Example 1 (a) class Flight { public: ILB_ENTRY int Passengers; // data member subject to notification }; (b) class Flight { public: // these are generated functions int Passengers(); // an accessor function (to get value) void Passengers(int); // a mutator function (to set value) private: int _Passengers; // the real data member is private }; Example 2: class Airline { public: ILB_USES Airport *Departure; // Departing airport ILB_USES Airport *Arrival; // Arriving airport ILB_HAS Flight *Flight {0, ...}; // Flight with // cardinality unlimited }; Example 3: ILB_SMART(Airport) Departure (); ILB_SMART(Airport) Departure ( ILB_SMART(Airport) target); Example 4: (a) class Airline { public: // ...other data members... ILB_DERIVED int Passengers; // passenger count int countPassengers(); // evaluation function }; (b) int ILB_EVALUATE(Airline, Passengers) () { return owner().countPassengers(); } Example 5: void Line::Transfer(char* new_co_name) { Airline *new_co = Airline::get(new_co_name); // Get the company if(new_co) { cut(); // cut the Airline. new_co->Lines().cons(this); // paste Line into the new Airline. } }