| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | 
							- package net
 
- // Destination represents a network destination including address and protocol (tcp / udp).
 
- type Destination interface {
 
- 	Network() string  // Protocol of communication (tcp / udp)
 
- 	Address() Address // Address of destination
 
- 	String() string   // String representation of the destination
 
- 	IsTCP() bool // True if destination is reachable via TCP
 
- 	IsUDP() bool // True if destination is reachable via UDP
 
- }
 
- // NewTCPDestination creates a TCP destination with given address
 
- func NewTCPDestination(address Address) Destination {
 
- 	return TCPDestination{address: address}
 
- }
 
- // NewUDPDestination creates a UDP destination with given address
 
- func NewUDPDestination(address Address) Destination {
 
- 	return UDPDestination{address: address}
 
- }
 
- type TCPDestination struct {
 
- 	address Address
 
- }
 
- func (dest TCPDestination) Network() string {
 
- 	return "tcp"
 
- }
 
- func (dest TCPDestination) Address() Address {
 
- 	return dest.address
 
- }
 
- func (dest TCPDestination) String() string {
 
- 	return "tcp:" + dest.address.String()
 
- }
 
- func (dest TCPDestination) IsTCP() bool {
 
- 	return true
 
- }
 
- func (dest TCPDestination) IsUDP() bool {
 
- 	return false
 
- }
 
- type UDPDestination struct {
 
- 	address Address
 
- }
 
- func (dest UDPDestination) Network() string {
 
- 	return "udp"
 
- }
 
- func (dest UDPDestination) Address() Address {
 
- 	return dest.address
 
- }
 
- func (dest UDPDestination) String() string {
 
- 	return "udp:" + dest.address.String()
 
- }
 
- func (dest UDPDestination) IsTCP() bool {
 
- 	return false
 
- }
 
- func (dest UDPDestination) IsUDP() bool {
 
- 	return true
 
- }
 
 
  |