tibrv

package module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 19, 2024 License: MIT Imports: 9 Imported by: 0

README

tibrv

A CGO wrapper for TIBCO RendezVous C API

Go Report Card

Introduction

It's a CGO wrapper to C library. For building and using this package a valid TIBCO Rendezvous installation is needed. This package permits to send and receive messages with regular, certified message delivery and distribuited queue transports. The dispatcher library section is not included, use goroutines instead.

Configuration

This file:

scripts/test_profile

references 2 enviroments variables :

TEST_DIR = temporary test directory

TIBRV_HOME = path to valid tibrv C api installation

Test & Build

Test and coverage information:

scripts/cover.bash

Benchmarks:

scripts/benchmark.bash

Profiling:

scripts/profile.bash

Examples and tools:

scripts/build.bash

Getting started

Publish a message
    var transport tibrv.RvNetTransport

    // Parameters are option, use
    // Create() 
    // for default values
	err := transport.Create(
		tibrv.Service("<service>"),
		tibrv.Network("<network>"),
		tibrv.Daemon("<daemon>"),
		tibrv.Description("<description>"),
    )
    if err != nil {
        fmt.Println(err)
        os.Exit(-1)
    }   

    var msg  tibrv.RvMessage
    // [...] message composing

    err = transport.Send(msg)
    if err != nil {
        fmt.Println(err)
        os.Exit(-1)
    }   

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Disclaimer

This project has been an exercise for improving my GO skills, wrapping up things I already knew.

The package has never been used, it needs deep testing.

Documentation

Index

Constants

View Source
const (
	// TibrvOK import C API define : TIBRV_OK
	TibrvOK = 0
	// TibrvINITFailure import C API define : TIBRV_INIT_FAILURE
	TibrvINITFailure = 1
	// TibrvInvalidTransport import C API define : TIBRV_INVALID_TRANSPORT
	TibrvInvalidTransport = 2
	// TibrvInvalidArg import C API define : TIBRV_INVALID_ARG
	TibrvInvalidArg = 3
	// TibrvNotInitialized import C API define : TIBRV_NOT_INITIALIZED
	TibrvNotInitialized = 4
	// TibrvArgConflict import C API define : TIBRV_ARG_CONFLICT
	TibrvArgConflict = 5
	// TibrvServiceNotFound import C API define : TIBRV_SERVICE_NOT_FOUND
	TibrvServiceNotFound = 16
	// TibrvNetworkNotFound import C API define : TIBRV_NETWORK_NOT_FOUND
	TibrvNetworkNotFound = 17
	// TibrvDaemonNotFound import C API define : TIBRV_DAEMON_NOT_FOUND
	TibrvDaemonNotFound = 18
	// TibrvNoMemory import C API define : TIBRV_NO_MEMORY
	TibrvNoMemory = 19
	// TibrvInvalidSubject import C API define : TIBRV_INVALID_SUBJECT
	TibrvInvalidSubject = 20
	// TibrvDaemonNotConnected import C API define : TIBRV_DAEMON_NOT_CONNECTED
	TibrvDaemonNotConnected = 21
	// TibrvVersionMismatch import C API define : TIBRV_VERSION_MISMATCH
	TibrvVersionMismatch = 22
	// TibrvSubjectCollision import C API define : TIBRV_SUBJECT_COLLISION
	TibrvSubjectCollision = 23
	// TibrvVcNotConnected import C API define : TIBRV_VC_NOT_CONNECTED
	TibrvVcNotConnected = 24
	// TibrvNotPermitted import C API define : TIBRV_NOT_PERMITTED
	TibrvNotPermitted = 27
	// TibrvInvalidName import C API define : TIBRV_INVALID_NAME
	TibrvInvalidName = 30
	// TibrvInvalidType import C API define : TIBRV_INVALID_TYPE
	TibrvInvalidType = 31
	// TibrvInvalidSize import C API define : TIBRV_INVALID_SIZE
	TibrvInvalidSize = 32
	// TibrvInvalidCount import C API define : TIBRV_INVALID_COUNT
	TibrvInvalidCount = 33
	// TibrvNotFound import C API define : TIBRV_NOT_FOUND
	TibrvNotFound = 35
	// TibrvIDInUse import C API define : TIBRV_ID_IN_USE
	TibrvIDInUse = 36
	// TibrvIDConflict import C API define : TIBRV_ID_CONFICT
	TibrvIDConflict = 37
	// TibrvConversionFailed import C API define : TIBRV_CONVERSION_FAILED
	TibrvConversionFailed = 38
	// TibrvReservedHandler import C API define : TIBRV_RESERVED_HANDLER
	TibrvReservedHandler = 39
	// TibrvEncoderFailed import C API define : TIBRV_ENCODER_FAILED
	TibrvEncoderFailed = 40
	// TibrvDecoderFailed import C API define : TIBRV_DECODER_FAILED
	TibrvDecoderFailed = 41
	// TibrvInvalidMsg import C API define : TIBRV_INVALID_MSG
	TibrvInvalidMsg = 42
	// TibrvInvalidField import C API define : TIBRV_INVALID_FIELD
	TibrvInvalidField = 43
	// TibrvInvalidInstance import C API define : TIBRV_INVALID_INSTANCE
	TibrvInvalidInstance = 44
	// TibrvCorruptMsg import C API define : TIBRV_CORRUPT_MSG
	TibrvCorruptMsg = 45
	// TibrvEncodingMismatch import C API define : TIBRV_ENCODING_MISMATCH
	TibrvEncodingMismatch = 46
	// TibrvTimeout import C API define : TIBRV_TIMEOUT
	TibrvTimeout = 50
	// TibrvIntr import C API define : TIBRV_INTR
	TibrvIntr = 51
	// TibrvInvalidDispatchable import C API define : TIBRV_INVALID_DISPATCHABLE
	TibrvInvalidDispatchable = 52
	// TibrvInvalidDispatcher import C API define : TIBRV_INVALID_DISPATCHER
	TibrvInvalidDispatcher = 53
	// TibrvInvalidEvent import C API define : TIBRV_INVALID_EVENT
	TibrvInvalidEvent = 60
	// TibrvInvalidCallback import C API define : TIBRV_INVALID_CALLBACK
	TibrvInvalidCallback = 61
	// TibrvInvalidQueue import C API define : TIBRV_INVALID_QUEUE
	TibrvInvalidQueue = 62
	// TibrvInvalidQueueGroup import C API define : TIBRV_INVALID_QUEUE_GROUP
	TibrvInvalidQueueGroup = 63
	// TibrvInvalidTimeInterval import C API define : TIBRV_INVALID_TIME_INTERVAL
	TibrvInvalidTimeInterval = 64
	// TibrvInvalidIOSource import C API define : TIBRV_INVALID_IO_SOURCE
	TibrvInvalidIOSource = 65
	// TibrvInvalidIOCondition import C API define : TIBRV_INVALID_IO_CONDITION
	TibrvInvalidIOCondition = 66
	// TibrvSocketLimit import C API define : TIBRV_SOCKET_LIMIT
	TibrvSocketLimit = 67
	// TibrvOsError import C API define : TIBRV_OS_ERROR
	TibrvOsError = 68
	// TibrvInsufficientBuffer import C API define : TIBRV_INSUFFICIENT_BUFFER
	TibrvInsufficientBuffer = 70
	// TibrvEOF import C API define : TIBRV_EOF
	TibrvEOF = 71
	// TibrvInvalidFile import C API define : TIBRV_INVALID_FILE
	TibrvInvalidFile = 72
	// TibrvFileNotFound import C API define : TIBRV_FILE_NOT_FOUND
	TibrvFileNotFound = 73
	// TibrvIOFailed import C API define : TIBRV_IO_FAILED
	TibrvIOFailed = 74
	// TibrvNotFileOwner import C API define : TIBRV_NOT_FILE_OWNER
	TibrvNotFileOwner = 80
	// TibrvUuserpassMismatch import C API define : TIBRV_USERPASS_MISMATCH
	TibrvUuserpassMismatch = 81
	// TibrvTooManyNeighboors import C API define : TIBRV_TOO_MANY_NEIGHBORS
	TibrvTooManyNeighboors = 90
	// TibrvAlreadyExists import C API define : TIBRV_ALREADY_EXISTS
	TibrvAlreadyExists = 91
	// TibrvPortBusy import C API define : TIBRV_PORT_BUSY
	TibrvPortBusy = 100
	// TibrvDeliveryFailed import C API define : TIBRV_DELIVERY_FAILED
	TibrvDeliveryFailed = 101
	// TibrvQueueLimit import C API define : TIBRV_QUEUE_LIMIT
	TibrvQueueLimit = 102
	// TibrvInvalidContentDesc import C API define : TIBRV_INVALID_CONTENT_DESC
	TibrvInvalidContentDesc = 110
	// TibrvInvalidSerializedBuffer import C API define : TIBRV_INVALID_SERIALIZED_BUFFER
	TibrvInvalidSerializedBuffer = 111
	// TibrvDescriptorNotFound import C API define : TIBRV_DESCRIPTOR_NOT_FOUND
	TibrvDescriptorNotFound = 115
	// TibrvCorruptSerializedBuffer import C API define : TIBRV_CORRUPT_SERIALIZED_BUFFER
	TibrvCorruptSerializedBuffer = 116
	// TibrvIPMOnly import C API define : TIBRV_IPM_ONLY
	TibrvIPMOnly = 117
)
View Source
const (
	// FieldTypeMsg field type : msg
	FieldTypeMsg = 1

	// FieldTypeString field type : string
	FieldTypeString = 8

	// FieldTypeBool field type : boolean
	FieldTypeBool = 9

	// FieldTypeInt8 field type : 8bit signed integer
	FieldTypeInt8 = 14
	// FieldTypeUInt8 field type : 8bit unsigned integer
	FieldTypeUInt8 = 15
	// FieldTypeInt16 field type : 16bit signed integer
	FieldTypeInt16 = 16
	// FieldTypeUInt16 field type : 16bit unsigned integer
	FieldTypeUInt16 = 17
	// FieldTypeInt32 field type : 32bit signed integer
	FieldTypeInt32 = 18
	// FieldTypeUInt32 field type : 32bit unsigned integer
	FieldTypeUInt32 = 19
	// FieldTypeInt64 field type : 64bit signed integer
	FieldTypeInt64 = 20
	// FieldTypeUInt64 field type : 64bit unsigned integer
	FieldTypeUInt64 = 21

	// FieldTypeFloat32 field type : 32bit floating point number
	FieldTypeFloat32 = 24
	// FieldTypeFloat64 field type : 64bit floating point number
	FieldTypeFloat64 = 25

	// FieldTypeStringArray field type : string array
	FieldTypeStringArray = 48
	// FieldTypeInt8Array field type : 8bit signed integer array
	FieldTypeInt8Array = 34
	// FieldTypeUInt8Array field type : 8bit unsigned integer array
	FieldTypeUInt8Array = 35
	// FieldTypeInt16Array field type : 16bit signed integer array
	FieldTypeInt16Array = 36
	// FieldTypeUInt16Array field type : 16bit unsigned integer array
	FieldTypeUInt16Array = 37
	// FieldTypeInt32Array field type : 32bit signed integer array
	FieldTypeInt32Array = 38
	// FieldTypeUInt32Array field type : 32bit unsigned integer array
	FieldTypeUInt32Array = 39
	// FieldTypeInt64Array field type : 64bit signed integer array
	FieldTypeInt64Array = 40
	// FieldTypeUInt64Array field type : 64bit unsigned integer array
	FieldTypeUInt64Array = 41

	// FieldTypeFloat32Array field type : 32bit floating point number array
	FieldTypeFloat32Array = 44
	// FieldTypeFloat64Array field type : 64bit floating point number array
	FieldTypeFloat64Array = 45
)
View Source
const DefaultSchedulerActive float64 = 3.5

DefaultSchedulerActive When the heartbeat signal from the scheduler has been silent for this interval (in seconds), the member with the greatest scheduler weight takes its place as the new scheduler

View Source
const DefaultSchedulerHB float64 = 1.0

DefaultSchedulerHB The scheduler sends heartbeat messages at this interval (in seconds)

View Source
const DefaultSchedulerWeight uint16 = 1

DefaultSchedulerWeight represents the ability of this member to fulfill the role of scheduler, relative to other members with the same name

View Source
const DefaultWorkerTasks uint32 = 1

DefaultWorkerTasks Task capacity is the maximum number of tasks that a worker can accept.

View Source
const DefaultWorkerWeight uint32 = 1

DefaultWorkerWeight When the scheduler receives a task, it assigns the task to the available worker with the greatest worker weight

View Source
const FtActivate = 2

FtActivate fault tollerance status : activating

View Source
const FtDeactivate = 3

FtDeactivate fault tollerance status : deactivating

View Source
const FtPrepareToActivate = 1

FtPrepareToActivate fault tollerance status : near to activate

View Source
const NoWait float64 = 0

NoWait as timeout valie in RvTransport.SendRequest, doesn't wait if no message in queue

View Source
const WaitForEver float64 = -1

WaitForEver as timeout value in RvTransport.SendRequest, wait until receive a response

Variables

This section is empty.

Functions

func Close

func Close() error

Close destroy Tibco RendezVous Environment

func Open

func Open() error

Open init Tibco RendezVous Environment

Types

type CmTransportOption

type CmTransportOption = func(t cmTransportConfig) cmTransportConfig

CmTransportOption func type for alter default net transport options

func Ledger

func Ledger(ledger string) CmTransportOption

Ledger certified message delivery ledger filename option

func Session

func Session(session string) CmTransportOption

Session certified message delivery session name option

type DqTransportOption

type DqTransportOption = func(t dqTransportConfig) dqTransportConfig

DqTransportOption func type for alter default distributed queue transport options

func Name

func Name(name string) DqTransportOption

Name Distributed queue name option

func SchedulerActivation

func SchedulerActivation(schedulerActivation float64) DqTransportOption

SchedulerActivation Distributed queue schedulerActivation option

func SchedulerHeartbeat

func SchedulerHeartbeat(schedulerHeartbeat float64) DqTransportOption

SchedulerHeartbeat Distributed queue schedulerHeartbeat option

func SchedulerWeight

func SchedulerWeight(schedulerWeight uint16) DqTransportOption

SchedulerWeight Distributed queue schedulerWeight option

func WorkerTasks

func WorkerTasks(workerTasks uint32) DqTransportOption

WorkerTasks Distributed queue workerTasks option

func WorkerWeight

func WorkerWeight(workerWeight uint32) DqTransportOption

WorkerWeight Distributed queue workerWeight option

type FieldID

type FieldID = uint16

FieldID field identifier type

type FtCallback

type FtCallback = func(string, uint)

FtCallback signature for the fault tollerance event handler function

type FtMember

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

FtMember event for listening on subject

func (*FtMember) Create

func (ft *FtMember) Create(
	queue RvQueue,
	callback FtCallback,
	transport RvNetTransport,
	groupName string,
	weight uint16,
	activeGoal uint16,
	heartbeatInterval float64,
	preparationInterval float64,
	activationInterval float64,
) error

Create initialize fault tollerance member group

func (*FtMember) Destroy

func (ft *FtMember) Destroy() error

Destroy put the member in an invalid state, cleaning memory

type NetTransportOption

type NetTransportOption = func(t netTransportConfig) netTransportConfig

NetTransportOption func type for alter default net transport options

func Daemon

func Daemon(daemon string) NetTransportOption

Daemon RendezVous bus service option

func Description

func Description(description string) NetTransportOption

Description RendezVous bus service option

func Network

func Network(network string) NetTransportOption

Network RendezVous bus service option

func Service

func Service(service string) NetTransportOption

Service RendezVous bus service option

type QueueOption

type QueueOption = func(t queueConfig) queueConfig

QueueOption func type for alter default net transport options

func Label

func Label(label string) QueueOption

Label RendezVous bus service option

type RvCallback

type RvCallback = func(*RvMessage)

RvCallback signature for the message handler function

type RvCmListener

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

RvCmListener event for listening on subject

func (*RvCmListener) Create

func (l *RvCmListener) Create(queue RvQueue, callback RvCallback, transport RvCmTransport, subject string) error

Create initialize listener and start to collect message in queue

func (*RvCmListener) Destroy

func (l *RvCmListener) Destroy() error

Destroy put the listener in an invalid state, cleaning memory

type RvCmTransport

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

RvCmTransport a certified message delivery transport, connected to service-network-daemon RendezVous bus

func (RvCmTransport) AddListener

func (t RvCmTransport) AddListener(session, subject string) error

AddListener request-reply protocol : send the response to a message

func (*RvCmTransport) Create

func (t *RvCmTransport) Create(transport *RvNetTransport, opts ...CmTransportOption) error

Create initialize a certified message delivery transport. Options: service, network, daemon, description

func (*RvCmTransport) Destroy

func (t *RvCmTransport) Destroy() error

Destroy put the transport in an invalid state, cleaning memory

func (RvCmTransport) Send

func (t RvCmTransport) Send(msg RvMessage) error

Send publish/subscribe protocol : publish a message

func (RvCmTransport) SendReply

func (t RvCmTransport) SendReply(res, req RvMessage) error

SendReply request-reply protocol : send the response to a message

func (RvCmTransport) SendRequest

func (t RvCmTransport) SendRequest(req RvMessage, res *RvMessage, timeout float64) error

SendRequest request-reply protocol : send a message

type RvDispatchable

type RvDispatchable interface {
	Dispatch() error
	Poll() error
	TimedDispatch() error
}

RvDispatchable Common interface for queues and queue groups

type RvDqListener

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

RvDqListener event for listening on subject

func (*RvDqListener) Create

func (l *RvDqListener) Create(queue RvQueue, callback RvCallback, transport RvDqTransport, subject string) error

Create initialize listener and start to collect message in queue

func (*RvDqListener) Destroy

func (l *RvDqListener) Destroy() error

Destroy put the listener in an invalid state, cleaning memory

type RvDqTransport

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

RvDqTransport the distributed queue transport transport

func (*RvDqTransport) Create

func (t *RvDqTransport) Create(transport *RvNetTransport, opts ...DqTransportOption) error

Create initialize a distributed queue transport. Options: name, workerWeight, workerTasks, schedulerWeight, schedulerHeartbeat, schedulerActivation

func (*RvDqTransport) Destroy

func (t *RvDqTransport) Destroy() error

Destroy put the transport in an invalid state, cleaning memory

type RvError

type RvError struct {
	Code int
	Text string
}

RvError Tibco RendezVous error

func NewRvError

func NewRvError(code C.tibrv_status) *RvError

NewRvError create Tibco RendezVous error

func (*RvError) Error

func (e *RvError) Error() string

Error implements the error interface

func (*RvError) String

func (e *RvError) String() string

String convert to message string representation

type RvListener

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

RvListener event for listening on subject

func (*RvListener) Create

func (l *RvListener) Create(queue RvQueue, callback RvCallback, transport RvNetTransport, subject string) error

Create initialize listener and start to collect message in queue

func (*RvListener) Destroy

func (l *RvListener) Destroy() error

Destroy put the listener in an invalid state, cleaning memory

type RvMessage

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

RvMessage internal implementation

func JSON

func JSON(doc string) (*RvMessage, error)

JSON convert a json string to RvMessage

func (*RvMessage) Create

func (m *RvMessage) Create() error

Create initialize message memory structs

func (*RvMessage) Destroy

func (m *RvMessage) Destroy() error

Destroy put the message in a invalid state, cleaning memory

func (*RvMessage) GetBool

func (m *RvMessage) GetBool(name string) (bool, error)

GetBool read a 8bit integer field

func (*RvMessage) GetFields

func (m *RvMessage) GetFields() (map[string]uint8, error)

GetFields returns a map with field names as keys and field types values

func (*RvMessage) GetFloat32

func (m *RvMessage) GetFloat32(name string) (float32, error)

GetFloat32 read a 32bit float field

func (*RvMessage) GetFloat32Array

func (m *RvMessage) GetFloat32Array(name string) ([]float32, error)

GetFloat32Array read a 32bit float array field

func (*RvMessage) GetFloat64

func (m *RvMessage) GetFloat64(name string) (float64, error)

GetFloat64 read a 64bit float field

func (*RvMessage) GetFloat64Array

func (m *RvMessage) GetFloat64Array(name string) ([]float64, error)

GetFloat64Array read a 64bit float array field

func (*RvMessage) GetInt8

func (m *RvMessage) GetInt8(name string) (int8, error)

GetInt8 read a 8bit integer field

func (*RvMessage) GetInt8Array

func (m *RvMessage) GetInt8Array(name string) ([]int8, error)

GetInt8Array read a 8bit integer array field

func (*RvMessage) GetInt16

func (m *RvMessage) GetInt16(name string) (int16, error)

GetInt16 read a 16bit integer field

func (*RvMessage) GetInt16Array

func (m *RvMessage) GetInt16Array(name string) ([]int16, error)

GetInt16Array read a 16bit integer array field

func (*RvMessage) GetInt32

func (m *RvMessage) GetInt32(name string) (int32, error)

GetInt32 read a 32bit integer field

func (*RvMessage) GetInt32Array

func (m *RvMessage) GetInt32Array(name string) ([]int32, error)

GetInt32Array read a 32bit integer array field

func (*RvMessage) GetInt64

func (m *RvMessage) GetInt64(name string) (int64, error)

GetInt64 read a 64bit integer field

func (*RvMessage) GetInt64Array

func (m *RvMessage) GetInt64Array(name string) ([]int64, error)

GetInt64Array read a 64bit integer array field

func (*RvMessage) GetNumFields

func (m *RvMessage) GetNumFields() (uint, error)

GetNumFields returns the number of fields of the message

func (*RvMessage) GetReplySubject

func (m *RvMessage) GetReplySubject() (string, error)

GetReplySubject get the reply subject. Used for request/reply (reply subject)

func (*RvMessage) GetRvMessage

func (m *RvMessage) GetRvMessage(name string) (RvMessage, error)

GetRvMessage read a nested message

func (*RvMessage) GetSendSubject

func (m *RvMessage) GetSendSubject() (string, error)

GetSendSubject get the publish subject. Used for publish/subscribe and request/reply (request subject)

func (*RvMessage) GetString

func (m *RvMessage) GetString(name string) (string, error)

GetString read a string field

func (*RvMessage) GetStringArray

func (m *RvMessage) GetStringArray(name string) ([]string, error)

GetStringArray read a string array field

func (*RvMessage) GetUInt8

func (m *RvMessage) GetUInt8(name string) (uint8, error)

GetUInt8 read a 8bit unsigned integer field

func (*RvMessage) GetUInt8Array

func (m *RvMessage) GetUInt8Array(name string) ([]uint8, error)

GetUInt8Array read a 8bit integer array field

func (*RvMessage) GetUInt16

func (m *RvMessage) GetUInt16(name string) (uint16, error)

GetUInt16 read a 16bit unsigned integer field

func (*RvMessage) GetUInt16Array

func (m *RvMessage) GetUInt16Array(name string) ([]uint16, error)

GetUInt16Array read a 16bit integer array field

func (*RvMessage) GetUInt32

func (m *RvMessage) GetUInt32(name string) (uint32, error)

GetUInt32 read a 32bit unsigned integer field

func (*RvMessage) GetUInt32Array

func (m *RvMessage) GetUInt32Array(name string) ([]uint32, error)

GetUInt32Array read a 32bit integer array field

func (*RvMessage) GetUInt64

func (m *RvMessage) GetUInt64(name string) (uint64, error)

GetUInt64 read a 64bit unsigned integer field

func (*RvMessage) GetUInt64Array

func (m *RvMessage) GetUInt64Array(name string) ([]uint64, error)

GetUInt64Array read a 64bit integer array field

func (*RvMessage) GetXML

func (m *RvMessage) GetXML(name string) ([]byte, error)

GetXML read a XML field

func (*RvMessage) JSON

func (m *RvMessage) JSON() (string, error)

JSON returns a json string representation of the message

func (*RvMessage) RemoveField

func (m *RvMessage) RemoveField(name string) error

RemoveField remove field by name

func (*RvMessage) SetBool

func (m *RvMessage) SetBool(name string, value bool) error

SetBool add a 8bit integer field

func (*RvMessage) SetFloat32

func (m *RvMessage) SetFloat32(name string, value float32) error

SetFloat32 add a 32bit float field

func (*RvMessage) SetFloat32Array

func (m *RvMessage) SetFloat32Array(name string, value []float32) error

SetFloat32Array add a 32bit float field

func (*RvMessage) SetFloat64

func (m *RvMessage) SetFloat64(name string, value float64) error

SetFloat64 add a 64bit float field

func (*RvMessage) SetFloat64Array

func (m *RvMessage) SetFloat64Array(name string, value []float64) error

SetFloat64Array add a 64bit float field

func (*RvMessage) SetInt8

func (m *RvMessage) SetInt8(name string, value int8) error

SetInt8 add a 8bit integer field

func (*RvMessage) SetInt8Array

func (m *RvMessage) SetInt8Array(name string, value []int8) error

SetInt8Array add a 8bit integer array field

func (*RvMessage) SetInt16

func (m *RvMessage) SetInt16(name string, value int16) error

SetInt16 add a 16bit integer field

func (*RvMessage) SetInt16Array

func (m *RvMessage) SetInt16Array(name string, value []int16) error

SetInt16Array add a 16bit integer field

func (*RvMessage) SetInt32

func (m *RvMessage) SetInt32(name string, value int32) error

SetInt32 add a 32bit integer field

func (*RvMessage) SetInt32Array

func (m *RvMessage) SetInt32Array(name string, value []int32) error

SetInt32Array add a 32bit integer field

func (*RvMessage) SetInt64

func (m *RvMessage) SetInt64(name string, value int64) error

SetInt64 add a 64bit integer field

func (*RvMessage) SetInt64Array

func (m *RvMessage) SetInt64Array(name string, value []int64) error

SetInt64Array add a 64bit integer field

func (*RvMessage) SetReplySubject

func (m *RvMessage) SetReplySubject(subject string) error

SetReplySubject set the reply subject. Used for request/reply (reply subject)

func (*RvMessage) SetRvMessage

func (m *RvMessage) SetRvMessage(name string, value RvMessage) error

SetRvMessage add a nested message

func (*RvMessage) SetSendSubject

func (m *RvMessage) SetSendSubject(subject string) error

SetSendSubject set the publish subject. Used for publish/subscribe and request/reply (request subject)

func (*RvMessage) SetString

func (m *RvMessage) SetString(name string, value string) error

SetString add a string field

func (*RvMessage) SetStringArray

func (m *RvMessage) SetStringArray(name string, value []string) error

SetStringArray add a string array field

func (*RvMessage) SetUInt8

func (m *RvMessage) SetUInt8(name string, value uint8) error

SetUInt8 add a 8bit unsigned integer field

func (*RvMessage) SetUInt8Array

func (m *RvMessage) SetUInt8Array(name string, value []uint8) error

SetUInt8Array add a 8bit integer field

func (*RvMessage) SetUInt16

func (m *RvMessage) SetUInt16(name string, value uint16) error

SetUInt16 add a 16bit unsigned integer field

func (*RvMessage) SetUInt16Array

func (m *RvMessage) SetUInt16Array(name string, value []uint16) error

SetUInt16Array add a 16bit integer field

func (*RvMessage) SetUInt32

func (m *RvMessage) SetUInt32(name string, value uint32) error

SetUInt32 add a 32bit unsigned integer field

func (*RvMessage) SetUInt32Array

func (m *RvMessage) SetUInt32Array(name string, value []uint32) error

SetUInt32Array add a 32bit integer field

func (*RvMessage) SetUInt64

func (m *RvMessage) SetUInt64(name string, value uint64) error

SetUInt64 add a 64bit unsigned integer field

func (*RvMessage) SetUInt64Array

func (m *RvMessage) SetUInt64Array(name string, value []uint64) error

SetUInt64Array add a 64bit integer field

func (*RvMessage) SetXML

func (m *RvMessage) SetXML(name string, value []byte) error

SetXML add a XML field

func (*RvMessage) String

func (m *RvMessage) String() string

String return a string representation of the message

type RvNetTransport

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

RvNetTransport a regular transport, connected to service-network-daemon RendezVous bus

func (*RvNetTransport) Create

func (t *RvNetTransport) Create(opts ...NetTransportOption) error

Create initialize a regular transport. Options: service, network, daemon, description

func (RvNetTransport) CreateInbox

func (t RvNetTransport) CreateInbox() (string, error)

CreateInbox create a 64byte inbox

func (*RvNetTransport) Destroy

func (t *RvNetTransport) Destroy() error

Destroy put the transport in an invalid state, cleaning memory

func (RvNetTransport) Send

func (t RvNetTransport) Send(msg RvMessage) error

Send publish/subscribe protocol : publish a message

func (RvNetTransport) SendReply

func (t RvNetTransport) SendReply(res, req RvMessage) error

SendReply request-reply protocol : send the response to a message

func (RvNetTransport) SendRequest

func (t RvNetTransport) SendRequest(req RvMessage, res *RvMessage, timeout float64) error

SendRequest request-reply protocol : send a message

type RvQueue

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

RvQueue event queue

func (*RvQueue) Create

func (q *RvQueue) Create(opts ...QueueOption) error

Create initialize the event queue. Options: label

func (*RvQueue) Destroy

func (q *RvQueue) Destroy() error

Destroy put the queue in an invalid state, cleaning memory

func (*RvQueue) Dispatch

func (q *RvQueue) Dispatch() error

Dispatch ask for next message, if empty, blocks

func (*RvQueue) GetCount

func (q *RvQueue) GetCount() (uint32, error)

GetCount number of pending messages in queue

func (*RvQueue) GetPriority

func (q *RvQueue) GetPriority() (uint32, error)

GetPriority return queue priority number

func (*RvQueue) Poll

func (q *RvQueue) Poll() error

Poll ask for next message, if empty continue

func (*RvQueue) SetPriority

func (q *RvQueue) SetPriority(priority uint32) error

SetPriority set queue priority number

func (*RvQueue) TimedDispatch

func (q *RvQueue) TimedDispatch(timeout float64) error

TimedDispatch ask for next message, if empty wait for

type RvQueueGroup

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

RvQueueGroup event queue

func (*RvQueueGroup) Add

func (g *RvQueueGroup) Add(q RvQueue) error

Add add a queue to the group

func (*RvQueueGroup) Create

func (g *RvQueueGroup) Create() error

Create initialize the event queue

func (*RvQueueGroup) Destroy

func (g *RvQueueGroup) Destroy() error

Destroy put the queue in an invalid state, cleaning memory

func (*RvQueueGroup) Dispatch

func (g *RvQueueGroup) Dispatch() error

Dispatch ask for next message, if empty, blocks

func (*RvQueueGroup) Poll

func (g *RvQueueGroup) Poll() error

Poll ask for next message, if empty continue

func (*RvQueueGroup) Remove

func (g *RvQueueGroup) Remove(q RvQueue) error

Remove remove a queue from the group

func (*RvQueueGroup) TimedDispatch

func (g *RvQueueGroup) TimedDispatch(timeout float64) error

TimedDispatch ask for next message, if empty wait for

type RvTransport

type RvTransport interface {
	Send(msg RvMessage) error
	SendRequest(req RvMessage, res *RvMessage, timeout float64) error
	SendReply(res, req RvMessage) error
	// contains filtered or unexported methods
}

RvTransport a transport object represents a delivery mechanism for messages.

type RvVectListener

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

RvVectListener event for listening on subject

func (*RvVectListener) Create

func (l *RvVectListener) Create(queue RvQueue, callback RvCallback, transport RvNetTransport, subject string) error

Create initialize listener and start to collect message in queue

func (*RvVectListener) Destroy

func (l *RvVectListener) Destroy() error

Destroy put the listener in an invalid state, cleaning memory

Directories

Path Synopsis
examples
json command
rvlisten command
rvsend command
sendreply command
sendrequest command
simple command
xml command

Jump to

Keyboard shortcuts

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