Documentation
¶
Index ¶
- type Provider
- func (p *Provider[K, V]) GetAPIConfig() config.APIConfig
- func (p *Provider[K, V]) GetAPIHandler() apihandler.APIQueryHandler[K, V]
- func (p *Provider[K, V]) GetData() map[K]providertypes.ResolvedResult[V]
- func (p *Provider[K, V]) GetIDs() []K
- func (p *Provider[K, V]) GetWebSocketHandler() wshandlers.WebSocketQueryHandler[K, V]
- func (p *Provider[K, V]) IsRunning() bool
- func (p *Provider[K, V]) Name() string
- func (p *Provider[K, V]) Start(ctx context.Context) error
- func (p *Provider[K, V]) Stop()
- func (p *Provider[K, V]) Type() providertypes.ProviderType
- func (p *Provider[K, V]) Update(opts ...UpdateOption[K, V])
- type ProviderOption
- func WithAPIConfig[K providertypes.ResponseKey, V providertypes.ResponseValue](cfg config.APIConfig) ProviderOption[K, V]
- func WithAPIQueryHandler[K providertypes.ResponseKey, V providertypes.ResponseValue](api apihandlers.APIQueryHandler[K, V]) ProviderOption[K, V]
- func WithIDs[K providertypes.ResponseKey, V providertypes.ResponseValue](ids []K) ProviderOption[K, V]
- func WithLogger[K providertypes.ResponseKey, V providertypes.ResponseValue](logger *zap.Logger) ProviderOption[K, V]
- func WithMetrics[K providertypes.ResponseKey, V providertypes.ResponseValue](metrics providermetrics.ProviderMetrics) ProviderOption[K, V]
- func WithName[K providertypes.ResponseKey, V providertypes.ResponseValue](name string) ProviderOption[K, V]
- func WithWebSocketConfig[K providertypes.ResponseKey, V providertypes.ResponseValue](cfg config.WebSocketConfig) ProviderOption[K, V]
- func WithWebSocketQueryHandler[K providertypes.ResponseKey, V providertypes.ResponseValue](ws wshandlers.WebSocketQueryHandler[K, V]) ProviderOption[K, V]
- type UpdateOption
- func WithNewAPIHandler[K providertypes.ResponseKey, V providertypes.ResponseValue](apiHandler apihandler.APIQueryHandler[K, V]) UpdateOption[K, V]
- func WithNewIDs[K providertypes.ResponseKey, V providertypes.ResponseValue](ids []K) UpdateOption[K, V]
- func WithNewWebSocketHandler[K providertypes.ResponseKey, V providertypes.ResponseValue](wsHandler wshandlers.WebSocketQueryHandler[K, V]) UpdateOption[K, V]
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Provider ¶
type Provider[K providertypes.ResponseKey, V providertypes.ResponseValue] struct { // contains filtered or unexported fields }
Provider implements a base provider that can be used to build other providers.
func NewProvider ¶
func NewProvider[K providertypes.ResponseKey, V providertypes.ResponseValue](opts ...ProviderOption[K, V]) (*Provider[K, V], error)
NewProvider returns a new Base provider.
func (*Provider[K, V]) GetAPIConfig ¶
GetAPIConfig returns the API configuration for the provider.
func (*Provider[K, V]) GetAPIHandler ¶
func (p *Provider[K, V]) GetAPIHandler() apihandler.APIQueryHandler[K, V]
GetAPIHandler returns the API handler that the provider will use to fetch data.
func (*Provider[K, V]) GetData ¶
func (p *Provider[K, V]) GetData() map[K]providertypes.ResolvedResult[V]
GetData returns the latest data recorded by the provider. The data is constantly updated by the provider's main loop and provides access to the latest data - prices in constant time.
func (*Provider[K, V]) GetIDs ¶
func (p *Provider[K, V]) GetIDs() []K
GetIDs returns the set of IDs that the provider is responsible for fetching data for.
func (*Provider[K, V]) GetWebSocketHandler ¶
func (p *Provider[K, V]) GetWebSocketHandler() wshandlers.WebSocketQueryHandler[K, V]
GetWebSocketHandler returns the WebSocket handler that the provider will use to fetch data.
func (*Provider[K, V]) Start ¶
Start starts the provider's main loop. The provider will fetch the data from the handler and continuously update the data. This blocks until the provider is stopped.
func (*Provider[K, V]) Type ¶
func (p *Provider[K, V]) Type() providertypes.ProviderType
Type returns the type of data handler the provider uses.
func (*Provider[K, V]) Update ¶
func (p *Provider[K, V]) Update(opts ...UpdateOption[K, V])
Update updates the provider with the given options.
type ProviderOption ¶
type ProviderOption[K providertypes.ResponseKey, V providertypes.ResponseValue] func(*Provider[K, V])
ProviderOption is a function that can be used to modify a provider.
func WithAPIConfig ¶
func WithAPIConfig[K providertypes.ResponseKey, V providertypes.ResponseValue](cfg config.APIConfig) ProviderOption[K, V]
WithAPIConfig sets the APIConfig for the provider.
func WithAPIQueryHandler ¶
func WithAPIQueryHandler[K providertypes.ResponseKey, V providertypes.ResponseValue](api apihandlers.APIQueryHandler[K, V]) ProviderOption[K, V]
WithAPIQueryHandler sets the APIQueryHandler for the provider. If your provider utilizes a API (HTTP) based provider, you should use this option to set the APIQueryHandler.
func WithIDs ¶
func WithIDs[K providertypes.ResponseKey, V providertypes.ResponseValue](ids []K) ProviderOption[K, V]
WithIDs sets the IDs that the provider is responsible for fetching data for.
func WithLogger ¶
func WithLogger[K providertypes.ResponseKey, V providertypes.ResponseValue](logger *zap.Logger) ProviderOption[K, V]
WithLogger sets the logger for the provider.
func WithMetrics ¶
func WithMetrics[K providertypes.ResponseKey, V providertypes.ResponseValue](metrics providermetrics.ProviderMetrics) ProviderOption[K, V]
WithMetrics sets the metrics implementation for the provider.
func WithName ¶
func WithName[K providertypes.ResponseKey, V providertypes.ResponseValue](name string) ProviderOption[K, V]
WithName sets the name of the provider.
func WithWebSocketConfig ¶
func WithWebSocketConfig[K providertypes.ResponseKey, V providertypes.ResponseValue](cfg config.WebSocketConfig) ProviderOption[K, V]
WithWebSocketConfig sets the WebSocketConfig for the provider.
func WithWebSocketQueryHandler ¶
func WithWebSocketQueryHandler[K providertypes.ResponseKey, V providertypes.ResponseValue](ws wshandlers.WebSocketQueryHandler[K, V]) ProviderOption[K, V]
WithWebSocketQueryHandler sets the WebSocketQueryHandler for the provider. If your provider utilizes a websocket based provider, you should use this option to set the WebSocketQueryHandler.
type UpdateOption ¶
type UpdateOption[K providertypes.ResponseKey, V providertypes.ResponseValue] func(*Provider[K, V])
UpdateOption are the options that can be used to update the provider.
func WithNewAPIHandler ¶
func WithNewAPIHandler[K providertypes.ResponseKey, V providertypes.ResponseValue]( apiHandler apihandler.APIQueryHandler[K, V], ) UpdateOption[K, V]
WithNewAPIHandler returns an option that sets the new API handler that the provider will use to fetch data.
func WithNewIDs ¶
func WithNewIDs[K providertypes.ResponseKey, V providertypes.ResponseValue](ids []K) UpdateOption[K, V]
WithNewIDs returns an option that sets the new set of IDs that the provider is responsible for fetching data for.
func WithNewWebSocketHandler ¶
func WithNewWebSocketHandler[K providertypes.ResponseKey, V providertypes.ResponseValue]( wsHandler wshandlers.WebSocketQueryHandler[K, V], ) UpdateOption[K, V]
WithNewWebSocketHandler returns an option that sets the new WebSocket handler that the provider will use to fetch data.