X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=frontend%2Fconn.go;h=01486ff00869e413d3e11174c298e17aa748f144;hb=2804606f9f8dc5078c38580bac363b47eb638620;hp=10f7c7b5a2dd680ab158ea705e5250b2934dcce7;hpb=5bbdbf913be3152f60d556e4b20e1ddb2d66d0c0;p=safcm%2Fsafcm.git diff --git a/frontend/conn.go b/frontend/conn.go index 10f7c7b..01486ff 100644 --- a/frontend/conn.go +++ b/frontend/conn.go @@ -18,6 +18,8 @@ package frontend import ( + "fmt" + "ruderich.org/simon/safcm" "ruderich.org/simon/safcm/rpc" ) @@ -45,3 +47,37 @@ func (l *Loop) SendRecv(host Host, conn *rpc.Conn, msg safcm.Msg) ( return x, nil } } + +// HostInfoMsg sends a MsgInfoReq for host via conn and returns the resulting +// MsgInfoResp. +func (l *Loop) HostInfoMsg(host Host, conn *rpc.Conn, req safcm.MsgInfoReq) ( + safcm.MsgInfoResp, error) { + + var empty safcm.MsgInfoResp + x, err := l.SendRecv(host, conn, req) + if err != nil { + return empty, err + } + resp, ok := x.(safcm.MsgInfoResp) + if !ok { + return empty, fmt.Errorf("unexpected response %v", x) + } + return resp, nil +} + +// HostSyncMsg sends a MsgSyncReq for host via conn and returns the resulting +// MsgSyncResp. +func (l *Loop) HostSyncMsg(host Host, conn *rpc.Conn, req safcm.MsgSyncReq) ( + safcm.MsgSyncResp, error) { + + var empty safcm.MsgSyncResp + x, err := l.SendRecv(host, conn, req) + if err != nil { + return empty, err + } + resp, ok := x.(safcm.MsgSyncResp) + if !ok { + return empty, fmt.Errorf("unexpected response %v", x) + } + return resp, nil +}