go-dvote/net/net.go
net/net.goRaw
1package net
2
3import (
4 "errors"
5)
6
7type Transport interface {
8 Listen() error
9 Init(c string) error
10}
11
12type TransportID int
13
14const (
15 HTTP TransportID = iota + 1
16 PubSub
17)
18
19func TransportIDFromString(i string) TransportID {
20 switch i {
21 case "PubSub" :
22 return PubSub
23 case "HTTP":
24 return HTTP
25 default:
26 return -1
27 }
28}
29
30func Init(t TransportID) (Transport, error) {
31 switch t {
32 case PubSub :
33 p := new(PubSubHandle)
34 p.Init("vocdoni_pubsub_testing")
35 return p, nil
36 case HTTP :
37 h := new(HttpHandle)
38 h.Init("8080/submit")
39 return h, nil
40 default:
41 return nil, errors.New("Bad transport type specification")
42 }
43}