类com.google.protobuf.nano.MessageNano源码实例Demo

下面列出了怎么用com.google.protobuf.nano.MessageNano的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: netty-4.1.22   文件: ProtobufDecoderNano.java
@Override
protected void decode(ChannelHandlerContext ctx, ByteBuf msg, List<Object> out)
        throws Exception {
    final byte[] array;
    final int offset;
    final int length = msg.readableBytes();
    if (msg.hasArray()) {
        array = msg.array();
        offset = msg.arrayOffset() + msg.readerIndex();
    } else {
        array = new byte[length];
        msg.getBytes(msg.readerIndex(), array, 0, length);
        offset = 0;
    }
    MessageNano prototype = clazz.getConstructor().newInstance();
    out.add(MessageNano.mergeFrom(prototype, array, offset, length));
}
 
源代码2 项目: LB-Launcher   文件: LauncherBackupHelper.java
/**
 * Deserialize a proto after verifying checksum wrapper.
 */
private <T extends MessageNano> T unpackProto(T proto, byte[] buffer, int dataSize)
        throws InvalidProtocolBufferNanoException {
    MessageNano.mergeFrom(proto, readCheckedBytes(buffer, dataSize));
    if (DEBUG) Log.d(TAG, "unpacked proto " + proto);
    return proto;
}
 
源代码3 项目: grpc-nebula-java   文件: NanoUtilsTest.java
@Test
public void testRoundTrip() {
  Message m = new Message();
  m.i = 2;
  m.b = true;
  m.s = "string";
  Message m2 = marshaller.parse(marshaller.stream(m));
  assertNotSame(m, m2);
  assertEquals(2, m2.i);
  assertEquals(true, m2.b);
  assertEquals("string", m2.s);
  assertTrue(MessageNano.messageNanoEquals(m, m2));
}
 
源代码4 项目: netty-4.1.22   文件: ProtobufEncoderNano.java
@Override
protected void encode(
        ChannelHandlerContext ctx, MessageNano msg, List<Object> out) throws Exception {
    final int size = msg.getSerializedSize();
    final ByteBuf buffer = ctx.alloc().heapBuffer(size, size);
    final byte[] array = buffer.array();
    CodedOutputByteBufferNano cobbn = CodedOutputByteBufferNano.newInstance(array,
            buffer.arrayOffset(), buffer.capacity());
    msg.writeTo(cobbn);
    buffer.writerIndex(size);
    out.add(buffer);
}
 
源代码5 项目: delion   文件: StorageDelegate.java
/**
 * Update tab entries based on metadata.
 * @param metadataBytes Metadata from last time Chrome was alive.
 * @param entryMap Map to fill with {@link DocumentTabModel.Entry}s about Tabs.
 * @param recentlyClosedTabIdList List to fill with IDs of recently closed tabs.
 */
private void updateTabEntriesFromMetadata(byte[] metadataBytes, SparseArray<Entry> entryMap,
        List<Integer> recentlyClosedTabIdList) {
    if (metadataBytes != null) {
        DocumentList list = null;
        try {
            list = MessageNano.mergeFrom(new DocumentList(), metadataBytes);
        } catch (IOException e) {
            Log.e(TAG, "I/O exception", e);
        }
        if (list == null) return;

        for (int i = 0; i < list.entries.length; i++) {
            DocumentEntry savedEntry = list.entries[i];
            int tabId = savedEntry.tabId;

            // If the tab ID isn't in the list, it must have been closed after Chrome died.
            if (entryMap.indexOfKey(tabId) < 0) {
                recentlyClosedTabIdList.add(tabId);
                continue;
            }

            // Restore information about the Tab.
            entryMap.get(tabId).canGoBack = savedEntry.canGoBack;
        }
    }
}
 
源代码6 项目: AndroidChromium   文件: StorageDelegate.java
/**
 * Update tab entries based on metadata.
 * @param metadataBytes Metadata from last time Chrome was alive.
 * @param entryMap Map to fill with {@link DocumentTabModel.Entry}s about Tabs.
 * @param recentlyClosedTabIdList List to fill with IDs of recently closed tabs.
 */
private void updateTabEntriesFromMetadata(byte[] metadataBytes, SparseArray<Entry> entryMap,
        List<Integer> recentlyClosedTabIdList) {
    if (metadataBytes != null) {
        DocumentList list = null;
        try {
            list = MessageNano.mergeFrom(new DocumentList(), metadataBytes);
        } catch (IOException e) {
            Log.e(TAG, "I/O exception", e);
        }
        if (list == null) return;

        for (int i = 0; i < list.entries.length; i++) {
            DocumentEntry savedEntry = list.entries[i];
            int tabId = savedEntry.tabId;

            // If the tab ID isn't in the list, it must have been closed after Chrome died.
            if (entryMap.indexOfKey(tabId) < 0) {
                recentlyClosedTabIdList.add(tabId);
                continue;
            }

            // Restore information about the Tab.
            entryMap.get(tabId).canGoBack = savedEntry.canGoBack;
        }
    }
}
 
源代码7 项目: Trebuchet   文件: LauncherBackupHelper.java
/**
 * Deserialize a proto after verifying checksum wrapper.
 */
private <T extends MessageNano> T unpackProto(T proto, byte[] buffer, int dataSize)
        throws InvalidProtocolBufferNanoException {
    MessageNano.mergeFrom(proto, readCheckedBytes(buffer, dataSize));
    if (DEBUG) Log.d(TAG, "unpacked proto " + proto);
    return proto;
}
 
源代码8 项目: Trebuchet   文件: LauncherBackupHelper.java
private void writeRowToBackup(String backupKey, MessageNano proto,
        BackupDataOutput data) throws IOException {
    byte[] blob = writeCheckedBytes(proto);
    data.writeEntityHeader(backupKey, blob.length);
    data.writeEntityData(blob, blob.length);
    mBackupDataWasUpdated = true;
    if (VERBOSE) Log.v(TAG, "Writing New entry " + backupKey);
}
 
源代码9 项目: Trebuchet   文件: LauncherBackupHelper.java
/** Wrap a proto in a CheckedMessage and compute the checksum. */
private byte[] writeCheckedBytes(MessageNano proto) {
    CheckedMessage wrapper = new CheckedMessage();
    wrapper.payload = MessageNano.toByteArray(proto);
    CRC32 checksum = new CRC32();
    checksum.update(wrapper.payload);
    wrapper.checksum = checksum.getValue();
    return MessageNano.toByteArray(wrapper);
}
 
源代码10 项目: Trebuchet   文件: LauncherBackupHelper.java
/** Unwrap a proto message from a CheckedMessage, verifying the checksum. */
private static byte[] readCheckedBytes(byte[] buffer, int dataSize)
        throws InvalidProtocolBufferNanoException {
    CheckedMessage wrapper = new CheckedMessage();
    MessageNano.mergeFrom(wrapper, buffer, 0, dataSize);
    CRC32 checksum = new CRC32();
    checksum.update(wrapper.payload);
    if (wrapper.checksum != checksum.getValue()) {
        throw new InvalidProtocolBufferNanoException("checksum does not match");
    }
    return wrapper.payload;
}
 
源代码11 项目: PainlessMusicPlayer   文件: ProtoUtils.java
public static void writeToFile(@NonNull final Context context,
        @NonNull final String fileName,
        @NonNull final MessageNano messageNano) {
    final byte[] output;
    try {
        output = toByteArray(messageNano);
    } catch (IOException e) {
        Log.w(TAG, e);
        return;
    }
    FileUtils.writeOrDeletePrivateFile(context, fileName, output);
}
 
源代码12 项目: PainlessMusicPlayer   文件: ProtoUtils.java
@Nullable
public static <T extends MessageNano> T readFromFile(@NonNull final Context context,
        @NonNull final String fileName,
        @NonNull final T obj) {
    T message = null;
    try {
        final byte[] bytes = FileUtils.readPrivateFile(context, fileName);
        message = MessageNano.mergeFrom(obj, bytes);
    } catch (IOException e) {
        Log.w(TAG, e);
    }

    return message;
}
 
源代码13 项目: PainlessMusicPlayer   文件: ProtoUtils.java
@NonNull
public static <T extends MessageNano> T readFromFileNonNull(@NonNull final Context context,
        @NonNull final String fileName,
        @NonNull final T obj) {
    final T message = readFromFile(context, fileName, obj);
    return message != null ? message : obj;
}
 
源代码14 项目: PainlessMusicPlayer   文件: ProtoUtilsTest.java
@Test
public void testToByteArray() throws Exception {
    final SettingsProto.Settings message = new SettingsProto.Settings();
    message.scrobbleEnabled = true;
    message.theme = 666;

    final byte[] data = ProtoUtils.toByteArray(message);
    assertNotNull(data);

    final SettingsProto.Settings fromBytes = MessageNano.mergeFrom(
            new SettingsProto.Settings(), data);

    assertEquals(message.scrobbleEnabled, fromBytes.scrobbleEnabled);
    assertEquals(message.theme, fromBytes.theme);
}
 
源代码15 项目: TurboLauncher   文件: LauncherBackupHelper.java
/** Deserialize a Screen from persistence, after verifying checksum wrapper. */
private ContentValues unpackScreen(byte[] buffer, int offset, int dataSize)
        throws InvalidProtocolBufferNanoException {
    Screen screen = new Screen();
    MessageNano.mergeFrom(screen, readCheckedBytes(buffer, offset, dataSize));
    if (VERBOSE) Log.v(TAG, "unpacked screen " + screen.id + "/" + screen.rank);
    ContentValues values = new ContentValues();
    values.put(WorkspaceScreens._ID, screen.id);
    values.put(WorkspaceScreens.SCREEN_RANK, screen.rank);
    return values;
}
 
源代码16 项目: TurboLauncher   文件: LauncherBackupHelper.java
/** Deserialize an icon resource from persistence, after verifying checksum wrapper. */
private static Resource unpackIcon(byte[] buffer, int offset, int dataSize)
        throws InvalidProtocolBufferNanoException {
    Resource res = new Resource();
    MessageNano.mergeFrom(res, readCheckedBytes(buffer, offset, dataSize));
    if (VERBOSE) Log.v(TAG, "unpacked icon " + res.dpi + "/" + res.data.length);
    return res;
}
 
源代码17 项目: TurboLauncher   文件: LauncherBackupHelper.java
/** Deserialize a widget from persistence, after verifying checksum wrapper. */
private Widget unpackWidget(byte[] buffer, int offset, int dataSize)
        throws InvalidProtocolBufferNanoException {
    Widget widget = new Widget();
    MessageNano.mergeFrom(widget, readCheckedBytes(buffer, offset, dataSize));
    if (VERBOSE) Log.v(TAG, "unpacked widget " + widget.provider);
    return widget;
}
 
源代码18 项目: TurboLauncher   文件: LauncherBackupHelper.java
/** Wrap a proto in a CheckedMessage and compute the checksum. */
private byte[] writeCheckedBytes(MessageNano proto) {
    CheckedMessage wrapper = new CheckedMessage();
    wrapper.payload = MessageNano.toByteArray(proto);
    CRC32 checksum = new CRC32();
    checksum.update(wrapper.payload);
    wrapper.checksum = checksum.getValue();
    return MessageNano.toByteArray(wrapper);
}
 
源代码19 项目: TurboLauncher   文件: LauncherBackupHelper.java
/** Unwrap a proto message from a CheckedMessage, verifying the checksum. */
private static byte[] readCheckedBytes(byte[] buffer, int offset, int dataSize)
        throws InvalidProtocolBufferNanoException {
    CheckedMessage wrapper = new CheckedMessage();
    MessageNano.mergeFrom(wrapper, buffer, offset, dataSize);
    CRC32 checksum = new CRC32();
    checksum.update(wrapper.payload);
    if (wrapper.checksum != checksum.getValue()) {
        throw new InvalidProtocolBufferNanoException("checksum does not match");
    }
    return wrapper.payload;
}
 
源代码20 项目: LB-Launcher   文件: LauncherBackupHelper.java
/** Unwrap a proto message from a CheckedMessage, verifying the checksum. */
private static byte[] readCheckedBytes(byte[] buffer, int dataSize)
        throws InvalidProtocolBufferNanoException {
    CheckedMessage wrapper = new CheckedMessage();
    MessageNano.mergeFrom(wrapper, buffer, 0, dataSize);
    CRC32 checksum = new CRC32();
    checksum.update(wrapper.payload);
    if (wrapper.checksum != checksum.getValue()) {
        throw new InvalidProtocolBufferNanoException("checksum does not match");
    }
    return wrapper.payload;
}
 
源代码21 项目: LB-Launcher   文件: LauncherBackupHelper.java
/** Wrap a proto in a CheckedMessage and compute the checksum. */
private byte[] writeCheckedBytes(MessageNano proto) {
    CheckedMessage wrapper = new CheckedMessage();
    wrapper.payload = MessageNano.toByteArray(proto);
    CRC32 checksum = new CRC32();
    checksum.update(wrapper.payload);
    wrapper.checksum = checksum.getValue();
    return MessageNano.toByteArray(wrapper);
}
 
源代码22 项目: grpc-nebula-java   文件: NanoProtoInputStream.java
NanoProtoInputStream(MessageNano message) {
  this.message = message;
}
 
源代码23 项目: netty-4.1.22   文件: ProtobufDecoderNano.java
/**
 * Creates a new instance.
 */
public ProtobufDecoderNano(Class<? extends MessageNano> clazz) {
    this.clazz = ObjectUtil.checkNotNull(clazz, "You must provide a Class");
}
 
源代码24 项目: android-migrate-to-jobs   文件: CatalogItemStore.java
public byte[] toProtoBytes() {
    return MessageNano.toByteArray(mProto);
}
 
源代码25 项目: Trebuchet   文件: LauncherBackupHelper.java
private void writeRowToBackup(Key key, MessageNano proto, BackupDataOutput data)
        throws IOException {
    writeRowToBackup(keyToBackupKey(key), proto, data);
}
 
源代码26 项目: PainlessMusicPlayer   文件: ProtoUtils.java
@NonNull
public static byte[] toByteArray(@NonNull final MessageNano messageNano) throws IOException {
    final byte[] output = new byte[messageNano.getSerializedSize()];
    messageNano.writeTo(CodedOutputByteBufferNano.newInstance(output));
    return output;
}
 
源代码27 项目: TurboLauncher   文件: LauncherBackupHelper.java
/** Deserialize a Favorite from persistence, after verifying checksum wrapper. */
private ContentValues unpackFavorite(byte[] buffer, int offset, int dataSize)
        throws InvalidProtocolBufferNanoException {
    Favorite favorite = new Favorite();
    MessageNano.mergeFrom(favorite, readCheckedBytes(buffer, offset, dataSize));
    if (VERBOSE) Log.v(TAG, "unpacked favorite " + favorite.itemType + ", " +
            (TextUtils.isEmpty(favorite.title) ? favorite.id : favorite.title));
    ContentValues values = new ContentValues();
    values.put(Favorites._ID, favorite.id);
    values.put(Favorites.SCREEN, favorite.screen);
    values.put(Favorites.CONTAINER, favorite.container);
    values.put(Favorites.CELLX, favorite.cellX);
    values.put(Favorites.CELLY, favorite.cellY);
    values.put(Favorites.SPANX, favorite.spanX);
    values.put(Favorites.SPANY, favorite.spanY);
    values.put(Favorites.ICON_TYPE, favorite.iconType);
    if (favorite.iconType == Favorites.ICON_TYPE_RESOURCE) {
        values.put(Favorites.ICON_PACKAGE, favorite.iconPackage);
        values.put(Favorites.ICON_RESOURCE, favorite.iconResource);
    }
    if (favorite.iconType == Favorites.ICON_TYPE_BITMAP) {
        values.put(Favorites.ICON, favorite.icon);
    }
    if (!TextUtils.isEmpty(favorite.title)) {
        values.put(Favorites.TITLE, favorite.title);
    } else {
        values.put(Favorites.TITLE, "");
    }
    if (!TextUtils.isEmpty(favorite.intent)) {
        values.put(Favorites.INTENT, favorite.intent);
    }
    values.put(Favorites.ITEM_TYPE, favorite.itemType);
    if (favorite.itemType == Favorites.ITEM_TYPE_APPWIDGET) {
        if (!TextUtils.isEmpty(favorite.appWidgetProvider)) {
            values.put(Favorites.APPWIDGET_PROVIDER, favorite.appWidgetProvider);
        }
        values.put(Favorites.APPWIDGET_ID, favorite.appWidgetId);
    }

    // Let LauncherModel know we've been here.
    values.put(LauncherSettings.Favorites.RESTORED, 1);

    return values;
}
 
源代码28 项目: 365browser   文件: Client.java
public byte[] toByteArray() {
  return MessageNano.toByteArray(toMessageNano());
}
 
源代码29 项目: 365browser   文件: GeolocationHeader.java
/**
 * Encodes the given proto location descriptor into a BASE64 URL_SAFE encoding.
 */
private static String encodeLocationDescriptor(
        PartnerLocationDescriptor.LocationDescriptor locationDescriptor) {
    return Base64.encodeToString(
            MessageNano.toByteArray(locationDescriptor), Base64.NO_WRAP | Base64.URL_SAFE);
}
 
源代码30 项目: 365browser   文件: ParcelableMessageNanoCreator.java
static <T extends MessageNano> void writeToParcel(Class<T> clazz, MessageNano message,
        Parcel out) {
    out.writeString(clazz.getName());
    out.writeByteArray(MessageNano.toByteArray(message));
}
 
 类所在包
 同包方法