// Copyright (C) 2017 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. // Protos for a data store: a barebone in-memory file system. // // A DataStore maintains an association between names and chunks of bytes. It // can be serialized into a string. Of course, it can be deserialized from a // string, with minimal parsing; after deserialization, all chunks of bytes // start at aligned addresses (aligned = multiple of an address specified at // build time). syntax = "proto2"; option optimize_for = LITE_RUNTIME; package libtextclassifier.nlp_core.memory_image; // Bytes for a data store entry. They can be stored either directly in the // "data" field, or in the DataBlob with the 0-based index "blob_index". message DataStoreEntryBytes { oneof data { // Bytes for this data store entry, stored in this message. string in_place_data = 1; // 0-based index of the data blob with bytes for this data store entry. In // this case, the actual bytes are stored outside this message; the // DataStore code handles the association. int32 blob_index = 2 [default = -1]; } } message DataStoreProto { map entries = 1; }