39 lines
700 B
Go
39 lines
700 B
Go
package node
|
|
|
|
import (
|
|
"lux/crypto"
|
|
"lux/net"
|
|
"lux/proto"
|
|
)
|
|
|
|
type LuxNode struct {
|
|
router net.LuxRouter
|
|
state LuxNodeState
|
|
}
|
|
|
|
func NewLuxNode(nodeKey crypto.LuxKey, ks crypto.LuxKeyStore) LuxNode {
|
|
return LuxNode{
|
|
router: net.NewLuxRouter(nodeKey, ks),
|
|
state: NewNodeState(),
|
|
}
|
|
}
|
|
|
|
func (node *LuxNode) GetRouter() *net.LuxRouter {
|
|
return &node.router
|
|
}
|
|
|
|
func (node *LuxNode) GetNodeID() proto.LuxID {
|
|
return node.GetRouter().GetThisKey().Id
|
|
}
|
|
|
|
func (node *LuxNode) AddInterior(udpAddr string) error {
|
|
return node.router.CreateInboundChannel(net.LuxChannelInterior, udpAddr)
|
|
}
|
|
|
|
func (node *LuxNode) Start() {
|
|
node.router.Start()
|
|
}
|
|
|
|
func (node *LuxNode) Stop() {
|
|
node.router.Stop()
|
|
}
|