63 lines
1.8 KiB
Go
63 lines
1.8 KiB
Go
package onvif
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
)
|
|
|
|
var (
|
|
// ErrInvalidEndpoint is returned when the endpoint is invalid
|
|
ErrInvalidEndpoint = errors.New("invalid endpoint")
|
|
|
|
// ErrAuthenticationRequired is returned when authentication is required but not provided
|
|
ErrAuthenticationRequired = errors.New("authentication required")
|
|
|
|
// ErrAuthenticationFailed is returned when authentication fails
|
|
ErrAuthenticationFailed = errors.New("authentication failed")
|
|
|
|
// ErrServiceNotSupported is returned when a service is not supported by the device
|
|
ErrServiceNotSupported = errors.New("service not supported")
|
|
|
|
// ErrInvalidResponse is returned when the response is invalid
|
|
ErrInvalidResponse = errors.New("invalid response")
|
|
|
|
// ErrTimeout is returned when a request times out
|
|
ErrTimeout = errors.New("request timeout")
|
|
|
|
// ErrConnectionFailed is returned when connection to the device fails
|
|
ErrConnectionFailed = errors.New("connection failed")
|
|
|
|
// ErrInvalidParameter is returned when a parameter is invalid
|
|
ErrInvalidParameter = errors.New("invalid parameter")
|
|
|
|
// ErrNotInitialized is returned when the client is not initialized
|
|
ErrNotInitialized = errors.New("client not initialized")
|
|
)
|
|
|
|
// ONVIFError represents an ONVIF-specific error
|
|
type ONVIFError struct {
|
|
Code string
|
|
Reason string
|
|
Message string
|
|
}
|
|
|
|
// Error implements the error interface
|
|
func (e *ONVIFError) Error() string {
|
|
return fmt.Sprintf("ONVIF error [%s]: %s - %s", e.Code, e.Reason, e.Message)
|
|
}
|
|
|
|
// NewONVIFError creates a new ONVIF error
|
|
func NewONVIFError(code, reason, message string) *ONVIFError {
|
|
return &ONVIFError{
|
|
Code: code,
|
|
Reason: reason,
|
|
Message: message,
|
|
}
|
|
}
|
|
|
|
// IsONVIFError checks if an error is an ONVIF error
|
|
func IsONVIFError(err error) bool {
|
|
var onvifErr *ONVIFError
|
|
return errors.As(err, &onvifErr)
|
|
}
|