-
Notifications
You must be signed in to change notification settings - Fork 47
/
cvm_infer_server.go
52 lines (43 loc) · 1.03 KB
/
cvm_infer_server.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package main
import (
"io/ioutil"
"net/http"
//"sync"
"github.com/CortexFoundation/inference"
//"github.com/CortexFoundation/CortexTheseus/rpc"
)
//var rpcClient *rpc.Client
//var simpleCache sync.Map
func handler(w http.ResponseWriter, r *http.Request) {
if r.Method != "POST" {
RespErrorText(w, ErrRequestMethodNotPost)
return
}
body, rerr := ioutil.ReadAll(r.Body)
if rerr != nil {
RespErrorText(w, ErrRequestBodyRead)
return
}
switch inference.RetriveType(body) {
case inference.INFER_BY_IH:
var iw inference.IHWork
if err := iw.UnmarshalJSON(body); err != nil {
RespErrorText(w, ErrDataParse)
}
infoHashHandler(w, &iw)
case inference.INFER_BY_IC:
var iw inference.ICWork
if err := iw.UnmarshalJSON(body); err != nil {
RespErrorText(w, ErrDataParse)
}
inputContentHandler(w, &iw)
case inference.GAS_BY_H:
var iw inference.GasWork
if err := iw.UnmarshalJSON(body); err != nil {
RespErrorText(w, ErrDataParse)
}
gasHandler(w, &iw)
default:
RespErrorText(w, ErrInvalidInferTaskType)
}
}