eventsubscriber

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: May 10, 2024 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AbstractEventSubscriber

type AbstractEventSubscriber struct {
	EventSubscriber
	// contains filtered or unexported fields
}

Base class for event subscribers, implementing all service registry functionalities. The abstract class does not implement the subscribe method and this must be implemented by a sub class.

func (*AbstractEventSubscriber) NewSubscription

func (e *AbstractEventSubscriber) NewSubscription(eventType types.EventType, eventHandlerAddress string, eventHandlerPort int, eventHandlerSystemName string) (*SubscriptionKey, error)

Saves a notion of the subscription, so that the same connection is subscribed to multiple times. A subscription is identified by eventType, eventHandlerAddress, eventHandlerPort, and eventHandlerSystemName. A subscriptionKey is created and saved from those attributes. If a new subscription is found to alredy exist an error is given.

func (*AbstractEventSubscriber) NewSubscriptionKey

func (e *AbstractEventSubscriber) NewSubscriptionKey(eventType types.EventType, eventHandlerAddress string, eventHandlerPort int, eventHandlerSystemName string) SubscriptionKey

The subscriptionKey identifies an unique subscription, it is identified by eventType, eventHandlerAddress, eventHandlerPort, and eventHandlerSystemName.

func (*AbstractEventSubscriber) RemoveSubscription

func (e *AbstractEventSubscriber) RemoveSubscription(subscriptionKey SubscriptionKey)

func (*AbstractEventSubscriber) Subscribe

func (e *AbstractEventSubscriber) Subscribe(eventType types.EventType, receiver Receiver) error

func (*AbstractEventSubscriber) UnregisterEventSubscriberSystem

func (e *AbstractEventSubscriber) UnregisterEventSubscriberSystem() error

func (*AbstractEventSubscriber) Unsubscribe

func (e *AbstractEventSubscriber) Unsubscribe(eventType types.EventType) error

type EventSubscriber

type EventSubscriber interface {
	UnregisterEventSubscriberSystem() error

	Subscribe(eventType types.EventType, receiver Receiver) error
	Unsubscribe(eventType types.EventType) error
	// contains filtered or unexported methods
}

Event subscriber, is a system that can subscribe for events from a certain messaging broker.

func EventSubscriberFactory

func EventSubscriberFactory(
	eventHandlerImplementation types.EventHandlerImplementationType,
	systemDomainAddress string,
	systemDomainPort int,
	systemName string,
	serviceRegistryAddress string,
	serviceRegistryPort int,
	serviceRegistryImplementation serviceregistry.ServiceRegistryImplementationType,
	certFilePath string,
	keyFilePath string,
	truststoreFilePath string,
) (EventSubscriber, error)

Creates a new event subscriber system, that can subscribe for events from event handlers that uses the eventHandlerImplementation. The event subscriber will automatically on creation be registered to the service registry as a system.

type RabbitmqEventSubscriber

type RabbitmqEventSubscriber struct {

	// Extends a base event subscriber class, giving general event subscriber functionalities.
	// The function subscribe, must be implemented as AbstractEventSubscriber does not do so.
	*AbstractEventSubscriber
	// contains filtered or unexported fields
}

RabbitmqEventSubscriber, can subscribe for events given from an RabbitmqEventHandler

func (*RabbitmqEventSubscriber) Unsubscribe

func (r *RabbitmqEventSubscriber) Unsubscribe(eventType types.EventType) error

Overrides the super class's Unsubscribe method, and stops all connections before calling the super class's Unsubscribe.

type Receiver

type Receiver interface {

	// Called when a subscriber gets an event (if given to the subscribe method).
	ReceiveEvent(event []byte)
}

A Receiver provides a method to receive an event, this is used in the EventSubscriber systems when subscribing. Thus, a specific implementation of what to do when receiving an event can be written, and injected to the subscriber.

type SubscriptionKey

type SubscriptionKey string

Jump to

Keyboard shortcuts

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