arnaucube
arnaucube/go-dvotePublic Self-hosted repository
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}