[Oberon] two technical questions

Thomas Frey thomas.frey at alumni.ethz.ch
Thu Feb 6 12:52:46 CET 2014


>
> have 2 questions regarding active oberon:
>
> 1. I suppose built-in procedure AWAIT( some condition ) checks
> periodically if condition is not met. What is the checking time period?
> Can I change it?
>
> It is re-evaluated everytime an EXCLUSIVE block is left. There is no
time-based component.


> 2. What is the proper way to write/read whole RECORDs to file at once
> through Streams.Writer Streams.Reader ?
> I tried this but it generates exceptions:
>
> TYPE
> something = RECORD
>  a : ARRAY 30 OF CHAR;
>  b : LONGINT;
> END;
>
> ArrayOfChar = POINTER TO ARRAY OF CHAR;
>
>
> PROCEDURE test;
> VAR
>  writer : Streams.Writer;
>  reader : Streams.Reader;
>  s : something;
>  b : ArrayOfChar;
> BEGIN
> ... want to write and read s to file
>
> b := SYSTEM.VAL(ArrayOfChar, ADDRESSOF(s) );
> writer.Bytes( b^, 0, SIZEOF(something)  );
>
> ... and then
> reader.Bytes( b^, 0, SIZEOF(something) );
>
> If you persist the data I would suggest to explicitly serialize the fields
(for forward compatibility). If you need it only temporarily your solution
should be fine.

--Thomas


>
> zdenek
>
>
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.inf.ethz.ch/pipermail/oberon/attachments/20140206/7e0f692c/attachment.html 


More information about the Oberon mailing list