property/src/MProperty.m3


Copyright (C) 1994, Digital Equipment Corp.

MODULE MProperty EXPORTS MProperty, MPropertyF;

IMPORT Thread, PropertyF;

REVEAL
  Set = Set_public BRANDED OBJECT
  OVERRIDES
    put := Put; get := Get; remove := Remove;
  END;

PROCEDURE New(): Set=
  BEGIN
    RETURN NEW(Set, m := NEW(Thread.Mutex));
  END New;

PROCEDURE Put(ps: Set; r: REFANY) =
  BEGIN
    LOCK ps.m DO PropertyF.Put(ps, r); END;
  END Put;

PROCEDURE Remove(ps: Set; tc: CARDINAL) =
  BEGIN
    LOCK ps.m DO PropertyF.Remove(ps, tc) END;
  END Remove;

PROCEDURE Get(ps: Set; tc: CARDINAL): REFANY =
  BEGIN
    LOCK ps.m DO RETURN PropertyF.Get(ps,tc); END;
  END Get;

PROCEDURE RemoveSub(ps: Set; tc: CARDINAL) =
  BEGIN
    LOCK ps.m DO PropertyF.RemoveSub(ps, tc) END;
  END RemoveSub;

PROCEDURE GetSub(ps: Set; tc: CARDINAL): REFANY =
  BEGIN
    LOCK ps.m DO RETURN PropertyF.GetSub(ps,tc); END;
  END GetSub;

BEGIN
END MProperty.