| 123456789101112131415161718192021222324252627282930313233343536373839 | 
							- package net
 
- import (
 
- 	"github.com/v2ray/v2ray-core/common/alloc"
 
- )
 
- // Packet is a network packet to be sent to destination.
 
- type Packet interface {
 
- 	Destination() Destination
 
- 	Chunk() *alloc.Buffer // First chunk of this commnunication
 
- 	MoreChunks() bool
 
- }
 
- // NewPacket creates a new Packet with given destination and payload.
 
- func NewPacket(dest Destination, firstChunk *alloc.Buffer, moreChunks bool) Packet {
 
- 	return &packetImpl{
 
- 		dest:     dest,
 
- 		data:     firstChunk,
 
- 		moreData: moreChunks,
 
- 	}
 
- }
 
- type packetImpl struct {
 
- 	dest     Destination
 
- 	data     *alloc.Buffer
 
- 	moreData bool
 
- }
 
- func (packet *packetImpl) Destination() Destination {
 
- 	return packet.dest
 
- }
 
- func (packet *packetImpl) Chunk() *alloc.Buffer {
 
- 	return packet.data
 
- }
 
- func (packet *packetImpl) MoreChunks() bool {
 
- 	return packet.moreData
 
- }
 
 
  |