diff options
Diffstat (limited to 'appl/acme/buff.m')
| -rw-r--r-- | appl/acme/buff.m | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/appl/acme/buff.m b/appl/acme/buff.m new file mode 100644 index 00000000..606d9900 --- /dev/null +++ b/appl/acme/buff.m @@ -0,0 +1,34 @@ +Bufferm : module { + PATH : con "/dis/acme/buff.dis"; + + init : fn(mods : ref Dat->Mods); + + newbuffer : fn() : ref Buffer; + + Buffer : adt { + nc : int; + c : ref Dat->Astring; # cache + cnc : int; # bytes in cache + cmax : int; # size of allocated cache + cq : int; # position of cache + cdirty : int; # cache needs to be written + cbi : int; # index of cache Block + bl : array of ref Dat->Block; # array of blocks + nbl : int; # number of blocks + + insert : fn(b : self ref Buffer, n : int, s : string, m : int); + delete : fn(b : self ref Buffer, n : int, m : int); + # replace : fn(b : self ref Buffer, q0 : int, q1 : int, s : string, n : int); + loadx : fn(b : self ref Buffer, n : int, fd : ref Sys->FD) : int; + read : fn(b : self ref Buffer, n : int, s : ref Dat->Astring, p, m : int); + close : fn(b : self ref Buffer); + reset : fn(b : self ref Buffer); + sizecache : fn(b : self ref Buffer, n : int); + flush : fn(b : self ref Buffer); + setcache : fn(b : self ref Buffer, n : int); + addblock : fn(b : self ref Buffer, n : int, m : int); + delblock : fn(b : self ref Buffer, n : int); + }; + + loadfile: fn(fd: ref Sys->FD, q1: int, fun: int, b: ref Bufferm->Buffer, f: ref Filem->File): int; +}; |
