-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathresposewriter_internal.go
128 lines (99 loc) · 2.33 KB
/
resposewriter_internal.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package finger
import (
"sourcecode.social/reiver/go-utf8"
"fmt"
"io"
"net"
)
var _ ResponseWriter = &internalResponseWriter{}
type internalResponseWriter struct {
conn ConnectedWriteCloser
}
// NewResponseWriter is used to create a new finger.ResponseWriter.
//
// Typically a finger.ResopnseWriter wraps a net.Conn.
//
// var conn net.Conn
//
// // ...
//
// var responseWriter finger.ResponseWriter = finger.NewReponseWriter(conn)
func NewResponseWriter(conn ConnectedWriteCloser) ResponseWriter {
return &internalResponseWriter{
conn:conn,
}
}
func (receiver *internalResponseWriter) Close() error {
var conn ConnectedWriteCloser
{
conn = receiver.conn
if nil == conn {
return errNilConnection
}
}
return conn.Close()
}
func (receiver internalResponseWriter) LocalAddr() net.Addr {
var conn ConnectedWriteCloser
{
conn = receiver.conn
if nil == conn {
return nil
}
}
return conn.LocalAddr()
}
func (receiver internalResponseWriter) RemoteAddr() net.Addr {
var conn ConnectedWriteCloser
{
conn = receiver.conn
if nil == conn {
return nil
}
}
return conn.RemoteAddr()
}
func (receiver *internalResponseWriter) Write(p []byte) (int, error) {
var conn ConnectedWriteCloser
{
conn = receiver.conn
if nil == conn {
return 0, errNilConnection
}
}
return conn.Write(p)
}
func (receiver *internalResponseWriter) WriteByte(b byte) error {
var buffer [1]byte
var p []byte = buffer[:]
n, err := receiver.Write(p)
if nil != err {
return fmt.Errorf("problem writing byte for finger-protocol response: %w", err)
}
if expected, actual := 1, n; expected != actual {
return fmt.Errorf("problem writing byte for finger-protocol response: actual number of bytes written is %d but expected it to be %d", actual, expected)
}
return nil
}
func (receiver *internalResponseWriter) WriteRune(r rune) (int, error) {
if nil == receiver {
return 0, errNilReceiver
}
var writer io.Writer = receiver
var wrapped utf8.RuneWriter = utf8.WrapRuneWriter(writer)
var runewriter runeWriter = &wrapped
return runewriter.WriteRune(r)
}
func (receiver *internalResponseWriter) WriteString(s string) (int, error) {
if nil == receiver {
return 0, errNilReceiver
}
var conn ConnectedWriteCloser
{
conn = receiver.conn
if nil == conn {
return 0, errNilConnection
}
}
return io.WriteString(conn, s)
}