🔥 Remove duplicate code
This commit is contained in:
		| @@ -17,9 +17,6 @@ | |||||||
| package ch.dissem.bitmessage.entity | package ch.dissem.bitmessage.entity | ||||||
|  |  | ||||||
| import ch.dissem.bitmessage.entity.valueobject.InventoryVector | import ch.dissem.bitmessage.entity.valueobject.InventoryVector | ||||||
| import ch.dissem.bitmessage.utils.Encode |  | ||||||
| import java.io.OutputStream |  | ||||||
| import java.nio.ByteBuffer |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * The 'getdata' command is used to request objects from a node. |  * The 'getdata' command is used to request objects from a node. | ||||||
| @@ -31,24 +28,8 @@ class GetData constructor(var inventory: List<InventoryVector>) : MessagePayload | |||||||
|     override fun writer(): StreamableWriter = Writer(this) |     override fun writer(): StreamableWriter = Writer(this) | ||||||
|  |  | ||||||
|     private class Writer( |     private class Writer( | ||||||
|         private val item: GetData |         item: GetData | ||||||
|     ) : StreamableWriter { |     ) : InventoryWriter(item.inventory) | ||||||
|  |  | ||||||
|         override fun write(out: OutputStream) { |  | ||||||
|             Encode.varInt(item.inventory.size, out) |  | ||||||
|             for (iv in item.inventory) { |  | ||||||
|                 iv.writer().write(out) |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         override fun write(buffer: ByteBuffer) { |  | ||||||
|             Encode.varInt(item.inventory.size, buffer) |  | ||||||
|             for (iv in item.inventory) { |  | ||||||
|                 iv.writer().write(buffer) |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     companion object { |     companion object { | ||||||
|         @JvmField |         @JvmField | ||||||
|   | |||||||
| @@ -17,9 +17,6 @@ | |||||||
| package ch.dissem.bitmessage.entity | package ch.dissem.bitmessage.entity | ||||||
|  |  | ||||||
| import ch.dissem.bitmessage.entity.valueobject.InventoryVector | import ch.dissem.bitmessage.entity.valueobject.InventoryVector | ||||||
| import ch.dissem.bitmessage.utils.Encode |  | ||||||
| import java.io.OutputStream |  | ||||||
| import java.nio.ByteBuffer |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * The 'inv' command holds up to 50000 inventory vectors, i.e. hashes of inventory items. |  * The 'inv' command holds up to 50000 inventory vectors, i.e. hashes of inventory items. | ||||||
| @@ -31,22 +28,6 @@ class Inv constructor(val inventory: List<InventoryVector>) : MessagePayload { | |||||||
|     override fun writer(): StreamableWriter = Writer(this) |     override fun writer(): StreamableWriter = Writer(this) | ||||||
|  |  | ||||||
|     private class Writer( |     private class Writer( | ||||||
|         private val item: Inv |         item: Inv | ||||||
|     ) : StreamableWriter { |     ) : InventoryWriter(item.inventory) | ||||||
|  |  | ||||||
|         override fun write(out: OutputStream) { |  | ||||||
|             Encode.varInt(item.inventory.size, out) |  | ||||||
|             for (iv in item.inventory) { |  | ||||||
|                 iv.writer().write(out) |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         override fun write(buffer: ByteBuffer) { |  | ||||||
|             Encode.varInt(item.inventory.size, buffer) |  | ||||||
|             for (iv in item.inventory) { |  | ||||||
|                 iv.writer().write(buffer) |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|     } |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -0,0 +1,40 @@ | |||||||
|  | /* | ||||||
|  |  * Copyright 2018 Christian Basler | ||||||
|  |  * | ||||||
|  |  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  |  * you may not use this file except in compliance with the License. | ||||||
|  |  * You may obtain a copy of the License at | ||||||
|  |  * | ||||||
|  |  *     http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  |  * | ||||||
|  |  * Unless required by applicable law or agreed to in writing, software | ||||||
|  |  * distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  |  * See the License for the specific language governing permissions and | ||||||
|  |  * limitations under the License. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | package ch.dissem.bitmessage.entity | ||||||
|  |  | ||||||
|  | import ch.dissem.bitmessage.entity.valueobject.InventoryVector | ||||||
|  | import ch.dissem.bitmessage.utils.Encode | ||||||
|  | import java.io.OutputStream | ||||||
|  | import java.nio.ByteBuffer | ||||||
|  |  | ||||||
|  | internal open class InventoryWriter(private val inventory: List<InventoryVector>) : StreamableWriter { | ||||||
|  |  | ||||||
|  |     override fun write(out: OutputStream) { | ||||||
|  |         Encode.varInt(inventory.size, out) | ||||||
|  |         for (iv in inventory) { | ||||||
|  |             iv.writer().write(out) | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     override fun write(buffer: ByteBuffer) { | ||||||
|  |         Encode.varInt(inventory.size, buffer) | ||||||
|  |         for (iv in inventory) { | ||||||
|  |             iv.writer().write(buffer) | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user