First import
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
// Copyright 2014 Claudemiro Alves Feitosa Neto. All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package main
|
||||
|
||||
// Base interface
|
||||
type WebsocketError interface {
|
||||
GetCode() int
|
||||
GetMsg() string
|
||||
}
|
||||
|
||||
// Base struct
|
||||
type BaseWebsocketError struct {
|
||||
Code int
|
||||
Msg string
|
||||
}
|
||||
|
||||
func (e BaseWebsocketError) GetCode() int {
|
||||
return e.Code
|
||||
}
|
||||
|
||||
func (e BaseWebsocketError) GetMsg() string {
|
||||
return e.Msg
|
||||
}
|
||||
|
||||
// Unsupprted protocol version
|
||||
type UnsupportedProtocolVersionError struct {
|
||||
BaseWebsocketError
|
||||
}
|
||||
|
||||
func NewUnsupportedProtocolVersionError() UnsupportedProtocolVersionError {
|
||||
return UnsupportedProtocolVersionError{
|
||||
BaseWebsocketError{Code: UNSUPPORTED_PROTOCOL_VERSION, Msg: "Unsupported protocol version"},
|
||||
}
|
||||
}
|
||||
|
||||
// The application does not exists
|
||||
// See the configuration file
|
||||
type ApplicationDoesNotExistsError struct {
|
||||
BaseWebsocketError
|
||||
}
|
||||
|
||||
func NewApplicationDoesNotExistsError() ApplicationDoesNotExistsError {
|
||||
return ApplicationDoesNotExistsError{
|
||||
BaseWebsocketError{Code: APPLICATION_DOES_NOT_EXISTS, Msg: "Could not found an app with the given key"},
|
||||
}
|
||||
}
|
||||
|
||||
// The user did not send the protocol version
|
||||
type NoProtocolVersionSuppliedError struct {
|
||||
BaseWebsocketError
|
||||
}
|
||||
|
||||
func NewNoProtocolVersionSuppliedError() NoProtocolVersionSuppliedError {
|
||||
return NoProtocolVersionSuppliedError{
|
||||
BaseWebsocketError{Code: NO_PROTOCOL_VERSION_SUPPLIED, Msg: "No protocol version supplied"},
|
||||
}
|
||||
}
|
||||
|
||||
// When the application is disabled.
|
||||
// See the configuration file
|
||||
type ApplicationDisabledError struct {
|
||||
BaseWebsocketError
|
||||
}
|
||||
|
||||
func NewApplicationDisabledError() NoProtocolVersionSuppliedError {
|
||||
return NoProtocolVersionSuppliedError{
|
||||
BaseWebsocketError{Code: APPLICATION_DISABLED, Msg: "Application disabled"},
|
||||
}
|
||||
}
|
||||
|
||||
// When the application only accepts SSL connections
|
||||
type ApplicationOnlyAccepsSSLError struct {
|
||||
BaseWebsocketError
|
||||
}
|
||||
|
||||
func NewApplicationOnlyAccepsSSLError() ApplicationOnlyAccepsSSLError {
|
||||
return ApplicationOnlyAccepsSSLError{
|
||||
BaseWebsocketError{Code: APPLICATION_ONLY_ACCEPTS_SSL, Msg: "Application only accepts SSL connections, reconnect using wss://"},
|
||||
}
|
||||
}
|
||||
|
||||
// When the user send an invalid version
|
||||
type InvalidVersionStringFormatError struct {
|
||||
BaseWebsocketError
|
||||
}
|
||||
|
||||
func NewInvalidVersionStringFormatError() InvalidVersionStringFormatError {
|
||||
return InvalidVersionStringFormatError{
|
||||
BaseWebsocketError{Code: INVALID_VERSION_STRING_FORMAT, Msg: "Invalid version string format"},
|
||||
}
|
||||
}
|
||||
|
||||
// Used when the error was internal
|
||||
// * Decoding json
|
||||
// * Writing to output
|
||||
type GenericReconnectImmediatelyError struct {
|
||||
BaseWebsocketError
|
||||
}
|
||||
|
||||
func NewGenericReconnectImmediatelyError() GenericReconnectImmediatelyError {
|
||||
return GenericReconnectImmediatelyError{
|
||||
BaseWebsocketError{Code: GENERIC_RECONNECT_IMMEDIATELY, Msg: "Generic reconnect immediately"},
|
||||
}
|
||||
}
|
||||
|
||||
// When pusher wants to send an Generic error, it only send the message, the code become nil
|
||||
// Currently I do not know how to send nil, so I send GENERIC_ERROR
|
||||
type GenericError struct {
|
||||
BaseWebsocketError
|
||||
}
|
||||
|
||||
func NewGenericError(msg string) GenericError {
|
||||
return GenericError{
|
||||
BaseWebsocketError{Code: GENERIC_ERROR, Msg: msg},
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user