@Override
  public void toData(DataOutput out,
      SerializationContext context) throws IOException {
    super.toData(out, context);
    DataSerializer.writeObject(eventId, out);
    DataSerializer.writeObject(callbackArg, out);
    if (bridgeContext != null) {
      DataSerializer.writeObject(bridgeContext, out);
    }

    InternalDataSerializer.writeUnsignedVL(removeAllDataCount, out);

    if (removeAllDataCount > 0) {

      EntryVersionsList versionTags = new EntryVersionsList(removeAllDataCount);

      boolean hasTags = false;
      for (int i = 0; i < removeAllDataCount; i++) {
        if (!hasTags && removeAllData[i].versionTag != null) {
          hasTags = true;
        }
        VersionTag<?> tag = removeAllData[i].versionTag;
        versionTags.add(tag);
        removeAllData[i].versionTag = null;
        removeAllData[i].serializeTo(out, context);
        removeAllData[i].versionTag = tag;
      }

      out.writeBoolean(hasTags);
      if (hasTags) {
        InternalDataSerializer.invokeToData(versionTags, out);
      }
    }
  }
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