/*
    SPDX-FileCopyrightText: 2010 Scott A. Crosby. <scott@sacrosby.com>

    SPDX-License-Identifier: GPL-3.0-or-later
*/

option optimize_for = LITE_RUNTIME;
option java_package = "crosby.binary";
package OSMPBF;

//protoc --java_out=../.. fileformat.proto


//
//  STORAGE LAYER: Storing primitives.
//

message Blob {
  optional bytes raw = 1; // No compression
  optional int32 raw_size = 2; // When compressed, the uncompressed size

  // Possible compressed versions of the data.
  optional bytes zlib_data = 3;

  // PROPOSED feature for LZMA compressed data. SUPPORT IS NOT REQUIRED.
  optional bytes lzma_data = 4;

  // Formerly used for bzip2 compressed data. Depreciated in 2010.
  optional bytes OBSOLETE_bzip2_data = 5 [deprecated=true]; // Don't reuse this tag number.
}

/* A file contains an sequence of fileblock headers, each prefixed by
their length in network byte order, followed by a data block
containing the actual data. types staring with a "_" are reserved.
*/

message BlobHeader {
  required string type = 1;
  optional bytes indexdata = 2;
  required int32 datasize = 3;
}


