Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1458)

Unified Diff: third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/ProtoWrapperConverter.java

Issue 1162033004: Pull cacheinvalidations code directory into chromium repo. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/ProtoWrapperConverter.java
diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/ProtoWrapperConverter.java b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/ProtoWrapperConverter.java
new file mode 100644
index 0000000000000000000000000000000000000000..79f5f18ce3a9ae87680b0bfd88f3ed241275b8a2
--- /dev/null
+++ b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/ProtoWrapperConverter.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright 2011 Google Inc.
+ *
+ * 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.
+ */
+
+package com.google.ipc.invalidation.ticl;
+
+import com.google.ipc.invalidation.external.client.types.Invalidation;
+import com.google.ipc.invalidation.external.client.types.ObjectId;
+import com.google.ipc.invalidation.ticl.proto.ClientProtocol.InvalidationP;
+import com.google.ipc.invalidation.ticl.proto.ClientProtocol.ObjectIdP;
+import com.google.ipc.invalidation.ticl.proto.CommonProtos;
+import com.google.ipc.invalidation.util.Bytes;
+import com.google.ipc.invalidation.util.Preconditions;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+/**
+ * Utilities to convert between {@link com.google.ipc.invalidation.util.ProtoWrapper ProtoWrapper}
+ * wrappers and externally-exposed types in the Ticl.
+ */
+public class ProtoWrapperConverter {
+
+ /**
+ * Converts an object id protocol buffer {@code objectId} to the
+ * corresponding external type and returns it.
+ */
+ public static ObjectId convertFromObjectIdProto(ObjectIdP objectIdProto) {
+ Preconditions.checkNotNull(objectIdProto);
+ return ObjectId.newInstance(objectIdProto.getSource(), objectIdProto.getName().getByteArray());
+ }
+
+ /**
+ * Converts an object id {@code objectId} to the corresponding protocol buffer
+ * and returns it.
+ */
+ public static ObjectIdP convertToObjectIdProto(ObjectId objectId) {
+ Preconditions.checkNotNull(objectId);
+ return ObjectIdP.create(objectId.getSource(), new Bytes(objectId.getName()));
+ }
+
+ /**
+ * Returns a list of {@link ObjectIdP} by converting each element of {@code objectIds} to
+ * an {@code ObjectIdP}.
+ */
+ public static Collection<ObjectIdP> convertToObjectIdProtoCollection(
+ Iterable<ObjectId> objectIds) {
+ int expectedSize = (objectIds instanceof Collection) ? ((Collection<?>) objectIds).size() : 1;
+ ArrayList<ObjectIdP> objectIdPs = new ArrayList<ObjectIdP>(expectedSize);
+ for (ObjectId objectId : objectIds) {
+ objectIdPs.add(convertToObjectIdProto(objectId));
+ }
+ return objectIdPs;
+ }
+
+ /**
+ * Returns a list of {@link ObjectId} by converting each element of {@code objectIdProtos} to
+ * an {@code ObjectId}.
+ */
+ public static Collection<ObjectId> convertFromObjectIdProtoCollection(
+ Collection<ObjectIdP> objectIdProtos) {
+ ArrayList<ObjectId> objectIds = new ArrayList<ObjectId>(objectIdProtos.size());
+ for (ObjectIdP objectIdProto : objectIdProtos) {
+ objectIds.add(convertFromObjectIdProto(objectIdProto));
+ }
+ return objectIds;
+ }
+
+ /**
+ * Converts an invalidation protocol buffer {@code invalidation} to the
+ * corresponding external object and returns it
+ */
+ public static Invalidation convertFromInvalidationProto(InvalidationP invalidation) {
+ Preconditions.checkNotNull(invalidation);
+ ObjectId objectId = convertFromObjectIdProto(invalidation.getObjectId());
+
+ // No bridge arrival time in invalidation.
+ return Invalidation.newInstance(objectId, invalidation.getVersion(),
+ invalidation.hasPayload() ? invalidation.getPayload().getByteArray() : null,
+ invalidation.getIsTrickleRestart());
+ }
+
+ /**
+ * Converts an invalidation {@code invalidation} to the corresponding protocol
+ * buffer and returns it.
+ */
+ public static InvalidationP convertToInvalidationProto(Invalidation invalidation) {
+ Preconditions.checkNotNull(invalidation);
+ ObjectIdP objectId = convertToObjectIdProto(invalidation.getObjectId());
+
+ // Invalidations clients do not know about trickle restarts. Every invalidation is allowed
+ // to suppress earlier invalidations and acks implicitly acknowledge all previous
+ // invalidations. Therefore the correct semanantics are provided by setting isTrickleRestart to
+ // true.
+ return CommonProtos.newInvalidationP(objectId, invalidation.getVersion(),
+ invalidation.getIsTrickleRestartForInternalUse(), invalidation.getPayload());
+ }
+
+ private ProtoWrapperConverter() { // To prevent instantiation.
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698