diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/doc.go | 9 | ||||
-rw-r--r-- | common/jobs/interface.go | 31 | ||||
-rw-r--r-- | common/kv/interface.go | 42 | ||||
-rw-r--r-- | common/pubsub/interface.go | 56 | ||||
-rw-r--r-- | common/pubsub/psmessage.go | 15 |
5 files changed, 0 insertions, 153 deletions
diff --git a/common/doc.go b/common/doc.go deleted file mode 100644 index adc03351..00000000 --- a/common/doc.go +++ /dev/null @@ -1,9 +0,0 @@ -/* -Package common used to collect common interfaces/structures which might be implemented (or imported) by a different plugins. -For example, 'pubsub' interface might be implemented by memory, redis, websockets and many other plugins. - -Folders: -- kv - contains KV interfaces and structures -- pubsub - contains pub-sub interfaces and structures -*/ -package common diff --git a/common/jobs/interface.go b/common/jobs/interface.go deleted file mode 100644 index 4b5ff70e..00000000 --- a/common/jobs/interface.go +++ /dev/null @@ -1,31 +0,0 @@ -package jobs - -import ( - "context" - - "github.com/spiral/roadrunner/v2/pkg/events" - priorityqueue "github.com/spiral/roadrunner/v2/pkg/priority_queue" - jobState "github.com/spiral/roadrunner/v2/pkg/state/job" - "github.com/spiral/roadrunner/v2/plugins/jobs/job" - "github.com/spiral/roadrunner/v2/plugins/jobs/pipeline" -) - -// Consumer represents a single jobs driver interface -type Consumer interface { - Push(ctx context.Context, job *job.Job) error - Register(ctx context.Context, pipeline *pipeline.Pipeline) error - Run(ctx context.Context, pipeline *pipeline.Pipeline) error - Stop(ctx context.Context) error - - Pause(ctx context.Context, pipeline string) - Resume(ctx context.Context, pipeline string) - - // State provide information about driver state - State(ctx context.Context) (*jobState.State, error) -} - -// Constructor constructs Consumer interface. Endure abstraction. -type Constructor interface { - JobsConstruct(configKey string, e events.Handler, queue priorityqueue.Queue) (Consumer, error) - FromPipeline(pipe *pipeline.Pipeline, e events.Handler, queue priorityqueue.Queue) (Consumer, error) -} diff --git a/common/kv/interface.go b/common/kv/interface.go deleted file mode 100644 index bc6a07b2..00000000 --- a/common/kv/interface.go +++ /dev/null @@ -1,42 +0,0 @@ -package kv - -import kvv1 "github.com/spiral/roadrunner/v2/proto/kv/v1beta" - -// Storage represents single abstract storage. -type Storage interface { - // Has checks if value exists. - Has(keys ...string) (map[string]bool, error) - - // Get loads value content into a byte slice. - Get(key string) ([]byte, error) - - // MGet loads content of multiple values - // Returns the map with existing keys and associated values - MGet(keys ...string) (map[string][]byte, error) - - // Set used to upload item to KV with TTL - // 0 value in TTL means no TTL - Set(items ...*kvv1.Item) error - - // MExpire sets the TTL for multiply keys - MExpire(items ...*kvv1.Item) error - - // TTL return the rest time to live for provided keys - // Not supported for the memcached - TTL(keys ...string) (map[string]string, error) - - // Clear clean the entire storage - Clear() error - - // Delete one or multiple keys. - Delete(keys ...string) error - - // Stop the storage driver - Stop() -} - -// Constructor provides storage based on the config -type Constructor interface { - // KVConstruct provides Storage based on the config key - KVConstruct(key string) (Storage, error) -} diff --git a/common/pubsub/interface.go b/common/pubsub/interface.go deleted file mode 100644 index 5b69d577..00000000 --- a/common/pubsub/interface.go +++ /dev/null @@ -1,56 +0,0 @@ -package pubsub - -import "context" - -/* -This interface is in BETA. It might be changed. -*/ - -// PubSub interface designed to implement on any storage type to provide pub-sub abilities -// Publisher used to receive messages from the PHP app via RPC -// Subscriber should be implemented to subscribe to a topics and provide a connections list per topic -// Reader return next message from the channel -type PubSub interface { - Publisher - Subscriber - Reader -} - -type SubReader interface { - Subscriber - Reader -} - -// Subscriber defines the ability to operate as message passing broker. -// BETA interface -type Subscriber interface { - // Subscribe broker to one or multiple topics. - Subscribe(connectionID string, topics ...string) error - - // Unsubscribe from one or multiply topics - Unsubscribe(connectionID string, topics ...string) error - - // Connections returns all connections associated with the particular topic - Connections(topic string, ret map[string]struct{}) -} - -// Publisher publish one or more messages -// BETA interface -type Publisher interface { - // Publish one or multiple Channel. - Publish(message *Message) error - - // PublishAsync publish message and return immediately - // If error occurred it will be printed into the logger - PublishAsync(message *Message) -} - -// Reader interface should return next message -type Reader interface { - Next(ctx context.Context) (*Message, error) -} - -// Constructor is a special pub-sub interface made to return a constructed PubSub type -type Constructor interface { - PSConstruct(key string) (PubSub, error) -} diff --git a/common/pubsub/psmessage.go b/common/pubsub/psmessage.go deleted file mode 100644 index e33d9284..00000000 --- a/common/pubsub/psmessage.go +++ /dev/null @@ -1,15 +0,0 @@ -package pubsub - -import json "github.com/json-iterator/go" - -// Message represents a single message with payload bound to a particular topic -type Message struct { - // Topic (channel in terms of redis) - Topic string `json:"topic"` - // Payload (on some decode stages might be represented as base64 string) - Payload []byte `json:"payload"` -} - -func (m *Message) MarshalBinary() (data []byte, err error) { - return json.Marshal(m) -} |