Documentation ¶
Index ¶
- Constants
- func DefaultOnRequestToProvideWriteSeekerCB(size int64, provide_data_destination func(io.WriteSeeker) error) error
- type JSONRPC2DataStreamMultiplexer
- func (self *JSONRPC2DataStreamMultiplexer) ChannelData(data []byte) (timedout bool, closed bool, resp_msg *gojsonrpc2.Message, proto_err error, ...)
- func (self *JSONRPC2DataStreamMultiplexer) ChannelDataReader(data io.ReadSeeker) (timedout bool, closed bool, resp_msg *gojsonrpc2.Message, proto_err error, ...)
- func (self *JSONRPC2DataStreamMultiplexer) Close()
- func (self *JSONRPC2DataStreamMultiplexer) DebugPrintfln(format string, data ...any)
- func (self *JSONRPC2DataStreamMultiplexer) DebugPrintln(data ...any)
- func (self *JSONRPC2DataStreamMultiplexer) GetDebugName() string
- func (self *JSONRPC2DataStreamMultiplexer) PushMessageFromOutside(data []byte) (error, error)
- func (self *JSONRPC2DataStreamMultiplexer) SetDebug(val bool)
- func (self *JSONRPC2DataStreamMultiplexer) SetDebugName(name string)
- type JSONRPC2DataStreamMultiplexerBufferWrapper
- func (self *JSONRPC2DataStreamMultiplexerBufferWrapper) BufferSize() (int64, error)
- func (self *JSONRPC2DataStreamMultiplexerBufferWrapper) BufferSlice(start int64, end int64) (ret_bytes []byte, ret_err error)
- func (self *JSONRPC2DataStreamMultiplexerBufferWrapper) DebugPrintln(data ...any)
- func (self *JSONRPC2DataStreamMultiplexerBufferWrapper) SetDebugName(name string)
- type JSONRPC2DataStreamMultiplexer_proto_BufferInfo_Req
- type JSONRPC2DataStreamMultiplexer_proto_BufferInfo_Res
- type JSONRPC2DataStreamMultiplexer_proto_BufferSlice_Req
- type JSONRPC2DataStreamMultiplexer_proto_BufferSlice_Res
- type JSONRPC2DataStreamMultiplexer_proto_NewBufferMsg
Constants ¶
View Source
const ( JSONRPC2_MULTIPLEXER_METHOD_NEW_BUFFER_AVAILABLE = "n" JSONRPC2_MULTIPLEXER_METHOD_GET_BUFFER_INFO = "gbi" JSONRPC2_MULTIPLEXER_METHOD_GET_BUFFER_SLICE = "gbs" )
Variables ¶
This section is empty.
Functions ¶
func DefaultOnRequestToProvideWriteSeekerCB ¶
func DefaultOnRequestToProvideWriteSeekerCB( size int64, provide_data_destination func(io.WriteSeeker) error, ) error
Types ¶
type JSONRPC2DataStreamMultiplexer ¶
type JSONRPC2DataStreamMultiplexer struct { PushMessageToOutsideCB func(data []byte) error // you must allocate buffer of size 'size' and pass it as WriteSeeker // by calling provide_data_destination OnRequestToProvideWriteSeekerCB func( size int64, provide_data_destination func(io.WriteSeeker) error, ) error // Indicates what data transfer to writeseeker (passed using // OnRequestToProvideWriteSeekerCB) is complete. // If OnRequestToProvideWriteSeekerCB is nil, DefaultOnRequestToProvideWriteSeekerCB() // is used in it's place, which provides InMemFileFrom as io.WriteSeeker. // hint: you can do `x, ok := (v).(*InMemFileFrom)“ to convert io.WriteSeeker. // hint: use OnRequestToProvideWriteSeekerCB to create WriteSeaker: // it's pointer will be a link between // OnRequestToProvideWriteSeekerCB and OnIncommingDataTransferComplete OnIncommingDataTransferComplete func(io.WriteSeeker) // contains filtered or unexported fields }
func NewJSONRPC2DataStreamMultiplexer ¶
func NewJSONRPC2DataStreamMultiplexer() *JSONRPC2DataStreamMultiplexer
func (*JSONRPC2DataStreamMultiplexer) ChannelData ¶
func (self *JSONRPC2DataStreamMultiplexer) ChannelData(data []byte) ( timedout bool, closed bool, resp_msg *gojsonrpc2.Message, proto_err error, err error, )
use this function to send the data.
NOTE: this function will not return until send succeed or fail. as a logical consecuance to this, this function also returns the peer response via resp_msg (NOTE: this response is Multiplexer protocol response, not a response on data youve sent via 'data')
func (*JSONRPC2DataStreamMultiplexer) ChannelDataReader ¶
func (self *JSONRPC2DataStreamMultiplexer) ChannelDataReader(data io.ReadSeeker) ( timedout bool, closed bool, resp_msg *gojsonrpc2.Message, proto_err error, err error, )
func (*JSONRPC2DataStreamMultiplexer) Close ¶
func (self *JSONRPC2DataStreamMultiplexer) Close()
func (*JSONRPC2DataStreamMultiplexer) DebugPrintfln ¶
func (self *JSONRPC2DataStreamMultiplexer) DebugPrintfln(format string, data ...any)
func (*JSONRPC2DataStreamMultiplexer) DebugPrintln ¶
func (self *JSONRPC2DataStreamMultiplexer) DebugPrintln(data ...any)
func (*JSONRPC2DataStreamMultiplexer) GetDebugName ¶
func (self *JSONRPC2DataStreamMultiplexer) GetDebugName() string
func (*JSONRPC2DataStreamMultiplexer) PushMessageFromOutside ¶
func (self *JSONRPC2DataStreamMultiplexer) PushMessageFromOutside(data []byte) (error, error)
this have protocol restriction on input data size #0 - protocol error #1 - all errors
func (*JSONRPC2DataStreamMultiplexer) SetDebug ¶
func (self *JSONRPC2DataStreamMultiplexer) SetDebug(val bool)
func (*JSONRPC2DataStreamMultiplexer) SetDebugName ¶
func (self *JSONRPC2DataStreamMultiplexer) SetDebugName(name string)
type JSONRPC2DataStreamMultiplexerBufferWrapper ¶
type JSONRPC2DataStreamMultiplexerBufferWrapper struct { BufferId string RequestId any Buffer io.ReadSeeker Mutex sync.Mutex // contains filtered or unexported fields }
func (*JSONRPC2DataStreamMultiplexerBufferWrapper) BufferSize ¶
func (self *JSONRPC2DataStreamMultiplexerBufferWrapper) BufferSize() (int64, error)
func (*JSONRPC2DataStreamMultiplexerBufferWrapper) BufferSlice ¶
func (self *JSONRPC2DataStreamMultiplexerBufferWrapper) BufferSlice(start int64, end int64) (ret_bytes []byte, ret_err error)
func (*JSONRPC2DataStreamMultiplexerBufferWrapper) DebugPrintln ¶
func (self *JSONRPC2DataStreamMultiplexerBufferWrapper) DebugPrintln(data ...any)
func (*JSONRPC2DataStreamMultiplexerBufferWrapper) SetDebugName ¶
func (self *JSONRPC2DataStreamMultiplexerBufferWrapper) SetDebugName(name string)
type JSONRPC2DataStreamMultiplexer_proto_BufferInfo_Req ¶
type JSONRPC2DataStreamMultiplexer_proto_BufferInfo_Req struct {
JSONRPC2DataStreamMultiplexer_proto_NewBufferMsg
}
type JSONRPC2DataStreamMultiplexer_proto_BufferInfo_Res ¶
type JSONRPC2DataStreamMultiplexer_proto_BufferInfo_Res struct {
Size int64 `json:"s"`
}
type JSONRPC2DataStreamMultiplexer_proto_BufferSlice_Req ¶
type JSONRPC2DataStreamMultiplexer_proto_BufferSlice_Req struct { JSONRPC2DataStreamMultiplexer_proto_NewBufferMsg Start int64 `json:"start"` End int64 `json:"end"` }
type JSONRPC2DataStreamMultiplexer_proto_BufferSlice_Res ¶
type JSONRPC2DataStreamMultiplexer_proto_BufferSlice_Res struct {
Data string `json:"data"` // base64 encoded
}
type JSONRPC2DataStreamMultiplexer_proto_NewBufferMsg ¶
type JSONRPC2DataStreamMultiplexer_proto_NewBufferMsg struct {
BufferId string `json:"id"`
}
Source Files ¶
Click to show internal directories.
Click to hide internal directories.