MCPcopy Create free account
hub / github.com/OpenTSDB/asynchbase / serializeOld

Method serializeOld

src/Scanner.java:1400–1461  ·  view source on GitHub ↗

Serializes this request for HBase 0.94 and before.

(final byte server_version)

Source from the content-addressed store, hash-verified

1398
1399 /** Serializes this request for HBase 0.94 and before. */
1400 private ChannelBuffer serializeOld(final byte server_version) {
1401 final ChannelBuffer buf = newBuffer(server_version,
1402 predictSerializedSize());
1403 buf.writeInt(2); // Number of parameters.
1404
1405 // 1st param: byte array containing region name
1406 writeHBaseByteArray(buf, super.region.name());
1407
1408 // 2nd param: Scan object
1409 buf.writeByte(39); // Code for a `Scan' parameter.
1410 buf.writeByte(39); // Code again (see HBASE-2877).
1411 buf.writeByte(1); // Manual versioning of Scan.
1412 writeByteArray(buf, start_key);
1413 writeByteArray(buf, stop_key);
1414 buf.writeInt(versions); // Max number of versions to return.
1415
1416 // Max number of KeyValues to get per RPC.
1417 buf.writeInt(max_num_kvs);
1418
1419 // Unused field, only used by HBase's client. This value should represent
1420 // how many rows per call the client will fetch, but the server doesn't
1421 // care about this value, neither do we, because we use a different API.
1422 buf.writeInt(0xDEADBA5E);
1423
1424 // Whether or not to populate the blockcache.
1425 buf.writeByte(populate_blockcache ? 0x01 : 0x00);
1426
1427 if (filter == null) {
1428 buf.writeByte(0x00); // boolean (false): don't use a filter.
1429 } else {
1430 buf.writeByte(0x01); // boolean (true): use a filter.
1431 filter.serializeOld(buf);
1432 }
1433
1434 // TimeRange
1435 buf.writeLong(min_timestamp); // Minimum timestamp.
1436 buf.writeLong(max_timestamp); // Maximum timestamp.
1437 // Boolean: "all time".
1438 buf.writeByte(min_timestamp != 0 || max_timestamp != Long.MAX_VALUE
1439 ? 0x00 : 0x01);
1440
1441 // Families.
1442 if (families != null) {
1443 buf.writeInt(families.length); // Number of families that follow.
1444 for (int i = 0; i < families.length; i++) {
1445 // Each family is then written like so:
1446 writeByteArray(buf, families[i]); // Column family name.
1447 if (qualifiers != null && qualifiers[i] != null) {
1448 buf.writeInt(qualifiers[i].length); // How many qualifiers do we want?
1449 for (byte[] qualifier : qualifiers[i]) {
1450 writeByteArray(buf, qualifier); // Column qualifier name.
1451 }
1452 } else {
1453 buf.writeInt(0); // No qualifiers.
1454 }
1455 }
1456 } else {
1457 buf.writeInt(0); // No families.

Callers 1

serializeMethod · 0.95

Calls 5

predictSerializedSizeMethod · 0.95
newBufferMethod · 0.80
writeHBaseByteArrayMethod · 0.80
writeByteArrayMethod · 0.80
nameMethod · 0.45

Tested by

no test coverage detected