diff options
author | xengineering <me@xengineering.eu> | 2023-07-03 21:10:51 +0200 |
---|---|---|
committer | xengineering <me@xengineering.eu> | 2023-07-03 21:10:51 +0200 |
commit | cf520b079743ec95d085a439d00b841c253c564a (patch) | |
tree | 9f1da7d920bca3177763f30f8716be69a677f716 /xmpp/encoder_decoder.go | |
parent | 3cac662ef99366dea7bec383ba6704b3a5292d93 (diff) | |
download | limox-cf520b079743ec95d085a439d00b841c253c564a.tar limox-cf520b079743ec95d085a439d00b841c253c564a.tar.zst limox-cf520b079743ec95d085a439d00b841c253c564a.zip |
Rename encoder_decoder.go to xml.go
This is way shorter and serves the same purpose: It reflects the
responsibility of encoding and decoding XML. The encoderDecoder struct
should be removed soon.
Diffstat (limited to 'xmpp/encoder_decoder.go')
-rw-r--r-- | xmpp/encoder_decoder.go | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/xmpp/encoder_decoder.go b/xmpp/encoder_decoder.go deleted file mode 100644 index b0ea77b..0000000 --- a/xmpp/encoder_decoder.go +++ /dev/null @@ -1,80 +0,0 @@ -package xmpp - -import ( - "encoding/xml" - "errors" - "io" - "log" -) - -type encoderDecoder struct { - session *session - tx *xml.Encoder - rx *xml.Decoder - terminator chan bool -} - -func newEncoderDecoder(s *session) encoderDecoder { - ed := encoderDecoder{} - - ed.session = s - - lw := logger{"[TX] "} - w := io.MultiWriter(s.transport, lw) - ed.tx = xml.NewEncoder(w) - ed.tx.Indent("", "") - - lr := logger{"[RX] "} - r := io.TeeReader(s.transport, lr) - ed.rx = xml.NewDecoder(r) - - return ed -} - -func (ed *encoderDecoder) encodeToken(t xml.Token) error { - var err error - defer func() { - if err != nil { - log.Println(err) - } - }() - - err = ed.tx.EncodeToken(t) - if err != nil { - return err - } - err = ed.tx.Flush() - if err != nil { - return err - } - - return nil -} - -func (ed *encoderDecoder) run() { - for { - select { - case <-ed.terminator: - return - default: - t, err := ed.rx.Token() - if t != nil && err == nil { - switch t.(type) { - case xml.ProcInst: - case xml.Directive: - case xml.Comment: - default: - c := xml.CopyToken(t) - ed.session.rx <- c - } - } - if err != nil { - if errors.Is(err, io.EOF) { - return - } - log.Println(err) // FIXME terminate session on error - return - } - } - } -} |