WsContainerSend und WsContainerReceive haben jetzt als Rückgabewert konsequenterweise nur noch myresponse oder hisresponse. Alle übrigen Werte werden über den GosmContainer und die neuen Getter- und Setter-Funktionen abgefragt.

master
Klaus Wendel 8 months ago
parent 00b1a07c88
commit d52fd43f12

@ -42,11 +42,12 @@ type GosmAdapter interface {
GetJson() CarrierJson
GetBuffer() []byte
WsContainerSend(WsCommunicationMethod, *websocket.Conn, context.Context) (error, interface{})
WsContainerReceive(WsCommunicationMethod, *websocket.Conn, context.Context, interface{}) (error, interface{}, interface{}, websocket.MessageType)
WsContainerReceive(WsCommunicationMethod, *websocket.Conn, context.Context, interface{}) (error, interface{}, websocket.MessageType)
}
func (r *GosmContainer) RevalueJson(dosth func(CarrierJson) CarrierJson) { // Überarbeite den Carrier, setze ein Ergebnis ein etc.
(*r).CarrierJson = dosth((*r).CarrierJson)
(*r).ConvertJson2Buffer()
}
func (r *GosmContainer) ConvertJson2Buffer() (err error) {
@ -66,6 +67,7 @@ func (r *GosmContainer) ConvertBuffer2Json() (err error) {
func (r *GosmContainer) SetJson(cj CarrierJson) {
(*r).CarrierJson = cj
(*r).ConvertJson2Buffer()
}
func (r *GosmContainer) GetJson() CarrierJson {
@ -74,37 +76,38 @@ func (r *GosmContainer) GetJson() CarrierJson {
func (r *GosmContainer) SetBuffer(bb []byte) {
(*r).CarrierBuffer = bb
(*r).ConvertBuffer2Json()
}
func (r *GosmContainer) GetBuffer() []byte {
return (*r).CarrierBuffer
}
func (r *GosmContainer) WsContainerSend(method WsCommunicationMethod, conn *websocket.Conn, ctx context.Context) (err error, response interface{}) {
func (r *GosmContainer) WsContainerSend(method WsCommunicationMethod, conn *websocket.Conn, ctx context.Context) (err error, hisresponse interface{}) {
switch method {
case SendJsonMethod:
err, response = WsjsonSend(ctx, conn, (*r).CarrierJson)
err, hisresponse = WsjsonSend(ctx, conn, (*r).CarrierJson)
//(*r).CarrierJson = tmpreceiveval.(CarrierJson) //Überschreibe alten Wert?
case SendTextMethod:
//err, (*r).CarrierBuffer = WsSend(ctx, conn, (*r).CarrierBuffer, websocket.MessageText)
err, response = WsSend(ctx, conn, (*r).CarrierBuffer, websocket.MessageText)
err, hisresponse = WsSend(ctx, conn, (*r).CarrierBuffer, websocket.MessageText)
case SendBinaryMethod:
//err, (*r).CarrierBuffer = WsSend(ctx, conn, (*r).CarrierBuffer, websocket.MessageBinary)
err, response = WsSend(ctx, conn, (*r).CarrierBuffer, websocket.MessageBinary)
err, hisresponse = WsSend(ctx, conn, (*r).CarrierBuffer, websocket.MessageBinary)
default:
err = errors.New("Wrong communicator method")
}
return
}
func (r *GosmContainer) WsContainerReceive(method WsCommunicationMethod, conn *websocket.Conn, ctx context.Context, dosth interface{}) (err error, receiveval, sendval interface{}, mtr websocket.MessageType) {
func (r *GosmContainer) WsContainerReceive(method WsCommunicationMethod, conn *websocket.Conn, ctx context.Context, dosth interface{}) (err error, myresponse interface{}, mtr websocket.MessageType) {
switch {
case method == ReceiveTextMethod || method == ReceiveBinaryMethod:
err, receiveval, sendval, mtr = WsReceive(ctx, conn, dosth.(func([]byte) []byte))
err, receiveval, myresponse, mtr = WsReceive(ctx, conn, dosth.(func([]byte) []byte))
(*r).CarrierBuffer = receiveval.([]byte)
(*r).ConvertBuffer2Json()
case method == ReceiveJsonMethod:
err, receiveval, sendval = WsjsonReceive(ctx, conn, dosth.(func(interface{}) interface{}))
err, receiveval, myresponse = WsjsonReceive(ctx, conn, dosth.(func(interface{}) interface{}))
mtr = websocket.MessageText
(*r).CarrierJson = receiveval.(CarrierJson)
(*r).ConvertJson2Buffer()

Loading…
Cancel
Save