@Override
  public void toData(DataOutput out,
      SerializationContext context) throws IOException {
    super.toData(out, context);

    DataSerializer.writeString(version, out);
    out.writeInt(replyProcessorId);
    out.writeBoolean(isMcastEnabled);
    out.writeBoolean(isTcpDisabled);

    // Send a description of all of the DataSerializers and
    // Instantiators that have been registered
    SerializerAttributesHolder[] sahs = InternalDataSerializer.getSerializersForDistribution();
    out.writeInt(sahs.length);
    for (final SerializerAttributesHolder sah : sahs) {
      DataSerializer.writeNonPrimitiveClassName(sah.getClassName(), out);
      out.writeInt(sah.getId());
    }

    Object[] insts = InternalInstantiator.getInstantiatorsForSerialization();
    out.writeInt(insts.length);
    for (final Object inst : insts) {
      String instantiatorClassName, instantiatedClassName;
      int id;
      if (inst instanceof Instantiator) {
        instantiatorClassName = ((Instantiator) inst).getClass().getName();
        instantiatedClassName = ((Instantiator) inst).getInstantiatedClass().getName();
        id = ((Instantiator) inst).getId();
      } else {
        instantiatorClassName =
            ((InstantiatorAttributesHolder) inst).getInstantiatorClassName();
        instantiatedClassName =
            ((InstantiatorAttributesHolder) inst).getInstantiatedClassName();
        id = ((InstantiatorAttributesHolder) inst).getId();
      }
      DataSerializer.writeNonPrimitiveClassName(instantiatorClassName, out);
      DataSerializer.writeNonPrimitiveClassName(instantiatedClassName, out);
      out.writeInt(id);
    }
    context.getSerializer().writeObject(interfaces, out);
    out.writeInt(distributedSystemId);
    DataSerializer.writeString(redundancyZone, out);
    out.writeBoolean(enforceUniqueZone);

    StartupMessageData data = new StartupMessageData();
    data.writeHostedLocators(hostedLocatorsAll);
    data.writeIsSharedConfigurationEnabled(isSharedConfigurationEnabled);
    data.writeMcastPort(mcastPort);
    data.writeMcastHostAddress(mcastHostAddress);
    data.writeTo(out);
  }
Adds the distribution manager that is started up to the current DM's list of members.

This method is invoked on the receiver side
geode-core/src/main/java/org/apache/geode/distributed/internal/StartupMessage.java