transport

package
v0.0.0-...-55c251c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 24, 2022 License: MIT Imports: 15 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterHeaderActivator

func RegisterHeaderActivator(typ MessageHeaderIdType, activator HeaderTypeActivator)

Types

type ActivityId

type ActivityId MessageId

type ByteArrayMessage

type ByteArrayMessage struct {
	Headers MessageHeaders
	Body    []byte
}

type Client

type Client struct {
	// contains filtered or unexported fields
}

func Connect

func Connect(conn net.Conn, config ClientConfig) (*Client, error)

func DialTCP

func DialTCP(addr string, config ClientConfig) (*Client, error)

func (Client) Close

func (c Client) Close() error

func (Client) Ping

func (c Client) Ping(ctx context.Context) (time.Duration, error)

func (Client) RequestReply

func (c Client) RequestReply(ctx context.Context, message *Message) (*ByteArrayMessage, error)

func (Client) SendOneWay

func (c Client) SendOneWay(message *Message) error

func (Client) SetMessageCallback

func (c Client) SetMessageCallback(cb MessageCallback)

func (Client) Wait

func (c Client) Wait() error

type ClientConfig

type ClientConfig struct {
	Config
	MessageCallback MessageCallback
}

type Config

type Config struct {
	TLS                           *tls.Config
	DisableCheckFrameHeaderCRC    bool
	DisableGenerateFrameHeaderCRC bool
	CheckFrameBodyCRC             bool
	GenerateFrameBodyCRC          bool
}

type Conn

type Conn interface {
	SendOneWay(message *Message) error

	RequestReply(ctx context.Context, message *Message) (*ByteArrayMessage, error)

	Ping(ctx context.Context) (time.Duration, error)

	Close() error
}

type FabricErrorCode

type FabricErrorCode int64
const (
	FabricErrorCodeSuccess FabricErrorCode = 0
)

TODO import errorcodevalue.h

type HeaderTypeActivator

type HeaderTypeActivator func() interface{}

type Message

type Message struct {
	Headers MessageHeaders
	Body    interface{}
}

type MessageActorType

type MessageActorType int64
const (
	MessageActorTypeEmpty MessageActorType = 0

	// Transport
	MessageActorTypeTransport MessageActorType = 1

	// Federation
	MessageActorTypeFederation MessageActorType = 2
	MessageActorTypeRouting    MessageActorType = 3

	// Cluster Manager
	MessageActorTypeCM MessageActorType = 4

	// Naming
	MessageActorTypeNamingGateway      MessageActorType = 5
	MessageActorTypeNamingStoreService MessageActorType = 6

	// Hosting
	MessageActorTypeApplicationHostManager MessageActorType = 7
	MessageActorTypeApplicationHost        MessageActorType = 8
	MessageActorTypeFabricRuntimeManager   MessageActorType = 9

	// Failover
	MessageActorTypeFMM             MessageActorType = 10
	MessageActorTypeFM              MessageActorType = 11
	MessageActorTypeRA              MessageActorType = 12
	MessageActorTypeRS              MessageActorType = 13
	MessageActorTypeServiceResolver MessageActorType = 14

	// Hosting subsystem
	MessageActorTypeHosting MessageActorType = 15

	// HealthManager
	MessageActorTypeHM MessageActorType = 16

	// Infrastructure Service
	MessageActorTypeServiceRoutingAgent MessageActorType = 17
	MessageActorTypeIS                  MessageActorType = 18

	//Fabric Activator
	MessageActorTypeFabricActivator       MessageActorType = 19
	MessageActorTypeFabricActivatorClient MessageActorType = 20

	// Transport
	MessageActorTypeIpc MessageActorType = 21

	// FileStoreService
	MessageActorTypeFileStoreService MessageActorType = 22

	// TokenValidationService
	MessageActorTypeTvs MessageActorType = 23

	// Repair Manager
	MessageActorTypeRM MessageActorType = 24

	MessageActorTypeFileSender          MessageActorType = 25
	MessageActorTypeFileReceiver        MessageActorType = 26
	MessageActorTypeFileTransferClient  MessageActorType = 27
	MessageActorTypeFileTransferGateway MessageActorType = 28

	MessageActorTypeTransportSendTarget    MessageActorType = 29
	MessageActorTypeEntreeServiceProxy     MessageActorType = 30
	MessageActorTypeEntreeServiceTransport MessageActorType = 31
	MessageActorTypeHostedServiceActivator MessageActorType = 32

	MessageActorTypeNM                   MessageActorType = 33
	MessageActorTypeDirectMessagingAgent MessageActorType = 34

	MessageActorTypeSecurityContext           MessageActorType = 35
	MessageActorTypeServiceCommunicationActor MessageActorType = 36

	MessageActorTypeRestartManager       MessageActorType = 37
	MessageActorTypeRestartManagerClient MessageActorType = 38

	// FaultAnalysisService
	MessageActorTypeFAS MessageActorType = 39

	// TestabilityAgent
	MessageActorTypeTestabilitySubsystem MessageActorType = 40

	// UpgradeOrchestrationService
	MessageActorTypeUOS MessageActorType = 41

	// Backup Restore Agent.
	MessageActorTypeBA  MessageActorType = 42
	MessageActorTypeBRS MessageActorType = 43
	MessageActorTypeBAP MessageActorType = 44

	// Fabric Container Activator Service
	MessageActorTypeContainerActivatorService       MessageActorType = 45
	MessageActorTypeContainerActivatorServiceClient MessageActorType = 46

	MessageActorTypeResourceMonitor MessageActorType = 47

	// Central Secret Service
	MessageActorTypeCSS MessageActorType = 48

	// NetworkInventoryService
	MessageActorTypeNetworkInventoryService MessageActorType = 49

	// NetworkInventoryAgent
	MessageActorTypeNetworkInventoryAgent MessageActorType = 50

	// GatewayResourceManager Service
	MessageActorTypeGatewayResourceManager MessageActorType = 51

	// FederationAgent
	MessageActorTypeFederationAgent MessageActorType = 54

	// FederationAgentProxy
	MessageActorTypeFederationProxy MessageActorType = 55

	// SystemServiceTcpConnection
	MessageActorTypeSystemServiceTcpConnection MessageActorType = 56

	MessageActorTypeNamingGatewayService MessageActorType = 57

	MessageActorTypeSystemServiceConfigSetting MessageActorType = 58

	MessageActorTypeSystemCache MessageActorType = 59

	MessageActorTypeEndValidEnum MessageActorType = 60

	// !!! Please add new actor values above this !!!
	MessageActorTypeFirstValidEnum MessageActorType = MessageActorTypeEmpty
	MessageActorTypeLastValidEnum  MessageActorType = MessageActorTypeEndValidEnum - 1

	// Test range
	MessageActorTypeWindowsFabricTestApi MessageActorType = 0xFFFF
	MessageActorTypeGenericTestActor     MessageActorType = 0x10000
	MessageActorTypeGenericTestActor2    MessageActorType = 0x10001
	MessageActorTypeDistributedSession   MessageActorType = 0x10002
	MessageActorTypeIpcTestActor1        MessageActorType = 0x10003
	MessageActorTypeIpcTestActor2        MessageActorType = 0x10004
)

func (MessageActorType) String

func (i MessageActorType) String() string

type MessageCallback

type MessageCallback func(Conn, *ByteArrayMessage)

type MessageHeaderIdType

type MessageHeaderIdType uint16
const (
	MessageHeaderIdTypeInvalid MessageHeaderIdType = 0x8000
	// Transport level headers.
	MessageHeaderIdTypeActor        MessageHeaderIdType = 0x8001
	MessageHeaderIdTypeAction       MessageHeaderIdType = 0x8002
	MessageHeaderIdTypeMessageId    MessageHeaderIdType = 0x8003
	MessageHeaderIdTypeRelatesTo    MessageHeaderIdType = 0x8004
	MessageHeaderIdTypeExpectsReply MessageHeaderIdType = 0x8005
	MessageHeaderIdTypeRetry        MessageHeaderIdType = 0x8006
	MessageHeaderIdTypeFault        MessageHeaderIdType = 0x8007
	MessageHeaderIdTypeIdempotent   MessageHeaderIdType = 0x8008
	MessageHeaderIdTypeHighPriority MessageHeaderIdType = 0x8009
	MessageHeaderIdTypeREFrom       MessageHeaderIdType = 0x800a
	MessageHeaderIdTypeIpc          MessageHeaderIdType = 0x800b

	// Federation Protocol (Federation) headers
	MessageHeaderIdTypeFederationPartnerNode         MessageHeaderIdType = 0x800c
	MessageHeaderIdTypeFederationNeighborhoodRange   MessageHeaderIdType = 0x800d
	MessageHeaderIdTypeFederationNeighborhoodVersion MessageHeaderIdType = 0x800e
	MessageHeaderIdTypeFederationRoutingToken        MessageHeaderIdType = 0x800f
	MessageHeaderIdTypeRouting                       MessageHeaderIdType = 0x8010
	MessageHeaderIdTypeFederationTraceProbe          MessageHeaderIdType = 0x8011
	MessageHeaderIdTypeFederationTokenEcho           MessageHeaderIdType = 0x8012

	// Point to Point (PToP) Headers
	MessageHeaderIdTypePToP MessageHeaderIdType = 0x8013

	// Broadcast Headers
	MessageHeaderIdTypeBroadcast          MessageHeaderIdType = 0x8014
	MessageHeaderIdTypeBroadcastRange     MessageHeaderIdType = 0x8015
	MessageHeaderIdTypeBroadcastRelatesTo MessageHeaderIdType = 0x8016
	MessageHeaderIdTypeBroadcastStep      MessageHeaderIdType = 0x8017

	// Reliability
	MessageHeaderIdTypeGeneration MessageHeaderIdType = 0x8018

	// Replication
	MessageHeaderIdTypeReplicationActor     MessageHeaderIdType = 0x8019
	MessageHeaderIdTypeReplicationOperation MessageHeaderIdType = 0x801a
	MessageHeaderIdTypeCopyOperation        MessageHeaderIdType = 0x801b
	MessageHeaderIdTypeCompletedLSN         MessageHeaderIdType = 0x801c
	MessageHeaderIdTypeCopyContextOperation MessageHeaderIdType = 0x801d
	MessageHeaderIdTypeOperationAck         MessageHeaderIdType = 0x801e
	MessageHeaderIdTypeOperationError       MessageHeaderIdType = 0x801f

	// System Services (Common)
	MessageHeaderIdTypeFabricActivity      MessageHeaderIdType = 0x8020
	MessageHeaderIdTypeRequestInstance     MessageHeaderIdType = 0x8021
	MessageHeaderIdTypeSystemServiceFilter MessageHeaderIdType = 0x8022
	MessageHeaderIdTypeTimeout             MessageHeaderIdType = 0x8023

	// Naming Service
	MessageHeaderIdTypeCacheMode             MessageHeaderIdType = 0x8024
	MessageHeaderIdTypeClientProtocolVersion MessageHeaderIdType = 0x8025
	MessageHeaderIdTypeGatewayRetry          MessageHeaderIdType = 0x8026
	MessageHeaderIdTypePrimaryRecovery       MessageHeaderIdType = 0x8027

	// Cluster Manager Service
	MessageHeaderIdTypeForwardMessage MessageHeaderIdType = 0x8028

	// Security headers
	MessageHeaderIdTypeMessageSecurity MessageHeaderIdType = 0x8029

	// Query address header
	MessageHeaderIdTypeQueryAddress MessageHeaderIdType = 0x802a

	MessageHeaderIdTypeFabricCodeVersion MessageHeaderIdType = 0x802b

	MessageHeaderIdTypeServiceRoutingAgent      MessageHeaderIdType = 0x802c
	MessageHeaderIdTypeServiceRoutingAgentProxy MessageHeaderIdType = 0x802d

	MessageHeaderIdTypeReliableMessagingSession          MessageHeaderIdType = 0x802e
	MessageHeaderIdTypeReliableMessagingSource           MessageHeaderIdType = 0x802f
	MessageHeaderIdTypeReliableMessagingTarget           MessageHeaderIdType = 0x8030
	MessageHeaderIdTypeReliableMessagingProtocolResponse MessageHeaderIdType = 0x8031
	MessageHeaderIdTypeReliableMessagingSessionParams    MessageHeaderIdType = 0x8032

	MessageHeaderIdTypeDeleteName MessageHeaderIdType = 0x8033

	MessageHeaderIdTypePartitionTarget    MessageHeaderIdType = 0x8034
	MessageHeaderIdTypeCustomClientAuth   MessageHeaderIdType = 0x8035
	MessageHeaderIdTypeNamingProperty     MessageHeaderIdType = 0x8036
	MessageHeaderIdTypeSecondaryLocations MessageHeaderIdType = 0x8037
	MessageHeaderIdTypeClientRole         MessageHeaderIdType = 0x8038

	MessageHeaderIdTypeMulticast        MessageHeaderIdType = 0x8039
	MessageHeaderIdTypeMulticastTargets MessageHeaderIdType = 0x803a

	MessageHeaderIdTypeFileUploadRequest MessageHeaderIdType = 0x803b
	MessageHeaderIdTypeFileSequence      MessageHeaderIdType = 0x803c

	MessageHeaderIdTypeServiceTarget MessageHeaderIdType = 0x803d

	MessageHeaderIdTypeUncorrelatedReply MessageHeaderIdType = 0x803e

	MessageHeaderIdTypeServiceDirectMessaging MessageHeaderIdType = 0x803f

	MessageHeaderIdTypeClientIdentity MessageHeaderIdType = 0x8040
	MessageHeaderIdTypeServerAuth     MessageHeaderIdType = 0x8041

	MessageHeaderIdTypeGlobalTimeExchange MessageHeaderIdType = 0x8041
	MessageHeaderIdTypeVoterStore         MessageHeaderIdType = 0x8042

	//Service Tcp Communication
	MessageHeaderIdTypeServiceLocationActor      MessageHeaderIdType = 0x8043
	MessageHeaderIdTypeTcpServiceMessageHeader   MessageHeaderIdType = 0x8044
	MessageHeaderIdTypeTcpClientIdHeader         MessageHeaderIdType = 0x8045
	MessageHeaderIdTypeServiceCommunicationError MessageHeaderIdType = 0x8046
	MessageHeaderIdTypeIsAsyncOperationHeader    MessageHeaderIdType = 0x8047

	MessageHeaderIdTypeSecurityNegotiation MessageHeaderIdType = 0x8048

	MessageHeaderIdTypeJoinThrottle MessageHeaderIdType = 0x8049

	// Replication
	MessageHeaderIdTypeReplicationOperationBody MessageHeaderIdType = 0x804a

	MessageHeaderIdTypeCreateComposeDeploymentRequest MessageHeaderIdType = 0x804b
	// To be compatible with v6.0 which was using 0x804c conflicted with FabricTransportMessageHeader. From v6.1 the header id would be 0x804d.
	MessageHeaderIdTypeUpgradeComposeDeploymentRequest_Compatibility MessageHeaderIdType = 0x804c
	//Fabric Transport V2
	MessageHeaderIdTypeFabricTransportMessageHeader    MessageHeaderIdType = 0x804c
	MessageHeaderIdTypeUpgradeComposeDeploymentRequest MessageHeaderIdType = 0x804d
	MessageHeaderIdTypeCreateVolumeRequest             MessageHeaderIdType = 0x804e
	MessageHeaderIdTypeFileUploadCreateRequest         MessageHeaderIdType = 0x804f
	MessageHeaderIdTypeFileTransferTransportDownload   MessageHeaderIdType = 0x8050
	MessageHeaderIdTypeFileTransferTransportUpload     MessageHeaderIdType = 0x8051
	MessageHeaderIdTypeFileTransferTransportError      MessageHeaderIdType = 0x8052

	MessageHeaderIdTypeFederationForwardMessaging MessageHeaderIdType = 0x8053
	MessageHeaderIdTypeFederationAgentRequest     MessageHeaderIdType = 0x8054

	MessageHeaderIdTypeSystemServiceTcpHeader MessageHeaderIdType = 0x8055
	MessageHeaderIdTypeTransportRoutingHeader MessageHeaderIdType = 0x8056
)

func (MessageHeaderIdType) String

func (i MessageHeaderIdType) String() string

type MessageHeaders

type MessageHeaders struct {
	Id        MessageId
	RelatesTo MessageId

	Actor  MessageActorType
	Action string

	ExpectsReply bool
	HighPriority bool
	Idempotent   bool

	ErrorCode    FabricErrorCode
	HasFaultBody bool
	RetryCount   int32
	// contains filtered or unexported fields
}

func (*MessageHeaders) AppendCustomHeader

func (h *MessageHeaders) AppendCustomHeader(typ MessageHeaderIdType, header ...interface{}) bool

func (*MessageHeaders) GetCustomHeaders

func (h *MessageHeaders) GetCustomHeaders(typ MessageHeaderIdType) []interface{}

func (*MessageHeaders) GetFirstCustomHeader

func (h *MessageHeaders) GetFirstCustomHeader(typ MessageHeaderIdType) (interface{}, bool)

func (*MessageHeaders) SetCustomHeader

func (h *MessageHeaders) SetCustomHeader(typ MessageHeaderIdType, header interface{}) bool

type MessageId

type MessageId struct {
	Id    serialization.GUID
	Index uint32
}

func (MessageId) IsEmpty

func (m MessageId) IsEmpty() bool

func (MessageId) String

func (m MessageId) String() string

type MessageIdGenerator

type MessageIdGenerator interface {
	Next() MessageId
}

func NewMessageIdGenerator

func NewMessageIdGenerator() (MessageIdGenerator, error)

type MessageTransformer

type MessageTransformer func(src, dst net.Conn, msg *ByteArrayMessage) *Message

type PendingRequest

type PendingRequest struct {
	// contains filtered or unexported fields
}

func (*PendingRequest) Close

func (r *PendingRequest) Close() error

func (*PendingRequest) Wait

type Piper

type Piper struct {
	// contains filtered or unexported fields
}

func NewPiper

func NewPiper(l net.Listener, config PiperConfig) (*Piper, error)

func (*Piper) Serve

func (p *Piper) Serve() error

type PiperConfig

type PiperConfig struct {
	Config
	Filter       MessageTransformer
	FindUpstream func(initheaders *MessageHeaders, conn net.Conn) (net.Conn, Config, error)
}

type RequestTable

type RequestTable struct {
	// contains filtered or unexported fields
}

func (*RequestTable) Close

func (r *RequestTable) Close() error

func (*RequestTable) Feed

func (r *RequestTable) Feed(msg *ByteArrayMessage) bool

func (*RequestTable) Put

func (r *RequestTable) Put(msg *Message) *PendingRequest

type Server

type Server struct {
	// contains filtered or unexported fields
}

func Listen

func Listen(l net.Listener, config ServerConfig) (*Server, error)

func ListenTCP

func ListenTCP(addr string, config ServerConfig) (*Server, error)

func (*Server) Addr

func (s *Server) Addr() net.Addr

func (*Server) Close

func (s *Server) Close() error

func (*Server) Serve

func (s *Server) Serve() error

func (*Server) SetMessageCallback

func (s *Server) SetMessageCallback(cb MessageCallback)

type ServerConfig

type ServerConfig struct {
	Config
	MessageCallback MessageCallback
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL