case q of
QApt s => (OpenSSL.writeInt (bio, 0);
OpenSSL.writeString (bio, s))
+ | QCron s => (OpenSSL.writeInt (bio, 1);
+ OpenSSL.writeString (bio, s))
+ | QFtp s => (OpenSSL.writeInt (bio, 2);
+ OpenSSL.writeString (bio, s))
fun recvQuery bio =
case OpenSSL.readInt bio of
SOME n =>
(case n of
0 => Option.map QApt (OpenSSL.readString bio)
+ | 1 => Option.map QCron (OpenSSL.readString bio)
+ | 2 => Option.map QFtp (OpenSSL.readString bio)
| _ => NONE)
| NONE => NONE