netobjrt/src/AtomPkl.m3


Copyright (C) 1994, Digital Equipment Corp.
ListPkl.m3
 Atom Pickle.Special 

MODULE AtomPkl;

IMPORT Atom, Thread, Rd, Wr, Pickle;

PROCEDURE AtomPklWrite (
    <*UNUSED*> sp: Pickle.Special;
    r: REFANY; writer: Pickle.Writer)
    RAISES { Pickle.Error, Wr.Failure, Thread.Alerted } =
  BEGIN
    writer.write(Atom.ToText(r));
  END AtomPklWrite;

PROCEDURE AtomPklRead (
    <*UNUSED*> sp: Pickle.Special;
    reader: Pickle.Reader;
    <*UNUSED*> id: Pickle.RefID) : REFANY
    RAISES { Pickle.Error, Rd.EndOfFile, Rd.Failure, Thread.Alerted } =
  BEGIN
    RETURN Atom.FromText(reader.read());
  END AtomPklRead;

BEGIN
  Pickle.RegisterSpecial (NEW (Pickle.Special, sc := TYPECODE (Atom.T),
    write := AtomPklWrite,
    read  := AtomPklRead));
END AtomPkl.