translator: fix protobufs, fix build, array test, cleanup
This commit is contained in:
+1
-1
@@ -22,7 +22,7 @@ KT=$(TRANSLATOR_DIR)/build/libs/translator-1.0.jar
|
||||
LD=arm-none-eabi-ld
|
||||
OBJ_COPY=arm-none-eabi-objcopy
|
||||
GDB=arm-none-eabi-gdb
|
||||
PROTOC=$(PWD)/../proto/build/protoc
|
||||
PROTOC=$(PWD)/../proto/compiler/build/protoc
|
||||
|
||||
LL=llc-3.6
|
||||
LLINK=llvm-link-3.6
|
||||
|
||||
@@ -7,7 +7,7 @@ class DirectionRequest private constructor (var command: DirectionRequest.Comman
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Nested enums declarations ===========
|
||||
enum class Command(val ord: Int) {
|
||||
enum class Command(val id: Int) {
|
||||
stop (0),
|
||||
forward (1),
|
||||
backward (2),
|
||||
@@ -31,8 +31,8 @@ class DirectionRequest private constructor (var command: DirectionRequest.Comman
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//enum command = 1
|
||||
if (command != DirectionRequest.Command.fromIntToCommand(0)) {
|
||||
output.writeEnum (1, command.ord)
|
||||
if (command.id != DirectionRequest.Command.fromIntToCommand(0).id) {
|
||||
output.writeEnum (1, command.id)
|
||||
}
|
||||
|
||||
//int32 sid = 2
|
||||
@@ -45,6 +45,7 @@ class DirectionRequest private constructor (var command: DirectionRequest.Comman
|
||||
fun mergeWith (other: DirectionRequest) {
|
||||
command = other.command
|
||||
sid = other.sid
|
||||
this.errorCode = other.errorCode
|
||||
}
|
||||
|
||||
fun mergeFromWithSize (input: CodedInputStream, expectedSize: Int) {
|
||||
@@ -61,7 +62,7 @@ class DirectionRequest private constructor (var command: DirectionRequest.Comman
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (command != DirectionRequest.Command.fromIntToCommand(0)) {
|
||||
size += WireFormat.getEnumSize(1, command.ord)
|
||||
size += WireFormat.getEnumSize(1, command.id)
|
||||
}
|
||||
if (sid != 0) {
|
||||
size += WireFormat.getInt32Size(2, sid)
|
||||
@@ -73,7 +74,7 @@ class DirectionRequest private constructor (var command: DirectionRequest.Comman
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (command != DirectionRequest.Command.fromIntToCommand(0)) {
|
||||
size += WireFormat.getEnumSize(1, command.ord)
|
||||
size += WireFormat.getEnumSize(1, command.id)
|
||||
}
|
||||
if (sid != 0) {
|
||||
size += WireFormat.getInt32Size(2, sid)
|
||||
@@ -101,8 +102,8 @@ class DirectionRequest private constructor (var command: DirectionRequest.Comman
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//enum command = 1
|
||||
if (command != DirectionRequest.Command.fromIntToCommand(0)) {
|
||||
output.writeEnum (1, command.ord)
|
||||
if (command.id != DirectionRequest.Command.fromIntToCommand(0).id) {
|
||||
output.writeEnum (1, command.id)
|
||||
}
|
||||
|
||||
//int32 sid = 2
|
||||
@@ -114,7 +115,9 @@ class DirectionRequest private constructor (var command: DirectionRequest.Comman
|
||||
|
||||
//========== Mutating methods ===========
|
||||
fun build(): DirectionRequest {
|
||||
return DirectionRequest(command, sid)
|
||||
val res = DirectionRequest(command, sid)
|
||||
res.errorCode = errorCode
|
||||
return res
|
||||
}
|
||||
|
||||
fun parseFieldFrom(input: CodedInputStream): Boolean {
|
||||
@@ -125,15 +128,23 @@ class DirectionRequest private constructor (var command: DirectionRequest.Comman
|
||||
val wireType = WireFormat.getTagWireType(tag)
|
||||
when(fieldNumber) {
|
||||
1 -> {
|
||||
if (wireType != WireType.VARINT) { errorCode = 1; return false }
|
||||
if (wireType.id != WireType.VARINT.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
command = DirectionRequest.Command.fromIntToCommand(input.readEnumNoTag())
|
||||
}
|
||||
2 -> {
|
||||
if (wireType != WireType.VARINT) { errorCode = 1; return false }
|
||||
if (wireType.id != WireType.VARINT.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
sid = input.readInt32NoTag()
|
||||
}
|
||||
else -> errorCode = 4
|
||||
}
|
||||
return true}
|
||||
return true
|
||||
}
|
||||
|
||||
fun parseFromWithSize(input: CodedInputStream, expectedSize: Int): DirectionRequest.BuilderDirectionRequest {
|
||||
while(getSizeNoTag() < expectedSize) {
|
||||
@@ -152,7 +163,7 @@ class DirectionRequest private constructor (var command: DirectionRequest.Comman
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (command != DirectionRequest.Command.fromIntToCommand(0)) {
|
||||
size += WireFormat.getEnumSize(1, command.ord)
|
||||
size += WireFormat.getEnumSize(1, command.id)
|
||||
}
|
||||
if (sid != 0) {
|
||||
size += WireFormat.getInt32Size(2, sid)
|
||||
@@ -164,7 +175,7 @@ class DirectionRequest private constructor (var command: DirectionRequest.Comman
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (command != DirectionRequest.Command.fromIntToCommand(0)) {
|
||||
size += WireFormat.getEnumSize(1, command.ord)
|
||||
size += WireFormat.getEnumSize(1, command.id)
|
||||
}
|
||||
if (sid != 0) {
|
||||
size += WireFormat.getInt32Size(2, sid)
|
||||
@@ -194,6 +205,7 @@ class DirectionResponse private constructor (var code: Int) {
|
||||
|
||||
fun mergeWith (other: DirectionResponse) {
|
||||
code = other.code
|
||||
this.errorCode = other.errorCode
|
||||
}
|
||||
|
||||
fun mergeFromWithSize (input: CodedInputStream, expectedSize: Int) {
|
||||
@@ -246,7 +258,9 @@ class DirectionResponse private constructor (var code: Int) {
|
||||
|
||||
//========== Mutating methods ===========
|
||||
fun build(): DirectionResponse {
|
||||
return DirectionResponse(code)
|
||||
val res = DirectionResponse(code)
|
||||
res.errorCode = errorCode
|
||||
return res
|
||||
}
|
||||
|
||||
fun parseFieldFrom(input: CodedInputStream): Boolean {
|
||||
@@ -257,11 +271,16 @@ class DirectionResponse private constructor (var code: Int) {
|
||||
val wireType = WireFormat.getTagWireType(tag)
|
||||
when(fieldNumber) {
|
||||
1 -> {
|
||||
if (wireType != WireType.VARINT) { errorCode = 1; return false }
|
||||
if (wireType.id != WireType.VARINT.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
code = input.readInt32NoTag()
|
||||
}
|
||||
else -> errorCode = 4
|
||||
}
|
||||
return true}
|
||||
return true
|
||||
}
|
||||
|
||||
fun parseFromWithSize(input: CodedInputStream, expectedSize: Int): DirectionResponse.BuilderDirectionResponse {
|
||||
while(getSizeNoTag() < expectedSize) {
|
||||
|
||||
@@ -67,6 +67,7 @@ class RouteRequest private constructor (var distances: IntArray, var angles: Int
|
||||
fun mergeWith (other: RouteRequest) {
|
||||
distances = distances.plus((other.distances))
|
||||
angles = angles.plus((other.angles))
|
||||
this.errorCode = other.errorCode
|
||||
}
|
||||
|
||||
fun mergeFromWithSize (input: CodedInputStream, expectedSize: Int) {
|
||||
@@ -85,23 +86,27 @@ class RouteRequest private constructor (var distances: IntArray, var angles: Int
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32Size(1, distances[i])
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(2, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32Size(2, angles[i])
|
||||
arraySize += WireFormat.getInt32SizeNoTag(angles[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
@@ -113,23 +118,27 @@ class RouteRequest private constructor (var distances: IntArray, var angles: Int
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32Size(1, distances[i])
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(2, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32Size(2, angles[i])
|
||||
arraySize += WireFormat.getInt32SizeNoTag(angles[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
return size
|
||||
@@ -220,7 +229,9 @@ class RouteRequest private constructor (var distances: IntArray, var angles: Int
|
||||
|
||||
//========== Mutating methods ===========
|
||||
fun build(): RouteRequest {
|
||||
return RouteRequest(distances, angles)
|
||||
val res = RouteRequest(distances, angles)
|
||||
res.errorCode = errorCode
|
||||
return res
|
||||
}
|
||||
|
||||
fun parseFieldFrom(input: CodedInputStream): Boolean {
|
||||
@@ -231,7 +242,10 @@ class RouteRequest private constructor (var distances: IntArray, var angles: Int
|
||||
val wireType = WireFormat.getTagWireType(tag)
|
||||
when(fieldNumber) {
|
||||
1 -> {
|
||||
if (wireType != WireType.LENGTH_DELIMITED) { errorCode = 1; return false }
|
||||
if (wireType.id != WireType.LENGTH_DELIMITED.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
val expectedByteSize = input.readInt32NoTag()
|
||||
var newArray = IntArray(0)
|
||||
var readSize = 0
|
||||
@@ -247,7 +261,10 @@ class RouteRequest private constructor (var distances: IntArray, var angles: Int
|
||||
} while (false)
|
||||
}
|
||||
2 -> {
|
||||
if (wireType != WireType.LENGTH_DELIMITED) { errorCode = 1; return false }
|
||||
if (wireType.id != WireType.LENGTH_DELIMITED.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
val expectedByteSize = input.readInt32NoTag()
|
||||
var newArray = IntArray(0)
|
||||
var readSize = 0
|
||||
@@ -262,8 +279,10 @@ class RouteRequest private constructor (var distances: IntArray, var angles: Int
|
||||
angles = newArray
|
||||
} while (false)
|
||||
}
|
||||
else -> errorCode = 4
|
||||
}
|
||||
return true}
|
||||
return true
|
||||
}
|
||||
|
||||
fun parseFromWithSize(input: CodedInputStream, expectedSize: Int): RouteRequest.BuilderRouteRequest {
|
||||
while(getSizeNoTag() < expectedSize) {
|
||||
@@ -284,23 +303,27 @@ class RouteRequest private constructor (var distances: IntArray, var angles: Int
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32Size(1, distances[i])
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(2, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32Size(2, angles[i])
|
||||
arraySize += WireFormat.getInt32SizeNoTag(angles[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
@@ -312,23 +335,27 @@ class RouteRequest private constructor (var distances: IntArray, var angles: Int
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32Size(1, distances[i])
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(2, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32Size(2, angles[i])
|
||||
arraySize += WireFormat.getInt32SizeNoTag(angles[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while(false)
|
||||
}
|
||||
return size
|
||||
@@ -338,6 +365,7 @@ class RouteRequest private constructor (var distances: IntArray, var angles: Int
|
||||
|
||||
}
|
||||
|
||||
|
||||
class RouteResponse private constructor (var code: Int) {
|
||||
//========== Properties ===========
|
||||
//int32 code = 1
|
||||
@@ -355,6 +383,7 @@ class RouteResponse private constructor (var code: Int) {
|
||||
|
||||
fun mergeWith (other: RouteResponse) {
|
||||
code = other.code
|
||||
this.errorCode = other.errorCode
|
||||
}
|
||||
|
||||
fun mergeFromWithSize (input: CodedInputStream, expectedSize: Int) {
|
||||
@@ -407,7 +436,9 @@ class RouteResponse private constructor (var code: Int) {
|
||||
|
||||
//========== Mutating methods ===========
|
||||
fun build(): RouteResponse {
|
||||
return RouteResponse(code)
|
||||
val res = RouteResponse(code)
|
||||
res.errorCode = errorCode
|
||||
return res
|
||||
}
|
||||
|
||||
fun parseFieldFrom(input: CodedInputStream): Boolean {
|
||||
@@ -418,11 +449,16 @@ class RouteResponse private constructor (var code: Int) {
|
||||
val wireType = WireFormat.getTagWireType(tag)
|
||||
when(fieldNumber) {
|
||||
1 -> {
|
||||
if (wireType != WireType.VARINT) { errorCode = 1; return false }
|
||||
if (wireType.id != WireType.VARINT.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
code = input.readInt32NoTag()
|
||||
}
|
||||
else -> errorCode = 4
|
||||
}
|
||||
return true}
|
||||
return true
|
||||
}
|
||||
|
||||
fun parseFromWithSize(input: CodedInputStream, expectedSize: Int): RouteResponse.BuilderRouteResponse {
|
||||
while(getSizeNoTag() < expectedSize) {
|
||||
@@ -458,3 +494,5 @@ class RouteResponse private constructor (var code: Int) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -871,7 +871,7 @@ abstract class BlockCodegen(val state: TranslationState, val variableManager: Va
|
||||
successExpression = codeBuilder.loadAndGetVariable(successExpression)
|
||||
}
|
||||
|
||||
if (successExpression != null) {
|
||||
if (successExpression != null && resultVariable.type !is LLVMVoidType && resultVariable.type !is LLVMNullType) {
|
||||
codeBuilder.storeVariable(resultVariable, successExpression)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package org.kotlinnative.translator
|
||||
|
||||
import com.jshmrsn.karg.defaultPrintHelpCallback
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.psi.KtClass
|
||||
import org.jetbrains.kotlin.psi.KtParameter
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
package org.kotlinnative.translator.llvm.types
|
||||
|
||||
import org.kotlinnative.translator.exceptions.UnimplementedException
|
||||
import org.kotlinnative.translator.llvm.LLVMConstant
|
||||
import org.kotlinnative.translator.llvm.LLVMExpression
|
||||
import org.kotlinnative.translator.llvm.LLVMSingleValue
|
||||
import org.kotlinnative.translator.llvm.LLVMVariable
|
||||
|
||||
class LLVMCharType() : LLVMType() {
|
||||
override fun operatorLt(firstOp: LLVMSingleValue, secondOp: LLVMSingleValue): LLVMExpression =
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
package org.kotlinnative.translator.llvm.types
|
||||
|
||||
import org.kotlinnative.translator.exceptions.UnimplementedException
|
||||
import org.kotlinnative.translator.llvm.LLVMConstant
|
||||
import org.kotlinnative.translator.llvm.LLVMExpression
|
||||
import org.kotlinnative.translator.llvm.LLVMSingleValue
|
||||
import org.kotlinnative.translator.llvm.LLVMVariable
|
||||
|
||||
abstract class LLVMType() : Cloneable {
|
||||
|
||||
|
||||
@@ -3,3 +3,4 @@ array_extensions_1_copyOfRange() == 779
|
||||
array_extensions_1_copyOf_extend() == 340
|
||||
array_extensions_1_plus_element() == 2933
|
||||
array_extensions_1_plus_array() == 12132
|
||||
array_extensions_2_plus_array() == 10
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
serialization_test1_Int(1442) == 1442
|
||||
serialization_test2_Int(10)
|
||||
serialization_test2_Int(5)
|
||||
|
||||
@@ -59,4 +59,15 @@ fun array_extensions_1_plus_array(): Int {
|
||||
val maximize = array.plus(secondArray)
|
||||
val ans = maximize[2] + maximize[5] + maximize.size
|
||||
return ans
|
||||
}
|
||||
}
|
||||
|
||||
fun array_extensions_2_plus_array(): Int {
|
||||
var array = IntArray(0)
|
||||
val nextArray = IntArray(1)
|
||||
nextArray[0] = 10
|
||||
|
||||
array = array.plus(nextArray)
|
||||
println(array[0])
|
||||
|
||||
return array[0]
|
||||
}
|
||||
|
||||
@@ -1,29 +1,29 @@
|
||||
|
||||
class DirectionResponse private constructor (var code: Int) {
|
||||
class DirectionResponse private constructor(var code: Int) {
|
||||
//========== Properties ===========
|
||||
//int32 code = 1
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
fun writeTo(output: CodedOutputStream) {
|
||||
//int32 code = 1
|
||||
if (code != 0) {
|
||||
output.writeInt32 (1, code)
|
||||
output.writeInt32(1, code)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun mergeWith (other: DirectionResponse) {
|
||||
fun mergeWith(other: DirectionResponse) {
|
||||
code = other.code
|
||||
this.errorCode = other.errorCode
|
||||
}
|
||||
|
||||
fun mergeFromWithSize (input: CodedInputStream, expectedSize: Int) {
|
||||
fun mergeFromWithSize(input: CodedInputStream, expectedSize: Int) {
|
||||
val builder = DirectionResponse.BuilderDirectionResponse(0)
|
||||
mergeWith(builder.parseFromWithSize(input, expectedSize).build())
|
||||
}
|
||||
|
||||
fun mergeFrom (input: CodedInputStream) {
|
||||
fun mergeFrom(input: CodedInputStream) {
|
||||
val builder = DirectionResponse.BuilderDirectionResponse(0)
|
||||
mergeWith(builder.parseFrom(input).build())
|
||||
}
|
||||
@@ -47,7 +47,7 @@ class DirectionResponse private constructor (var code: Int) {
|
||||
}
|
||||
|
||||
//========== Builder ===========
|
||||
class BuilderDirectionResponse constructor (var code: Int) {
|
||||
class BuilderDirectionResponse constructor(var code: Int) {
|
||||
//========== Properties ===========
|
||||
//int32 code = 1
|
||||
fun setCode(value: Int): DirectionResponse.BuilderDirectionResponse {
|
||||
@@ -58,43 +58,57 @@ class DirectionResponse private constructor (var code: Int) {
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
fun writeTo(output: CodedOutputStream) {
|
||||
//int32 code = 1
|
||||
if (code != 0) {
|
||||
output.writeInt32 (1, code)
|
||||
output.writeInt32(1, code)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//========== Mutating methods ===========
|
||||
fun build(): DirectionResponse {
|
||||
return DirectionResponse(code)
|
||||
val res = DirectionResponse(code)
|
||||
res.errorCode = errorCode
|
||||
return res
|
||||
}
|
||||
|
||||
fun parseFieldFrom(input: CodedInputStream): Boolean {
|
||||
if (input.isAtEnd()) { return false }
|
||||
if (input.isAtEnd()) {
|
||||
return false
|
||||
}
|
||||
val tag = input.readInt32NoTag()
|
||||
if (tag == 0) { return false }
|
||||
if (tag == 0) {
|
||||
return false
|
||||
}
|
||||
val fieldNumber = WireFormat.getTagFieldNumber(tag)
|
||||
val wireType = WireFormat.getTagWireType(tag)
|
||||
when(fieldNumber) {
|
||||
when (fieldNumber) {
|
||||
1 -> {
|
||||
if (wireType != WireType.VARINT) { errorCode = 1; return false }
|
||||
if (wireType.id != WireType.VARINT.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
code = input.readInt32NoTag()
|
||||
}
|
||||
else -> errorCode = 4
|
||||
}
|
||||
return true}
|
||||
return true
|
||||
}
|
||||
|
||||
fun parseFromWithSize(input: CodedInputStream, expectedSize: Int): DirectionResponse.BuilderDirectionResponse {
|
||||
while(getSizeNoTag() < expectedSize) {
|
||||
while (getSizeNoTag() < expectedSize) {
|
||||
parseFieldFrom(input)
|
||||
}
|
||||
if (getSizeNoTag() > expectedSize) { errorCode = 2 }
|
||||
if (getSizeNoTag() > expectedSize) {
|
||||
errorCode = 2
|
||||
}
|
||||
return this
|
||||
}
|
||||
|
||||
fun parseFrom(input: CodedInputStream): DirectionResponse.BuilderDirectionResponse {
|
||||
while(parseFieldFrom(input)) {}
|
||||
while (parseFieldFrom(input)) {
|
||||
}
|
||||
return this
|
||||
}
|
||||
|
||||
@@ -120,343 +134,382 @@ class DirectionResponse private constructor (var code: Int) {
|
||||
|
||||
}
|
||||
|
||||
class RouteRequest private constructor (var distances: IntArray, var angles: IntArray) {
|
||||
//========== Properties ===========
|
||||
//repeated int32 distances = 1
|
||||
|
||||
//repeated int32 angles = 2
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//repeated int32 distances = 1
|
||||
if (distances.size > 0) {
|
||||
output.writeTag(1, WireType.LENGTH_DELIMITED)
|
||||
var arrayByteSize = 0
|
||||
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
arrayByteSize += arraySize
|
||||
} while(false)
|
||||
}
|
||||
output.writeInt32NoTag(arrayByteSize)
|
||||
|
||||
do {
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
output.writeInt32NoTag (distances[i])
|
||||
i += 1
|
||||
}
|
||||
} while(false)
|
||||
}
|
||||
|
||||
//repeated int32 angles = 2
|
||||
if (angles.size > 0) {
|
||||
output.writeTag(2, WireType.LENGTH_DELIMITED)
|
||||
var arrayByteSize = 0
|
||||
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(angles[i])
|
||||
i += 1
|
||||
}
|
||||
arrayByteSize += arraySize
|
||||
} while(false)
|
||||
}
|
||||
output.writeInt32NoTag(arrayByteSize)
|
||||
|
||||
do {
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
output.writeInt32NoTag (angles[i])
|
||||
i += 1
|
||||
}
|
||||
} while(false)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun mergeWith (other: RouteRequest) {
|
||||
distances = distances.plus((other.distances))
|
||||
angles = angles.plus((other.angles))
|
||||
}
|
||||
|
||||
fun mergeFromWithSize (input: CodedInputStream, expectedSize: Int) {
|
||||
val builder = RouteRequest.BuilderRouteRequest(IntArray(0), IntArray(0))
|
||||
mergeWith(builder.parseFromWithSize(input, expectedSize).build())
|
||||
}
|
||||
|
||||
fun mergeFrom (input: CodedInputStream) {
|
||||
val builder = RouteRequest.BuilderRouteRequest(IntArray(0), IntArray(0))
|
||||
mergeWith(builder.parseFrom(input).build())
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32Size(1, distances[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
} while(false)
|
||||
}
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32Size(2, angles[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
} while(false)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32Size(1, distances[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
} while(false)
|
||||
}
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32Size(2, angles[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
} while(false)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
//========== Builder ===========
|
||||
class BuilderRouteRequest constructor (var distances: IntArray, var angles: IntArray) {
|
||||
class RouteRequest private constructor(var distances: IntArray, var angles: IntArray) {
|
||||
//========== Properties ===========
|
||||
//repeated int32 distances = 1
|
||||
fun setDistances(value: IntArray): RouteRequest.BuilderRouteRequest {
|
||||
distances = value
|
||||
return this
|
||||
}
|
||||
fun setdistancesByIndex(index: Int, value: Int): RouteRequest.BuilderRouteRequest {
|
||||
distances[index] = value
|
||||
return this
|
||||
}
|
||||
|
||||
//repeated int32 angles = 2
|
||||
fun setAngles(value: IntArray): RouteRequest.BuilderRouteRequest {
|
||||
angles = value
|
||||
return this
|
||||
}
|
||||
fun setanglesByIndex(index: Int, value: Int): RouteRequest.BuilderRouteRequest {
|
||||
angles[index] = value
|
||||
return this
|
||||
}
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo (output: CodedOutputStream) {
|
||||
//repeated int32 distances = 1
|
||||
if (distances.size > 0) {
|
||||
output.writeTag(1, WireType.LENGTH_DELIMITED)
|
||||
var arrayByteSize = 0
|
||||
fun writeTo(output: CodedOutputStream) {
|
||||
//repeated int32 distances = 1
|
||||
if (distances.size > 0) {
|
||||
output.writeTag(1, WireType.LENGTH_DELIMITED)
|
||||
var arrayByteSize = 0
|
||||
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
arrayByteSize += arraySize
|
||||
} while (false)
|
||||
}
|
||||
arrayByteSize += arraySize
|
||||
} while(false)
|
||||
output.writeInt32NoTag(arrayByteSize)
|
||||
|
||||
do {
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
output.writeInt32NoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
} while (false)
|
||||
}
|
||||
output.writeInt32NoTag(arrayByteSize)
|
||||
|
||||
do {
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
output.writeInt32NoTag (distances[i])
|
||||
i += 1
|
||||
}
|
||||
} while(false)
|
||||
}
|
||||
//repeated int32 angles = 2
|
||||
if (angles.size > 0) {
|
||||
output.writeTag(2, WireType.LENGTH_DELIMITED)
|
||||
var arrayByteSize = 0
|
||||
|
||||
//repeated int32 angles = 2
|
||||
if (angles.size > 0) {
|
||||
output.writeTag(2, WireType.LENGTH_DELIMITED)
|
||||
var arrayByteSize = 0
|
||||
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(angles[i])
|
||||
i += 1
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(angles[i])
|
||||
i += 1
|
||||
}
|
||||
arrayByteSize += arraySize
|
||||
} while (false)
|
||||
}
|
||||
arrayByteSize += arraySize
|
||||
} while(false)
|
||||
}
|
||||
output.writeInt32NoTag(arrayByteSize)
|
||||
output.writeInt32NoTag(arrayByteSize)
|
||||
|
||||
do {
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
output.writeInt32NoTag (angles[i])
|
||||
i += 1
|
||||
}
|
||||
} while(false)
|
||||
}
|
||||
do {
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
output.writeInt32NoTag(angles[i])
|
||||
i += 1
|
||||
}
|
||||
} while (false)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//========== Mutating methods ===========
|
||||
fun build(): RouteRequest {
|
||||
return RouteRequest(distances, angles)
|
||||
fun mergeWith(other: RouteRequest) {
|
||||
distances = distances.plus((other.distances))
|
||||
angles = angles.plus((other.angles))
|
||||
this.errorCode = other.errorCode
|
||||
}
|
||||
|
||||
fun parseFieldFrom(input: CodedInputStream): Boolean {
|
||||
if (input.isAtEnd()) { return false }
|
||||
val tag = input.readInt32NoTag()
|
||||
if (tag == 0) { return false }
|
||||
val fieldNumber = WireFormat.getTagFieldNumber(tag)
|
||||
val wireType = WireFormat.getTagWireType(tag)
|
||||
when(fieldNumber) {
|
||||
1 -> {
|
||||
if (wireType != WireType.LENGTH_DELIMITED) { errorCode = 1; return false }
|
||||
val expectedByteSize = input.readInt32NoTag()
|
||||
var newArray = IntArray(0)
|
||||
var readSize = 0
|
||||
do {
|
||||
var i = 0
|
||||
while(readSize < expectedByteSize) {
|
||||
var tmp = IntArray(1)
|
||||
tmp[0] = input.readInt32NoTag()
|
||||
newArray = newArray.plus(tmp)
|
||||
readSize += WireFormat.getInt32SizeNoTag(tmp[0])
|
||||
}
|
||||
distances = newArray
|
||||
} while (false)
|
||||
}
|
||||
2 -> {
|
||||
if (wireType != WireType.LENGTH_DELIMITED) { errorCode = 1; return false }
|
||||
val expectedByteSize = input.readInt32NoTag()
|
||||
var newArray = IntArray(0)
|
||||
var readSize = 0
|
||||
do {
|
||||
var i = 0
|
||||
while(readSize < expectedByteSize) {
|
||||
var tmp = IntArray(1)
|
||||
tmp[0] = input.readInt32NoTag()
|
||||
newArray = newArray.plus(tmp)
|
||||
readSize += WireFormat.getInt32SizeNoTag(tmp[0])
|
||||
}
|
||||
angles = newArray
|
||||
} while (false)
|
||||
}
|
||||
}
|
||||
return true}
|
||||
|
||||
fun parseFromWithSize(input: CodedInputStream, expectedSize: Int): RouteRequest.BuilderRouteRequest {
|
||||
while(getSizeNoTag() < expectedSize) {
|
||||
parseFieldFrom(input)
|
||||
}
|
||||
if (getSizeNoTag() > expectedSize) { errorCode = 2 }
|
||||
return this
|
||||
fun mergeFromWithSize(input: CodedInputStream, expectedSize: Int) {
|
||||
val builder = RouteRequest.BuilderRouteRequest(IntArray(0), IntArray(0))
|
||||
mergeWith(builder.parseFromWithSize(input, expectedSize).build())
|
||||
}
|
||||
|
||||
fun parseFrom(input: CodedInputStream): RouteRequest.BuilderRouteRequest {
|
||||
while(parseFieldFrom(input)) {}
|
||||
return this
|
||||
fun mergeFrom(input: CodedInputStream) {
|
||||
val builder = RouteRequest.BuilderRouteRequest(IntArray(0), IntArray(0))
|
||||
mergeWith(builder.parseFrom(input).build())
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32Size(1, distances[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
} while(false)
|
||||
}
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32Size(2, angles[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
} while(false)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
var size = 0
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while (false)
|
||||
}
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(2, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(angles[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while (false)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32Size(1, distances[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
} while(false)
|
||||
}
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32Size(2, angles[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
} while(false)
|
||||
}
|
||||
return size
|
||||
var size = 0
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while (false)
|
||||
}
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(2, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(angles[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while (false)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
}
|
||||
//========== Builder ===========
|
||||
class BuilderRouteRequest constructor(var distances: IntArray, var angles: IntArray) {
|
||||
//========== Properties ===========
|
||||
//repeated int32 distances = 1
|
||||
fun setDistances(value: IntArray): RouteRequest.BuilderRouteRequest {
|
||||
distances = value
|
||||
return this
|
||||
}
|
||||
|
||||
fun setdistancesByIndex(index: Int, value: Int): RouteRequest.BuilderRouteRequest {
|
||||
distances[index] = value
|
||||
return this
|
||||
}
|
||||
|
||||
//repeated int32 angles = 2
|
||||
fun setAngles(value: IntArray): RouteRequest.BuilderRouteRequest {
|
||||
angles = value
|
||||
return this
|
||||
}
|
||||
|
||||
fun setanglesByIndex(index: Int, value: Int): RouteRequest.BuilderRouteRequest {
|
||||
angles[index] = value
|
||||
return this
|
||||
}
|
||||
|
||||
var errorCode: Int = 0
|
||||
|
||||
//========== Serialization methods ===========
|
||||
fun writeTo(output: CodedOutputStream) {
|
||||
//repeated int32 distances = 1
|
||||
if (distances.size > 0) {
|
||||
output.writeTag(1, WireType.LENGTH_DELIMITED)
|
||||
var arrayByteSize = 0
|
||||
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
arrayByteSize += arraySize
|
||||
} while (false)
|
||||
}
|
||||
output.writeInt32NoTag(arrayByteSize)
|
||||
|
||||
do {
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
output.writeInt32NoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
} while (false)
|
||||
}
|
||||
|
||||
//repeated int32 angles = 2
|
||||
if (angles.size > 0) {
|
||||
output.writeTag(2, WireType.LENGTH_DELIMITED)
|
||||
var arrayByteSize = 0
|
||||
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(angles[i])
|
||||
i += 1
|
||||
}
|
||||
arrayByteSize += arraySize
|
||||
} while (false)
|
||||
}
|
||||
output.writeInt32NoTag(arrayByteSize)
|
||||
|
||||
do {
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
output.writeInt32NoTag(angles[i])
|
||||
i += 1
|
||||
}
|
||||
} while (false)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//========== Mutating methods ===========
|
||||
fun build(): RouteRequest {
|
||||
val res = RouteRequest(distances, angles)
|
||||
res.errorCode = errorCode
|
||||
return res
|
||||
}
|
||||
|
||||
fun parseFieldFrom(input: CodedInputStream): Boolean {
|
||||
if (input.isAtEnd()) {
|
||||
return false
|
||||
}
|
||||
val tag = input.readInt32NoTag()
|
||||
if (tag == 0) {
|
||||
return false
|
||||
}
|
||||
val fieldNumber = WireFormat.getTagFieldNumber(tag)
|
||||
val wireType = WireFormat.getTagWireType(tag)
|
||||
when (fieldNumber) {
|
||||
1 -> {
|
||||
if (wireType.id != WireType.LENGTH_DELIMITED.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
val expectedByteSize = input.readInt32NoTag()
|
||||
var newArray = IntArray(0)
|
||||
var readSize = 0
|
||||
do {
|
||||
var i = 0
|
||||
while (readSize < expectedByteSize) {
|
||||
var tmp = IntArray(1)
|
||||
tmp[0] = input.readInt32NoTag()
|
||||
println(tmp)
|
||||
println(newArray)
|
||||
newArray = newArray.plus(tmp)
|
||||
println(newArray)
|
||||
readSize += WireFormat.getInt32SizeNoTag(tmp[0])
|
||||
}
|
||||
distances = newArray
|
||||
} while (false)
|
||||
}
|
||||
2 -> {
|
||||
if (wireType.id != WireType.LENGTH_DELIMITED.id) {
|
||||
errorCode = 1
|
||||
return false
|
||||
}
|
||||
val expectedByteSize = input.readInt32NoTag()
|
||||
var newArray = IntArray(0)
|
||||
var readSize = 0
|
||||
do {
|
||||
var i = 0
|
||||
while (readSize < expectedByteSize) {
|
||||
var tmp = IntArray(1)
|
||||
tmp[0] = input.readInt32NoTag()
|
||||
newArray = newArray.plus(tmp)
|
||||
readSize += WireFormat.getInt32SizeNoTag(tmp[0])
|
||||
}
|
||||
angles = newArray
|
||||
} while (false)
|
||||
}
|
||||
else -> errorCode = 4
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
fun parseFromWithSize(input: CodedInputStream, expectedSize: Int): RouteRequest.BuilderRouteRequest {
|
||||
while (getSizeNoTag() < expectedSize) {
|
||||
parseFieldFrom(input)
|
||||
}
|
||||
if (getSizeNoTag() > expectedSize) {
|
||||
errorCode = 2
|
||||
}
|
||||
return this
|
||||
}
|
||||
|
||||
fun parseFrom(input: CodedInputStream): RouteRequest.BuilderRouteRequest {
|
||||
while (parseFieldFrom(input)) {
|
||||
}
|
||||
return this
|
||||
}
|
||||
|
||||
//========== Size-related methods ===========
|
||||
fun getSize(fieldNumber: Int): Int {
|
||||
var size = 0
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while (false)
|
||||
}
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(2, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(angles[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while (false)
|
||||
}
|
||||
size += WireFormat.getVarint32Size(size) + WireFormat.getTagSize(fieldNumber, WireType.LENGTH_DELIMITED)
|
||||
return size
|
||||
}
|
||||
|
||||
fun getSizeNoTag(): Int {
|
||||
var size = 0
|
||||
if (distances.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(1, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < distances.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(distances[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while (false)
|
||||
}
|
||||
if (angles.size != 0) {
|
||||
do {
|
||||
var arraySize = 0
|
||||
size += WireFormat.getTagSize(2, WireType.LENGTH_DELIMITED)
|
||||
var i = 0
|
||||
while (i < angles.size) {
|
||||
arraySize += WireFormat.getInt32SizeNoTag(angles[i])
|
||||
i += 1
|
||||
}
|
||||
size += arraySize
|
||||
size += WireFormat.getInt32SizeNoTag(arraySize)
|
||||
} while (false)
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -483,15 +536,24 @@ fun serialization_test2(size: Int) {
|
||||
|
||||
val message = RouteRequest.BuilderRouteRequest(arr, arr).build()
|
||||
val buffer = ByteArray(message.getSizeNoTag())
|
||||
|
||||
i = 0
|
||||
while (i < buffer.size) {
|
||||
buffer[i] = 0
|
||||
i++
|
||||
}
|
||||
|
||||
|
||||
val outputStream = CodedOutputStream(buffer)
|
||||
message.writeTo(outputStream)
|
||||
|
||||
|
||||
val inputStream = CodedInputStream(buffer)
|
||||
val receivedMessage = RouteRequest.BuilderRouteRequest(IntArray(1), IntArray(1)).parseFrom(inputStream).build()
|
||||
|
||||
i = 0
|
||||
while (i < size) {
|
||||
println(message.distances[i])
|
||||
println(receivedMessage.distances[i])
|
||||
assert(message.distances[i] == receivedMessage.distances[i])
|
||||
i++
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user