mirror of https://github.com/v2ray/v2ray-core
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
1.7 KiB
76 lines
1.7 KiB
package internal
|
|
|
|
import (
|
|
"github.com/v2ray/v2ray-core/app"
|
|
)
|
|
|
|
type Space struct {
|
|
packetDispatcher PacketDispatcherWithContext
|
|
dnsCache DnsCacheWithContext
|
|
pubsub PubsubWithContext
|
|
inboundHandlerManager InboundHandlerManagerWithContext
|
|
tag string
|
|
}
|
|
|
|
func NewSpace(tag string, packetDispatcher PacketDispatcherWithContext, dnsCache DnsCacheWithContext, pubsub PubsubWithContext, inboundHandlerManager InboundHandlerManagerWithContext) *Space {
|
|
return &Space{
|
|
tag: tag,
|
|
packetDispatcher: packetDispatcher,
|
|
dnsCache: dnsCache,
|
|
pubsub: pubsub,
|
|
inboundHandlerManager: inboundHandlerManager,
|
|
}
|
|
}
|
|
|
|
func (this *Space) HasPacketDispatcher() bool {
|
|
return this.packetDispatcher != nil
|
|
}
|
|
|
|
func (this *Space) PacketDispatcher() app.PacketDispatcher {
|
|
return &contextedPacketDispatcher{
|
|
packetDispatcher: this.packetDispatcher,
|
|
context: &contextImpl{
|
|
callerTag: this.tag,
|
|
},
|
|
}
|
|
}
|
|
|
|
func (this *Space) HasDnsCache() bool {
|
|
return this.dnsCache != nil
|
|
}
|
|
|
|
func (this *Space) DnsCache() app.DnsCache {
|
|
return &contextedDnsCache{
|
|
dnsCache: this.dnsCache,
|
|
context: &contextImpl{
|
|
callerTag: this.tag,
|
|
},
|
|
}
|
|
}
|
|
|
|
func (this *Space) HasPubsub() bool {
|
|
return this.pubsub != nil
|
|
}
|
|
|
|
func (this *Space) Pubsub() app.Pubsub {
|
|
return &contextedPubsub{
|
|
pubsub: this.pubsub,
|
|
context: &contextImpl{
|
|
callerTag: this.tag,
|
|
},
|
|
}
|
|
}
|
|
|
|
func (this *Space) HasInboundHandlerManager() bool {
|
|
return this.inboundHandlerManager != nil
|
|
}
|
|
|
|
func (this *Space) InboundHandlerManager() app.InboundHandlerManager {
|
|
return &inboundHandlerManagerWithContext{
|
|
manager: this.inboundHandlerManager,
|
|
context: &contextImpl{
|
|
callerTag: this.tag,
|
|
},
|
|
}
|
|
}
|