From 2c1324656bf24df4c7be08f4a56fdf7549b0ff74 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Sat, 27 Feb 2016 07:03:31 +0000 Subject: [PATCH] support local app reqRes --- proxy/local_app_conn.go | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/proxy/local_app_conn.go b/proxy/local_app_conn.go index 001c81eb..22c94f25 100644 --- a/proxy/local_app_conn.go +++ b/proxy/local_app_conn.go @@ -31,60 +31,55 @@ func (app *localAppConn) Error() error { } func (app *localAppConn) EchoAsync(msg string) *tmspcli.ReqRes { - app.Callback( + return app.callback( tmsp.RequestEcho(msg), tmsp.ResponseEcho(msg), ) - return nil // TODO maybe create a ReqRes } func (app *localAppConn) FlushAsync() *tmspcli.ReqRes { // Do nothing - return nil // TODO maybe create a ReqRes + return NewReqRes(tmsp.RequestFlush(), nil) } func (app *localAppConn) SetOptionAsync(key string, value string) *tmspcli.ReqRes { app.mtx.Lock() log := app.Application.SetOption(key, value) app.mtx.Unlock() - app.Callback( + return app.callback( tmsp.RequestSetOption(key, value), tmsp.ResponseSetOption(log), ) - return nil // TODO maybe create a ReqRes } func (app *localAppConn) AppendTxAsync(tx []byte) *tmspcli.ReqRes { app.mtx.Lock() code, result, log := app.Application.AppendTx(tx) app.mtx.Unlock() - app.Callback( + return app.callback( tmsp.RequestAppendTx(tx), tmsp.ResponseAppendTx(code, result, log), ) - return nil // TODO maybe create a ReqRes } func (app *localAppConn) CheckTxAsync(tx []byte) *tmspcli.ReqRes { app.mtx.Lock() code, result, log := app.Application.CheckTx(tx) app.mtx.Unlock() - app.Callback( + return app.callback( tmsp.RequestCheckTx(tx), tmsp.ResponseCheckTx(code, result, log), ) - return nil // TODO maybe create a ReqRes } func (app *localAppConn) CommitAsync() *tmspcli.ReqRes { app.mtx.Lock() hash, log := app.Application.Commit() app.mtx.Unlock() - app.Callback( + return app.callback( tmsp.RequestCommit(), tmsp.ResponseCommit(hash, log), ) - return nil // TODO maybe create a ReqRes } func (app *localAppConn) InfoSync() (info string, err error) { @@ -104,3 +99,17 @@ func (app *localAppConn) CommitSync() (hash []byte, log string, err error) { app.mtx.Unlock() return hash, log, nil } + +//------------------------------------------------------- + +func (app *localAppConn) callback(req *tmsp.Request, res *tmsp.Response) *tmspcli.ReqRes { + app.Callback(req, res) + return NewReqRes(req, res) +} + +func NewReqRes(req *tmsp.Request, res *tmsp.Response) *tmspcli.ReqRes { + reqRes := tmspcli.NewReqRes(req) + reqRes.Response = res + reqRes.SetDone() + return reqRes +}