Commit 19f5659f authored by inphi's avatar inphi

remove RPCRes storage from StaticMethodHandler

parent 2b34a1ee
...@@ -20,7 +20,7 @@ type RPCMethodHandler interface { ...@@ -20,7 +20,7 @@ type RPCMethodHandler interface {
} }
type StaticMethodHandler struct { type StaticMethodHandler struct {
cache *RPCRes cache interface{}
m sync.RWMutex m sync.RWMutex
} }
...@@ -29,17 +29,20 @@ func (e *StaticMethodHandler) GetRPCMethod(ctx context.Context, req *RPCReq) (*R ...@@ -29,17 +29,20 @@ func (e *StaticMethodHandler) GetRPCMethod(ctx context.Context, req *RPCReq) (*R
cache := e.cache cache := e.cache
e.m.RUnlock() e.m.RUnlock()
if cache != nil { if cache == nil {
cache = copyRes(cache) return nil, nil
cache.ID = req.ID
} }
return cache, nil return &RPCRes{
JSONRPC: req.JSONRPC,
Result: cache,
ID: req.ID,
}, nil
} }
func (e *StaticMethodHandler) PutRPCMethod(ctx context.Context, req *RPCReq, res *RPCRes) error { func (e *StaticMethodHandler) PutRPCMethod(ctx context.Context, req *RPCReq, res *RPCRes) error {
e.m.Lock() e.m.Lock()
if e.cache == nil { if e.cache == nil {
e.cache = copyRes(res) e.cache = res.Result
} }
e.m.Unlock() e.m.Unlock()
return nil return nil
...@@ -367,26 +370,6 @@ func makeRPCRes(req *RPCReq, result interface{}) *RPCRes { ...@@ -367,26 +370,6 @@ func makeRPCRes(req *RPCReq, result interface{}) *RPCRes {
} }
} }
func copyResError(err *RPCErr) *RPCErr {
if err == nil {
return nil
}
return &RPCErr{
Code: err.Code,
Message: err.Message,
HTTPErrorCode: err.HTTPErrorCode,
}
}
func copyRes(res *RPCRes) *RPCRes {
return &RPCRes{
JSONRPC: res.JSONRPC,
Result: res.Result,
Error: copyResError(res.Error),
ID: res.ID,
}
}
func getImmutableRPCResponse(ctx context.Context, cache Cache, key string, req *RPCReq) (*RPCRes, error) { func getImmutableRPCResponse(ctx context.Context, cache Cache, key string, req *RPCReq) (*RPCRes, error) {
val, err := cache.Get(ctx, key) val, err := cache.Get(ctx, key)
if err != nil { if err != nil {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment