Reader : ReaderWriter ->
 PtIn : < ... >

 RDataPacket >>
  From : String
  Route : Array : String
  Pt : DataPacket
 ;
;

Writer : ReaderWriter ->
 PtOut : < ... >
 DevIOCtl : < ... >

 WDataPacket >>
  To : String
  Pt : DataPacket
 ;

 RW_CMD_* :
  FLUSH
  SHUTDOWN
  RESET
  IOCTL
 ;
;

/* * */

!ReaderWriter : ProgramComponent ->
 Connect : < ... >
 Disconnect : < ... >

 DataPacket >>
  Header, Message : I|F|S
 ;

 RW_CMD_* :
  PING
  . : WAIT
 ;

 *_ENDIAN : 
  LITTLE
  . : BIG
 ;
;

!ProgramComponent ->
 Init : < ... >
 Stop : < ... >
;

/* * */

## StreamReader : Reader -> {*}
## SocketConnector : Reader, Writer -> {*}
