Documentation
¶
Index ¶
- Constants
- func Atoi(s string) (int64, error)
- func Itoa(i int64) string
- func Respond(w http.ResponseWriter, data any) error
- type AppData
- type BlobData
- type Chat
- type Configure
- type ErrorResponse
- type EventType
- type KeyMutex
- type LocationData
- type MessageType
- type OctopusEvent
- type OctopusMessage
- type OctopusRequest
- type OctopusResponse
- type ReplyInfo
- type RequestType
- type ResponseType
- type User
- type Vendor
Constants ¶
View Source
const ( VENDOR_SEP = ";" REMOTE_PREFIX = "remote:" )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Configure ¶
type Configure struct { Limb struct { Version string `yaml:"version"` ListenPort int32 `yaml:"listen_port"` HookPort int32 `yaml:"hook_port"` RequestTimeout time.Duration `yaml:"request_timeout"` Workdir string `yaml:"workdir"` } `yaml:"limb"` Service struct { Addr string `yaml:"addr"` Secret string `yaml:"secret"` PingInterval time.Duration `yaml:"ping_interval"` //SendTiemout time.Duration `yaml:"send_timeout"` SyncDelay time.Duration `yaml:"sync_delay"` SyncInterval time.Duration `yaml:"sync_interval"` } `yaml:"service"` Log struct { Level string `yaml:"level"` } `yaml:"log"` }
func LoadConfig ¶
type ErrorResponse ¶
type ErrorResponse struct { HTTPStatus int `json:"-"` Code string `json:"code"` Message string `json:"message"` }
func (*ErrorResponse) Error ¶
func (er *ErrorResponse) Error() string
func (ErrorResponse) Write ¶
func (er ErrorResponse) Write(w http.ResponseWriter)
type KeyMutex ¶
type KeyMutex interface { // Acquires a lock associated with the specified ID, creates the lock if one doesn't already exist. LockKey(id string) // Releases the lock associated with the specified ID. // Returns an error if the specified ID doesn't exist. UnlockKey(id string) error }
KeyMutex is a thread-safe interface for acquiring locks on arbitrary strings.
func NewHashed ¶
NewHashed returns a new instance of KeyMutex which hashes arbitrary keys to a fixed set of locks. `n` specifies number of locks, if n <= 0, we use number of cpus. Note that because it uses fixed set of locks, different keys may share same lock, so it's possible to wait on same lock.
type LocationData ¶
type MessageType ¶
type MessageType int
const ( MsgRequest MessageType = iota MsgResponse )
func (MessageType) String ¶
func (t MessageType) String() string
type OctopusEvent ¶
type OctopusEvent struct { Vendor Vendor `json:"vendor,omitempty"` ID string `json:"id,omitempty"` ThreadID string `json:"thread_id,omitempty"` Timestamp int64 `json:"timestamp,omitempty"` From User `json:"from,omitempty"` Chat Chat `json:"chat,omitempty"` Type EventType `json:"type,omitempty"` Content string `json:"content,omitempty"` Reply *ReplyInfo `json:"reply,omitempty"` Data any `json:"data,omitempty"` Callback func(*OctopusEvent, error) `json:"-"` }
func (*OctopusEvent) UnmarshalJSON ¶
func (o *OctopusEvent) UnmarshalJSON(data []byte) error
type OctopusMessage ¶
type OctopusMessage struct { ID int64 `json:"id,omitempty"` Type MessageType `json:"type,omitempty"` Data any `json:"data,omitempty"` }
func (*OctopusMessage) UnmarshalJSON ¶
func (o *OctopusMessage) UnmarshalJSON(data []byte) error
type OctopusRequest ¶
type OctopusRequest struct { Type RequestType `json:"type,omitempty"` Data any `json:"data,omitempty"` }
func (*OctopusRequest) UnmarshalJSON ¶
func (o *OctopusRequest) UnmarshalJSON(data []byte) error
type OctopusResponse ¶
type OctopusResponse struct { Type ResponseType `json:"type,omitempty"` Error *ErrorResponse `json:"error,omitempty"` Data any `json:"data,omitempty"` }
func (*OctopusResponse) UnmarshalJSON ¶
func (o *OctopusResponse) UnmarshalJSON(data []byte) error
type RequestType ¶
type RequestType int
const ( ReqDisconnect RequestType = iota ReqPing ReqEvent )
func (RequestType) String ¶
func (t RequestType) String() string
type ResponseType ¶
type ResponseType int
const ( RespClosed ResponseType = iota RespPing RespEvent )
func (ResponseType) String ¶
func (t ResponseType) String() string
Click to show internal directories.
Click to hide internal directories.