Codecs.txt 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. MODULE EncCodecs;
  2. (* THIS IS TEXT COPY OF Codecs.odc *)
  3. (* DO NOT EDIT *)
  4. (*
  5. A. V. Shiryaev, 2012.10
  6. *)
  7. TYPE
  8. Encoding* = ARRAY 32 OF CHAR;
  9. Directory* = POINTER TO ABSTRACT RECORD END;
  10. Encoder* = POINTER TO ABSTRACT RECORD END;
  11. Decoder* = POINTER TO ABSTRACT RECORD END;
  12. VAR
  13. dir-: Directory;
  14. (* Directory *)
  15. PROCEDURE (dir: Directory) NewEncoder* (enc: Encoding): Encoder, NEW, ABSTRACT;
  16. PROCEDURE (dir: Directory) NewDecoder* (enc: Encoding): Decoder, NEW, ABSTRACT;
  17. (* Encoder *)
  18. (* pre: fR >= 0, fLen >= 0, tW >= 0 *)
  19. (* post:
  20. fLen = 0: ok
  21. fLen > 0: error at f[fR]
  22. *)
  23. PROCEDURE (e: Encoder) Encode* (IN f: ARRAY OF CHAR; VAR fR, fLen: INTEGER; VAR t: ARRAY OF SHORTCHAR; VAR tW: INTEGER), NEW, ABSTRACT;
  24. (* Decoder *)
  25. (* pre: d not in error state, fR >= 0, fLen >= 0, tW >= 0 *)
  26. (* post:
  27. fLen = 0: ok, state: d has state
  28. fLen > 0: error at f[fR]
  29. *)
  30. PROCEDURE (d: Decoder) Decode* (IN f: ARRAY OF SHORTCHAR; VAR fR, fLen: INTEGER; VAR t: ARRAY OF CHAR; VAR tW: INTEGER; OUT state: BOOLEAN), NEW, ABSTRACT;
  31. PROCEDURE (d: Decoder) Reset*, NEW, ABSTRACT;
  32. PROCEDURE SetDir* (d: Directory);
  33. BEGIN
  34. dir := d
  35. END SetDir;
  36. END EncCodecs.