@@ -28,7 +28,7 @@ type responseBuilder struct {
28
28
func (rb * responseBuilder ) SendResponse (link ipld.Link , data []byte ) graphsync.BlockData {
29
29
op := rb .setupBlockOperation (link , data )
30
30
rb .operations = append (rb .operations , op )
31
- return op
31
+ return op . Block ()
32
32
}
33
33
34
34
func (rb * responseBuilder ) SendExtensionData (extension graphsync.ExtensionData ) {
@@ -128,25 +128,44 @@ func (bo blockOperation) build(builder *gsmsg.Builder) {
128
128
builder .AddLink (bo .requestID , bo .link , bo .data != nil )
129
129
}
130
130
131
- func (bo blockOperation ) Link () ipld.Link {
131
+ func (bo blockOperation ) size () uint64 {
132
+ if ! bo .sendBlock {
133
+ return 0
134
+ }
135
+ return uint64 (len (bo .data ))
136
+ }
137
+
138
+ func (bo blockOperation ) Block () blockQueued {
139
+ return blockQueued {
140
+ sendBlock : bo .sendBlock ,
141
+ link : bo .link ,
142
+ index : bo .index ,
143
+ size : uint64 (len (bo .data )),
144
+ }
145
+ }
146
+
147
+ type blockQueued struct {
148
+ sendBlock bool
149
+ link ipld.Link
150
+ index int64
151
+ size uint64
152
+ }
153
+
154
+ func (bo blockQueued ) Link () ipld.Link {
132
155
return bo .link
133
156
}
134
157
135
- func (bo blockOperation ) BlockSize () uint64 {
136
- return uint64 ( len ( bo .data ))
158
+ func (bo blockQueued ) BlockSize () uint64 {
159
+ return bo .size
137
160
}
138
161
139
- func (bo blockOperation ) BlockSizeOnWire () uint64 {
162
+ func (bo blockQueued ) BlockSizeOnWire () uint64 {
140
163
if ! bo .sendBlock {
141
164
return 0
142
165
}
143
- return bo .BlockSize ()
166
+ return bo .size
144
167
}
145
168
146
- func (bo blockOperation ) Index () int64 {
169
+ func (bo blockQueued ) Index () int64 {
147
170
return bo .index
148
171
}
149
-
150
- func (bo blockOperation ) size () uint64 {
151
- return bo .BlockSizeOnWire ()
152
- }
0 commit comments