2022-01-11 20:11:45 +00:00
|
|
|
package connectivity
|
|
|
|
|
|
|
|
import (
|
|
|
|
"net"
|
|
|
|
)
|
|
|
|
|
|
|
|
// ErrorACN - a status-callback safe errored ACN. Use this when ACN construction goes wrong
|
|
|
|
// and you need a safe substitute that can later be replaced with a working ACN without impacting calling clients.
|
|
|
|
type ErrorACN struct {
|
2023-05-29 17:22:12 +00:00
|
|
|
acnError error
|
2022-07-31 15:11:30 +00:00
|
|
|
statusCallbackCache func(int, string)
|
|
|
|
versionCallbackCache func(string)
|
2022-01-11 20:11:45 +00:00
|
|
|
}
|
|
|
|
|
2023-05-29 17:22:12 +00:00
|
|
|
func NewErrorACN(err error) ErrorACN {
|
|
|
|
return ErrorACN{
|
|
|
|
acnError: err,
|
|
|
|
statusCallbackCache: func(int, string) {},
|
|
|
|
versionCallbackCache: func(string) {},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-05-24 18:06:34 +00:00
|
|
|
func (e *ErrorACN) GetStatusCallback() func(int, string) {
|
2022-01-11 20:11:45 +00:00
|
|
|
return e.statusCallbackCache
|
|
|
|
}
|
|
|
|
|
2023-05-24 18:06:34 +00:00
|
|
|
func (e *ErrorACN) GetVersionCallback() func(string) {
|
2022-08-07 15:30:37 +00:00
|
|
|
return e.versionCallbackCache
|
|
|
|
}
|
|
|
|
|
2022-01-13 21:36:34 +00:00
|
|
|
func (e *ErrorACN) GetInfo(addr string) (map[string]string, error) {
|
2023-05-29 17:22:12 +00:00
|
|
|
return nil, e.acnError
|
2022-01-13 21:36:34 +00:00
|
|
|
}
|
|
|
|
|
2023-05-24 18:06:34 +00:00
|
|
|
func (e *ErrorACN) GetBootstrapStatus() (int, string) {
|
2023-05-29 17:22:12 +00:00
|
|
|
return -1, e.acnError.Error()
|
2022-01-11 20:11:45 +00:00
|
|
|
}
|
|
|
|
|
2023-05-24 18:06:34 +00:00
|
|
|
func (e *ErrorACN) WaitTillBootstrapped() error {
|
2023-05-29 17:22:12 +00:00
|
|
|
return e.acnError
|
2022-01-11 20:11:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (e *ErrorACN) SetStatusCallback(callback func(int, string)) {
|
|
|
|
e.statusCallbackCache = callback
|
|
|
|
}
|
|
|
|
|
2022-07-31 15:11:30 +00:00
|
|
|
func (e *ErrorACN) SetVersionCallback(callback func(string)) {
|
|
|
|
e.versionCallbackCache = callback
|
|
|
|
}
|
|
|
|
|
2023-05-24 18:06:34 +00:00
|
|
|
func (e *ErrorACN) Restart() {
|
2022-01-11 20:11:45 +00:00
|
|
|
}
|
|
|
|
|
2023-05-24 18:06:34 +00:00
|
|
|
func (e *ErrorACN) Open(hostname string) (net.Conn, string, error) {
|
2023-05-29 17:22:12 +00:00
|
|
|
return nil, "", e.acnError
|
2022-01-11 20:11:45 +00:00
|
|
|
}
|
|
|
|
|
2023-05-24 18:06:34 +00:00
|
|
|
func (e *ErrorACN) Listen(identity PrivateKey, port int) (ListenService, error) {
|
2023-05-29 17:22:12 +00:00
|
|
|
return nil, e.acnError
|
2022-01-11 20:11:45 +00:00
|
|
|
}
|
|
|
|
|
2023-05-24 18:06:34 +00:00
|
|
|
func (e *ErrorACN) GetPID() (int, error) {
|
2023-05-29 17:22:12 +00:00
|
|
|
return -1, e.acnError
|
2022-01-11 20:11:45 +00:00
|
|
|
}
|
|
|
|
|
2023-05-24 18:06:34 +00:00
|
|
|
func (e *ErrorACN) GetVersion() string {
|
2023-05-29 17:22:12 +00:00
|
|
|
return e.acnError.Error()
|
2022-01-11 20:11:45 +00:00
|
|
|
}
|
|
|
|
|
2023-05-24 18:06:34 +00:00
|
|
|
func (e *ErrorACN) Close() {
|
2023-05-29 17:22:12 +00:00
|
|
|
// nothing to do...
|
2022-01-11 20:11:45 +00:00
|
|
|
}
|