MODULE MUIDataspace;

(* $StackChk- $NilChk- $RangeChk- $CaseChk- $OvflChk- $ReturnChk- $ClearVars- *)

(* This module is generated by "GenMuiO" © 1995 by Albert Weinert *)

IMPORT
  clf := Classface,
  e := Exec,
  m := Mui,
  RootClass,
  SuperClass := MUISemaphore,
  I := Intuition;

CONST
  name *= m.cDataspace;

TYPE
  Class     *= UNTRACED POINTER TO ClassDesc;
  ClassDesc *= RECORD( SuperClass.ClassDesc ) END;

VAR
  class * : I.IClassPtr;

   PROCEDURE ( VAR c : ClassDesc ) mAdd*( VAR msg : m.pDataspaceAdd ):e.APTR;
     BEGIN
       msg.msg.methodID := m.mDataspaceAdd;
       RETURN clf.DoSuperMethodA( c.class, c.object, msg )
     END mAdd;

   PROCEDURE ( VAR c : ClassDesc ) mClear*( VAR msg : m.pDataspaceClear ):e.APTR;
     BEGIN
       msg.msg.methodID := m.mDataspaceClear;
       RETURN clf.DoSuperMethodA( c.class, c.object, msg )
     END mClear;

   PROCEDURE ( VAR c : ClassDesc ) mMerge*( VAR msg : m.pDataspaceMerge ):e.APTR;
     BEGIN
       msg.msg.methodID := m.mDataspaceMerge;
       RETURN clf.DoSuperMethodA( c.class, c.object, msg )
     END mMerge;

   PROCEDURE ( VAR c : ClassDesc ) mReadIFF*( VAR msg : m.pDataspaceReadIFF ):e.APTR;
     BEGIN
       msg.msg.methodID := m.mDataspaceReadIFF;
       RETURN clf.DoSuperMethodA( c.class, c.object, msg )
     END mReadIFF;

   PROCEDURE ( VAR c : ClassDesc ) mRemove*( VAR msg : m.pDataspaceRemove ):e.APTR;
     BEGIN
       msg.msg.methodID := m.mDataspaceRemove;
       RETURN clf.DoSuperMethodA( c.class, c.object, msg )
     END mRemove;

   PROCEDURE ( VAR c : ClassDesc ) mWriteIFF*( VAR msg : m.pDataspaceWriteIFF ):e.APTR;
     BEGIN
       msg.msg.methodID := m.mDataspaceWriteIFF;
       RETURN clf.DoSuperMethodA( c.class, c.object, msg )
     END mWriteIFF;

  PROCEDURE Dispatch * ( cl : I.IClassPtr; obj : I.ObjectPtr; msg : I.MsgPtr ):e.APTR;
    VAR c : Class;
    BEGIN
      IF msg.methodID # I.new THEN
        c := RootClass.BoopsiToObj( cl, obj )(Class);
      END;

      CASE msg.methodID OF
        | m.mDataspaceAdd             : RETURN c.mAdd( msg^(m.pDataspaceAdd) );
        | m.mDataspaceClear           : RETURN c.mClear( msg^(m.pDataspaceClear) );
        | m.mDataspaceMerge           : RETURN c.mMerge( msg^(m.pDataspaceMerge) );
        | m.mDataspaceReadIFF         : RETURN c.mReadIFF( msg^(m.pDataspaceReadIFF) );
        | m.mDataspaceRemove          : RETURN c.mRemove( msg^(m.pDataspaceRemove) );
        | m.mDataspaceWriteIFF        : RETURN c.mWriteIFF( msg^(m.pDataspaceWriteIFF) );
      ELSE
        RETURN SuperClass.Dispatch( cl, obj, msg );
      END;
    END Dispatch;

BEGIN
  class := m.GetClass( name );
  IF class = NIL THEN HALT( 205 ) END; (* Error : Object not Found *)
CLOSE
  IF class # NIL THEN m.FreeClass( class ) END;
END MUIDataspace.
