pmq_responder

package module
v0.0.9 Latest Latest
Warning

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

Go to latest
Published: Jan 15, 2024 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	O_RDONLY = posix_mq.O_RDONLY
	O_WRONLY = posix_mq.O_WRONLY
	O_RDWR   = posix_mq.O_RDWR

	O_CLOEXEC  = posix_mq.O_CLOEXEC
	O_CREAT    = posix_mq.O_CREAT
	O_EXCL     = posix_mq.O_EXCL
	O_NONBLOCK = posix_mq.O_NONBLOCK
)

Variables

This section is empty.

Functions

func ApplyPermissions added in v0.0.4

func ApplyPermissions(o *Ownership, config *QueueConfig) error

func CloseRequester added in v0.0.4

func CloseRequester(mqr *MqRequester) error

func CloseResponder added in v0.0.4

func CloseResponder(mqr *MqResponder) error

func ForceRemoveQueue added in v0.0.6

func ForceRemoveQueue(queueFile string) error

func NewMessageQueue

func NewMessageQueue(config *QueueConfig) (*posix_mq.MessageQueue, error)

NewMessageQueue returns an instance of the message queue given a QueueConfig.

func NewMessageQueueWithOwnership added in v0.0.4

func NewMessageQueueWithOwnership(config QueueConfig, owner *Ownership, postfix string) (*posix_mq.MessageQueue, error)

func UnlinkRequester added in v0.0.4

func UnlinkRequester(mqr *MqRequester) error

func UnlinkResponder added in v0.0.4

func UnlinkResponder(mqr *MqResponder) error

Types

type BidirectionalQueue

type BidirectionalQueue struct {
	MqRqst  *posix_mq.MessageQueue
	ErrRqst error
	MqResp  *posix_mq.MessageQueue
	ErrResp error
}

func (*BidirectionalQueue) Close

func (bdr *BidirectionalQueue) Close() error

func (*BidirectionalQueue) Error added in v0.0.9

func (bdr *BidirectionalQueue) Error() error

func (*BidirectionalQueue) HasErrors added in v0.0.9

func (bdr *BidirectionalQueue) HasErrors() bool
func (bdr *BidirectionalQueue) Unlink() error

type Group

type Group struct {
	Gid int
}

type MqRequest added in v0.0.4

type MqRequest protos.Request

func ProtoRequestToMqRequest added in v0.0.4

func ProtoRequestToMqRequest(mqr *protos.Request) *MqRequest

ProtoRequestToMqRequest used to convert the protobuf to the local type equivalent (MqRequest) for leveraging instance methods

func (*MqRequest) AsProtobuf added in v0.0.4

func (mqr *MqRequest) AsProtobuf() *protos.Request

AsProtobuf used to convert the local type equivalent (MqRequest) back to its protobuf instance

func (*MqRequest) HasId added in v0.0.4

func (mqr *MqRequest) HasId() bool

func (*MqRequest) SetId added in v0.0.4

func (mqr *MqRequest) SetId()

type MqRequester added in v0.0.4

type MqRequester BidirectionalQueue

func NewRequester added in v0.0.4

func NewRequester(config *QueueConfig, owner *Ownership) *MqRequester

func (*MqRequester) CloseRequester added in v0.0.4

func (mqs *MqRequester) CloseRequester() error

func (*MqRequester) Error added in v0.0.9

func (mqr *MqRequester) Error() error

func (*MqRequester) HasErrors added in v0.0.9

func (mqr *MqRequester) HasErrors() bool

func (*MqRequester) Request added in v0.0.4

func (mqs *MqRequester) Request(data []byte, priority uint) error

func (*MqRequester) RequestUsingMqRequest added in v0.0.4

func (mqs *MqRequester) RequestUsingMqRequest(req *MqRequest, priority uint) error

func (*MqRequester) RequestUsingProto added in v0.0.4

func (mqs *MqRequester) RequestUsingProto(req *proto.Message, priority uint) error

func (*MqRequester) UnlinkRequester added in v0.0.4

func (mqs *MqRequester) UnlinkRequester() error

func (*MqRequester) WaitForMqResponse added in v0.0.4

func (mqs *MqRequester) WaitForMqResponse(duration time.Duration) (*MqResponse, uint, error)

func (*MqRequester) WaitForProto added in v0.0.4

func (mqs *MqRequester) WaitForProto(pbm proto.Message, duration time.Duration) (*proto.Message, uint, error)

func (*MqRequester) WaitForResponse added in v0.0.4

func (mqs *MqRequester) WaitForResponse(duration time.Duration) ([]byte, uint, error)

type MqResponder

type MqResponder BidirectionalQueue

func NewResponder

func NewResponder(config *QueueConfig, owner *Ownership) *MqResponder

func (*MqResponder) CloseResponder added in v0.0.3

func (mqr *MqResponder) CloseResponder() error

func (*MqResponder) Error added in v0.0.9

func (mqr *MqResponder) Error() error

func (*MqResponder) HandleMqRequest added in v0.0.4

func (mqr *MqResponder) HandleMqRequest(requestProcessor ResponderMqRequestCallback) error

HandleMqRequest provides a concrete implementation of HandleRequestFromProto using the local MqRequest type

func (*MqResponder) HandleRequest

func (mqr *MqResponder) HandleRequest(msgHandler ResponderCallback) error

func (*MqResponder) HandleRequestFromProto added in v0.0.4

func (mqr *MqResponder) HandleRequestFromProto(protocMsg proto.Message, msgHandler ResponderFromProtoMessageCallback) error

HandleRequestFromProto used to process arbitrary protobuf messages using a callback

func (*MqResponder) HandleRequestWithLag

func (mqr *MqResponder) HandleRequestWithLag(msgHandler ResponderCallback, lag int) error

HandleRequestWithLag used for testing purposes to simulate lagging responder

func (*MqResponder) HasErrors added in v0.0.9

func (mqr *MqResponder) HasErrors() bool

func (*MqResponder) UnlinkResponder added in v0.0.4

func (mqr *MqResponder) UnlinkResponder() error

type MqResponse added in v0.0.4

type MqResponse protos.Response

func ProtoResponseToMqResponse added in v0.0.4

func ProtoResponseToMqResponse(mqr *protos.Response) *MqResponse

ProtoResponseToMqResponse used to convert the protobuf to the local type equivalent (MqResponse) for leveraging instance methods

func (*MqResponse) AsProtobuf added in v0.0.4

func (mqr *MqResponse) AsProtobuf() *protos.Response

AsProtobuf used to convert the local type equivalent (MqResponse) back to its protobuf instance

func (*MqResponse) PrepareFromRequest added in v0.0.4

func (mqr *MqResponse) PrepareFromRequest(mqs *MqRequest) *MqResponse

type Ownership

type Ownership struct {
	Group    string
	Username string
}

func (*Ownership) HasGroup

func (o *Ownership) HasGroup() (bool, *Group, error)

func (*Ownership) HasUser

func (o *Ownership) HasUser() (bool, *User, error)

func (*Ownership) IsValid

func (o *Ownership) IsValid() bool

type QueueConfig

type QueueConfig posix_mq.QueueConfig

func (*QueueConfig) GetFile

func (config *QueueConfig) GetFile() string

GetFile gets the file on the OS where the queues are stored

type ResponderCallback

type ResponderCallback func(msq []byte) (processed []byte, err error)

type ResponderFromProtoMessageCallback added in v0.0.4

type ResponderFromProtoMessageCallback func() (processed []byte, err error)

type ResponderMqRequestCallback added in v0.0.4

type ResponderMqRequestCallback func(mqs *MqRequest) (mqr *MqResponse, err error)

type User

type User struct {
	Uid int
	Gid int
}

Directories

Path Synopsis
example

Jump to

Keyboard shortcuts

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