Roman Klochkov <kalimehtar@mail.ru>
Hive is the framework for a client-server application with persistent object storage on server side.
This package provides functions, that will be used both on client and server sides of the hive application.
This library provides read and write for network streams. The connection is unreliable. I know, that TCP is considered reliable, but in fact, when network infrastucture drops part of packets, it may recover too slow. So, Hive uses keepalive packets and tools to control read timeout.
procedure
( write/flush dataout)→void?
data:any/cout:output-port?
procedure
( read/timeout [intimeout])→any
This library provide serializable objects. It differs from racket/serialize in that it doesn’t deep copy of the object. It rather replaces all field values, that references to other object s to special ref structure. This way the library may be used to send object by network or save to file without saving all linked objects.
#:extra-constructor-namemake-object)
#:extra-constructor-namemake-ref)typename:symbol?
procedure
( find-by-ref idobjects)→(or/c#fobject? )
#f
#<object>
syntax
( struct/serialize namerest...)
procedure
( serializable? obj)→boolean?
obj:any/c
obj:serializable?
'(#s(ref object 3) 5)
procedure
( deserialize dataderef)→any/c
data:any/c
name - user name, any unicode characters allowed;
password - user password;
role - user role. Hive accepts 'admin and 'user, but application may invent it’s own;
online - #t, iff user is logged on and sending keepalive packets.