diff options
Diffstat (limited to 'tzs2storage/tools/src/proto/geotz_protos.proto')
-rw-r--r-- | tzs2storage/tools/src/proto/geotz_protos.proto | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tzs2storage/tools/src/proto/geotz_protos.proto b/tzs2storage/tools/src/proto/geotz_protos.proto new file mode 100644 index 0000000..f5831c4 --- /dev/null +++ b/tzs2storage/tools/src/proto/geotz_protos.proto @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * 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. + */ + +syntax = "proto2"; + +option java_package = "com.android.timezone.location.tools.proto"; +option java_multiple_files = false; + +package com.android.timezone.location.tools.proto; + +// The format need to write a TZ S2 data file. +message TimeZones { + // All the time zone ID sets referenced by index from the ranges. + repeated TimeZoneIdSet timeZoneIdSets = 1; + + // S2 cell ranges with the same time zone IDs. Must be ordered by (unsigned) + // S2 start cell ID, no overlaps, gaps permitted. + repeated S2Range ranges = 2; +} + +// Sets of time zone IDs. +message TimeZoneIdSet { + + // A set of IANA TZDB time zone IDs, e.g. {"Europe/London", "Europe/Paris"} + repeated string timeZoneIds = 1; +} + +// An S2 cell range with the same time zone ID(s). +message S2Range { + + // The start S2 cell ID (inclusive). + required uint64 startCellId = 1; + + // The end S2 cell ID (exclusive). + required uint64 endCellId = 2; + + // The index of the TimeZoneIdSet (TimeZones.timeZoneIdSets) associated with + // the range. + required uint32 timeZoneIdSetIndex = 3; +} |