@Override
  public void fromData(DataInput in,
      DeserializationContext context) throws IOException, ClassNotFoundException {
    super.fromData(in, context);
    eventId = DataSerializer.readObject(in);
    callbackArg = DataSerializer.readObject(in);
    posDup = (flags & POS_DUP) != 0;
    if ((flags & HAS_BRIDGE_CONTEXT) != 0) {
      bridgeContext = DataSerializer.readObject(in);
    }
    removeAllDataCount = (int) InternalDataSerializer.readUnsignedVL(in);
    removeAllData = new RemoveAllEntryData[removeAllDataCount];
    if (removeAllDataCount > 0) {
      final KnownVersion version = StaticSerialization.getVersionForDataStreamOrNull(in);
      final ByteArrayDataInput bytesIn = new ByteArrayDataInput();
      for (int i = 0; i < removeAllDataCount; i++) {
        removeAllData[i] = new RemoveAllEntryData(in, eventId, i,
            context);
      }

      boolean hasTags = in.readBoolean();
      if (hasTags) {
        EntryVersionsList versionTags = EntryVersionsList.create(in);
        for (int i = 0; i < removeAllDataCount; i++) {
          removeAllData[i].versionTag = versionTags.get(i);
        }
      }
    }
  }
An additional object providing context for the operation, e.g., for BridgeServer notification
geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteRemoveAllMessage.java