anim3D/src/ProxiedObj.i3


Copyright (C) 1994, Digital Equipment Corp.
Digital Internal Use Only
                                                                           
       Created on Thu May 19 08:53:24 PDT 1994 by najork                   

A ProxiedObj.T is a Modula-3 object for which we want to have proxy, an object that mirrors this object in some way. The prototypical use is to connect Modula-3 objects to their counterparts in some embedded interpreted language (e.g. Obliq).

INTERFACE ProxiedObj;

TYPE
  T = OBJECT
    proxy : Proxy := NIL;
  METHODS
    makeProxy ();
  END;
Subtypes of ProxiedObj.T for which objects will be created before the embedded language has registered itself should override the makeProxy() method. (In Anim3D, these are all subtypes of Prop.Name.) The embedded language is responsible for invoking makeProxy on all objects with a NIL proxy field.

TYPE
  Proxy = OBJECT
    obj : REFANY;
  END;

END ProxiedObj.