/* * * User: David RENE * Date: 25/04/2007 * Time: 16:20 * (c) Calexium * */ read system/muscle.anubis read system/data_io.anubis read tools/basis.anubis read calexium_lib/CXM_message_constants.anubis public define Int32 _CXM_ERROR = 0. public define Int32 _CXM_OK = 1. public define Int32 _CXM_UNKNOW_CMD = 2. public define One send_ACK_error ( RWStream conn, Int32 cmd_id )= with err_msg = message(_CXM_ACK), forget(add_int32(err_msg, "_CMD", cmd_id)); forget(add_int32(err_msg, "_STATUS", _CXM_ERROR)); forget(send_message_by_Stream(conn, err_msg)) . public define One send_ACK_ok ( RWStream conn, Int32 cmd_id )= with ok_msg = message(_CXM_ACK), forget(add_int32(ok_msg, "_CMD", cmd_id)); forget(add_int32(ok_msg, "_STATUS", _CXM_OK)); forget(send_message_by_Stream(conn, ok_msg)) . public define Maybe(Message) wait_for_reply ( RWStream conn ) = if unflatten_message(make_data_io(weaken(conn))) is { failure then sleep(1); wait_for_reply(conn), success(msg) then success(msg) }.