Documentation
¶
Index ¶
- func NewColorServer(provider *ColorProvider) *colorServer
- func StartPrometheusServer()
- type BaseHTTPServer
- type BaseProvider
- func (bprv *BaseProvider) CheckRequestStatus() *BaseRequestStatus
- func (bprv *BaseProvider) CheckUnlatch(now time.Time)
- func (bprv *BaseProvider) Debugf(format string, args ...interface{})
- func (bprv *BaseProvider) DelayIfNeeded()
- func (bprv *BaseProvider) ErrorFraction() int
- func (bprv *BaseProvider) GetUserHeaderName() string
- func (bprv *BaseProvider) HandleRequest(start time.Time, prvReq *ProviderRequest) ProviderResponse
- func (bprv *BaseProvider) Infof(format string, args ...interface{})
- func (bprv *BaseProvider) IsLatched() bool
- func (bprv *BaseProvider) Lock()
- func (bprv *BaseProvider) SetDebug(debug bool)
- func (bprv *BaseProvider) SetErrorFraction(fraction int)
- func (bprv *BaseProvider) SetGetHandler(handler ProviderGetHandler)
- func (bprv *BaseProvider) SetHTTPGetHandler(handler HTTPGetHandler)
- func (bprv *BaseProvider) SetLatched(latched bool)
- func (bprv *BaseProvider) SetLogger(logger *slog.Logger)
- func (bprv *BaseProvider) SetPostHook(hook ProviderHook)
- func (bprv *BaseProvider) SetPreHook(hook ProviderHook)
- func (bprv *BaseProvider) SetUpdater(updater ProviderUpdater)
- func (bprv *BaseProvider) SetupBasicsFromEnvironment()
- func (bprv *BaseProvider) SetupFromEnvironment()
- func (bprv *BaseProvider) Unlock()
- func (bprv *BaseProvider) Warnf(format string, args ...interface{})
- type BaseRequestStatus
- type ColorProvider
- type FaceProvider
- type FaceResponse
- type GUIProvider
- type GUIServer
- type HTTPGetHandler
- type ProviderGetHandler
- type ProviderHook
- type ProviderInterface
- type ProviderRequest
- type ProviderResponse
- type ProviderUpdater
- type SmileyProvider
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewColorServer ¶
func NewColorServer(provider *ColorProvider) *colorServer
func StartPrometheusServer ¶
func StartPrometheusServer()
Start the HTTP server for Prometheus metrics.
Types ¶
type BaseHTTPServer ¶
type BaseHTTPServer struct {
// contains filtered or unexported fields
}
func NewBaseHTTPServer ¶
func NewBaseHTTPServer(provider *BaseProvider) *BaseHTTPServer
func (*BaseHTTPServer) StandardError ¶
func (bsrv *BaseHTTPServer) StandardError(w http.ResponseWriter, r *http.Request, statusCode int, responseBody string)
func (*BaseHTTPServer) StandardResponse ¶
func (bsrv *BaseHTTPServer) StandardResponse(w http.ResponseWriter, r *http.Request, response ProviderResponse)
func (*BaseHTTPServer) Start ¶
func (bsrv *BaseHTTPServer) Start(addr string) error
type BaseProvider ¶
type BaseProvider struct {
Name string // Name of this kind of provider
Key string // Descriptive string for this provider instance
// contains filtered or unexported fields
}
func (*BaseProvider) CheckRequestStatus ¶
func (bprv *BaseProvider) CheckRequestStatus() *BaseRequestStatus
func (*BaseProvider) CheckUnlatch ¶
func (bprv *BaseProvider) CheckUnlatch(now time.Time)
CheckUnlatch checks to see if we should unlatch the provider.
func (*BaseProvider) Debugf ¶
func (bprv *BaseProvider) Debugf(format string, args ...interface{})
func (*BaseProvider) DelayIfNeeded ¶
func (bprv *BaseProvider) DelayIfNeeded()
DelayIfNeeded delays if there are delay buckets set.
func (*BaseProvider) ErrorFraction ¶
func (bprv *BaseProvider) ErrorFraction() int
func (*BaseProvider) GetUserHeaderName ¶
func (bprv *BaseProvider) GetUserHeaderName() string
func (*BaseProvider) HandleRequest ¶
func (bprv *BaseProvider) HandleRequest(start time.Time, prvReq *ProviderRequest) ProviderResponse
func (*BaseProvider) Infof ¶
func (bprv *BaseProvider) Infof(format string, args ...interface{})
func (*BaseProvider) IsLatched ¶
func (bprv *BaseProvider) IsLatched() bool
func (*BaseProvider) Lock ¶
func (bprv *BaseProvider) Lock()
func (*BaseProvider) SetDebug ¶
func (bprv *BaseProvider) SetDebug(debug bool)
func (*BaseProvider) SetErrorFraction ¶
func (bprv *BaseProvider) SetErrorFraction(fraction int)
func (*BaseProvider) SetGetHandler ¶
func (bprv *BaseProvider) SetGetHandler(handler ProviderGetHandler)
SetGetHandler sets the function that will be called to get the data for a given provider request.
func (*BaseProvider) SetHTTPGetHandler ¶
func (bprv *BaseProvider) SetHTTPGetHandler(handler HTTPGetHandler)
SetHTTPGetHandler sets the function that will be called to handle HTTP GET requests. This is lower-level than SetGetHandler; the default HTTP GET handler calls the provider-level Get handler (set with SetGetHandler) for requests that don't trip the error fraction or get rate limited.
func (*BaseProvider) SetLatched ¶
func (bprv *BaseProvider) SetLatched(latched bool)
func (*BaseProvider) SetLogger ¶
func (bprv *BaseProvider) SetLogger(logger *slog.Logger)
func (*BaseProvider) SetPostHook ¶
func (bprv *BaseProvider) SetPostHook(hook ProviderHook)
func (*BaseProvider) SetPreHook ¶
func (bprv *BaseProvider) SetPreHook(hook ProviderHook)
func (*BaseProvider) SetUpdater ¶
func (bprv *BaseProvider) SetUpdater(updater ProviderUpdater)
func (*BaseProvider) SetupBasicsFromEnvironment ¶
func (bprv *BaseProvider) SetupBasicsFromEnvironment()
func (*BaseProvider) SetupFromEnvironment ¶
func (bprv *BaseProvider) SetupFromEnvironment()
func (*BaseProvider) Unlock ¶
func (bprv *BaseProvider) Unlock()
func (*BaseProvider) Warnf ¶
func (bprv *BaseProvider) Warnf(format string, args ...interface{})
type BaseRequestStatus ¶
type BaseRequestStatus struct {
// contains filtered or unexported fields
}
func (*BaseRequestStatus) IsErrored ¶
func (rstat *BaseRequestStatus) IsErrored() bool
func (*BaseRequestStatus) IsLatched ¶
func (rstat *BaseRequestStatus) IsLatched() bool
func (*BaseRequestStatus) IsRateLimited ¶
func (rstat *BaseRequestStatus) IsRateLimited() bool
func (*BaseRequestStatus) Message ¶
func (rstat *BaseRequestStatus) Message() string
func (*BaseRequestStatus) StatusCode ¶
func (rstat *BaseRequestStatus) StatusCode() int
type ColorProvider ¶
type ColorProvider struct {
BaseProvider
// contains filtered or unexported fields
}
func NewColorProviderFromEnvironment ¶
func NewColorProviderFromEnvironment() *ColorProvider
func (*ColorProvider) Get ¶
func (cprv *ColorProvider) Get(prvReq *ProviderRequest) ProviderResponse
type FaceProvider ¶
type FaceProvider struct {
BaseProvider
// contains filtered or unexported fields
}
func NewFaceProviderFromEnvironment ¶
func NewFaceProviderFromEnvironment() *FaceProvider
func (*FaceProvider) Get ¶
func (sprv *FaceProvider) Get(prvReq *ProviderRequest) ProviderResponse
type FaceResponse ¶
type FaceResponse struct {
// contains filtered or unexported fields
}
type GUIProvider ¶
type GUIProvider struct {
BaseProvider
// contains filtered or unexported fields
}
func NewGUIProviderFromEnvironment ¶
func NewGUIProviderFromEnvironment() *GUIProvider
func (*GUIProvider) Get ¶
func (gprv *GUIProvider) Get(prvReq *ProviderRequest) ProviderResponse
This should never ever be called.
func (*GUIProvider) HTTPGetHandler ¶
func (gprv *GUIProvider) HTTPGetHandler(w http.ResponseWriter, r *http.Request)
type GUIServer ¶
type GUIServer struct {
*BaseHTTPServer
}
func NewGUIServer ¶
func NewGUIServer(prv *BaseProvider) *GUIServer
type HTTPGetHandler ¶
type HTTPGetHandler func(w http.ResponseWriter, r *http.Request)
type ProviderGetHandler ¶
type ProviderGetHandler func(prvReq *ProviderRequest) ProviderResponse
type ProviderHook ¶
type ProviderHook func(*BaseProvider, *ProviderRequest, *BaseRequestStatus) bool
A ProviderHook is a function that takes a ProviderRequest and a BaseRequestStatus and returns a boolean indicating whether the request should proceed. If desired, the ProviderHook may modify the BaseRequestStatus in place to set the status code and a message to hand back to the client.
type ProviderInterface ¶
type ProviderInterface interface {
SetupFromEnvironment()
Get(prvReq *ProviderRequest) ProviderResponse
Center(prvReq *ProviderRequest) ProviderResponse
Edge(prvReq *ProviderRequest) ProviderResponse
}
type ProviderRequest ¶
type ProviderRequest struct {
// contains filtered or unexported fields
}
func (*ProviderRequest) InfoStr ¶
func (prvReq *ProviderRequest) InfoStr() string
type ProviderResponse ¶
func HandleGRPC ¶
func HandleGRPC(ctx context.Context, prv *BaseProvider, subrequest string, row, col int) (*ProviderResponse, error)
func ProviderResponseEmpty ¶
func ProviderResponseEmpty() ProviderResponse
func ProviderResponseMethodNotAllowed ¶
func ProviderResponseMethodNotAllowed(method string) ProviderResponse
func ProviderResponseNotImplemented ¶
func ProviderResponseNotImplemented() ProviderResponse
func (*ProviderResponse) Add ¶
func (pr *ProviderResponse) Add(key string, value interface{})
func (*ProviderResponse) AddError ¶
func (pr *ProviderResponse) AddError(error string)
func (*ProviderResponse) GetErrors ¶
func (pr *ProviderResponse) GetErrors() string
func (*ProviderResponse) GetString ¶
func (pr *ProviderResponse) GetString(key string) string
type ProviderUpdater ¶
type ProviderUpdater func(*BaseProvider)
A ProviderUpdater is a function that updates the provider's state based on external things. It does _not_ get to short-circuit the request; it only gets to update state.
type SmileyProvider ¶
type SmileyProvider struct {
BaseProvider
// contains filtered or unexported fields
}
func NewSmileyProviderFromEnvironment ¶
func NewSmileyProviderFromEnvironment() *SmileyProvider
func (*SmileyProvider) Get ¶
func (sprv *SmileyProvider) Get(prvReq *ProviderRequest) ProviderResponse