mirror of
				https://github.com/redis/go-redis.git
				synced 2025-11-04 02:33:24 +03:00 
			
		
		
		
	* e2e wip * cleanup * remove unused fault injector mock * errChan in test * remove log messages tests * cleanup log messages * s/hitless/maintnotifications/ * fix moving when none * better logs * test with second client after action has started * Fixes Signed-off-by: Elena Kolevska <elena@kolevska.com> * Test fix Signed-off-by: Elena Kolevska <elena@kolevska.com> * feat(e2e-test): Extended e2e tests * imroved e2e test resiliency --------- Signed-off-by: Elena Kolevska <elena@kolevska.com> Co-authored-by: Elena Kolevska <elena@kolevska.com> Co-authored-by: Elena Kolevska <elena-kolevska@users.noreply.github.com> Co-authored-by: Hristo Temelski <hristo.temelski@redis.com>
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Package interfaces provides shared interfaces used by both the main redis package
 | 
						|
// and the maintnotifications upgrade package to avoid circular dependencies.
 | 
						|
package interfaces
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"net"
 | 
						|
	"time"
 | 
						|
)
 | 
						|
 | 
						|
// NotificationProcessor is (most probably) a push.NotificationProcessor
 | 
						|
// forward declaration to avoid circular imports
 | 
						|
type NotificationProcessor interface {
 | 
						|
	RegisterHandler(pushNotificationName string, handler interface{}, protected bool) error
 | 
						|
	UnregisterHandler(pushNotificationName string) error
 | 
						|
	GetHandler(pushNotificationName string) interface{}
 | 
						|
}
 | 
						|
 | 
						|
// ClientInterface defines the interface that clients must implement for maintnotifications upgrades.
 | 
						|
type ClientInterface interface {
 | 
						|
	// GetOptions returns the client options.
 | 
						|
	GetOptions() OptionsInterface
 | 
						|
 | 
						|
	// GetPushProcessor returns the client's push notification processor.
 | 
						|
	GetPushProcessor() NotificationProcessor
 | 
						|
}
 | 
						|
 | 
						|
// OptionsInterface defines the interface for client options.
 | 
						|
// Uses an adapter pattern to avoid circular dependencies.
 | 
						|
type OptionsInterface interface {
 | 
						|
	// GetReadTimeout returns the read timeout.
 | 
						|
	GetReadTimeout() time.Duration
 | 
						|
 | 
						|
	// GetWriteTimeout returns the write timeout.
 | 
						|
	GetWriteTimeout() time.Duration
 | 
						|
 | 
						|
	// GetNetwork returns the network type.
 | 
						|
	GetNetwork() string
 | 
						|
 | 
						|
	// GetAddr returns the connection address.
 | 
						|
	GetAddr() string
 | 
						|
 | 
						|
	// IsTLSEnabled returns true if TLS is enabled.
 | 
						|
	IsTLSEnabled() bool
 | 
						|
 | 
						|
	// GetProtocol returns the protocol version.
 | 
						|
	GetProtocol() int
 | 
						|
 | 
						|
	// GetPoolSize returns the connection pool size.
 | 
						|
	GetPoolSize() int
 | 
						|
 | 
						|
	// NewDialer returns a new dialer function for the connection.
 | 
						|
	NewDialer() func(context.Context) (net.Conn, error)
 | 
						|
}
 |