3.3.4.4.6.2 Acknowledging the Change Is Done
Once the change order is processed by the local replica member, the server MUST send CMD_REMOTE_CO_DONE to the upstream partner to indicate that the change order is processed.
The server MUST construct the CMD_REMOTE_CO_DONE packet as follows.
COMM_COMMAND: MUST be 0x250 (CMD_REMOTE_CO_DONE).
COMM_JOIN_GUID: MUST be P_IN.COMM_JOIN_GUID.
COMM_LAST_JOIN_TIME: MUST be P_IN.COMM_LAST_JOIN_TIME.
COMM_BLOCK_SIZE: MUST be 0.
COMM_FILE_SIZE: MUST be 0.
COMM_FILE_OFFSET: MUST be 0.
COMM_GVSN: MUST be the current member GVSN.
COMM_CO_GUID: MUST be CO_IN.ChangeOrderGuid.
COMM_CO_SEQUENCE_NUMBER: MUST be CO_IN.PartnerAckSeqNumber.
CO_OUT.Flags:
When the change order is dampened (see section 3.3.4.4.5).
Compressed staging file: MUST be a bitwise OR of the following flags:
CO_FLAG_SKIP_VV_UPDATE
CO_FLAG_COMPRESSED_STAGE
CO_FLAG_DIRECTED_CO
CO_FLAG_RETRY
CO_FLAG_CONTENT_CMD
CO_FLAG_VV_ACTIVATED
CO_FLAG_ABORT_CO
Uncompressed staging file: MUST be a bitwise OR of the following flags:
CO_FLAG_SKIP_VV_UPDATE
CO_FLAG_DIRECTED_CO
CO_FLAG_RETRY
CO_FLAG_CONTENT_CMD
CO_FLAG_VV_ACTIVATED
CO_FLAG_ABORT_CO
When the change order is not dampened but is the conflict loser.
Compressed staging file: MUST be a bitwise OR of the following flags:
CO_FLAG_COMPRESSED_STAGE
CO_FLAG_CONTENT_CMD
CO_FLAG_VV_ACTIVATED
CO_FLAG_ABORT_CO
Uncompressed staging file: MUST be a bitwise OR of the following flags:
CO_FLAG_CONTENT_CMD
CO_FLAG_VV_ACTIVATED
CO_FLAG_ABORT_CO
When the change order is neither dampened nor the conflict loser.
Copying file.
Compressed staging file: MUST be a bitwise OR of the following flags:
CO_FLAG_VVJOIN_TO_ORIG
CO_FLAG_COMPRESSED_STAGE
CO_FLAG_NEW_FILE
CO_FLAG_LOCATION_CMD
CO_FLAG_CONTENT_CMD
CO_FLAG_ACTIVATED
Uncompressed staging file: MUST be a bitwise OR of the following flags:
CO_FLAG_VVJOIN_TO_ORIG
CO_FLAG_NEW_FILE
CO_FLAG_LOCATION_CMD
CO_FLAG_CONTENT_CMD
CO_FLAG_ACTIVATED
Compressed staging file: MUST be a bitwise OR of the following flags:
CO_FLAG_COMPRESSED_STAGE
CO_FLAG_NEW_
FILE (if a new file)
CO_FLAG_LOCATION_CMD
CO_FLAG_CONTENT_CMD
CO_FLAG_ACTIVATED
Uncompressed staging file: MUST be a bitwise OR of the following flags:
CO_FLAG_NEW_FILE (if a new file)
CO_FLAG_LOCATION_CMD
CO_FLAG_CONTENT_CMD
CO_FLAG_ACTIVATED
When renaming a file or folder.
Normal Sync:
Compressed staging file: MUST be a bitwise OR of the following flags:
CO_FLAG_COMPRESSED_STAGE
CO_FLAG_CONTENT_CMD
CO_FLAG_ACTIVATED
Uncompressed staging file. MUST be a bitwise OR of the following flags:
CO_FLAG_LOCATION_CMD
CO_FLAG_ACTIVATED
When copying a folder.
Initial Sync:
Compressed staging file. MUST be a bitwise OR of the following flags:
CO_FLAG_VVJOIN_TO_ORIG
CO_FLAG_COMPRESSED_STAGE
CO_FLAG_NEW_FILE
CO_FLAG_LOCATION_CMD
CO_FLAG_ACTIVATED
Uncompressed staging file. MUST be a bitwise OR of the following flags:
CO_FLAG_VVJOIN_TO_ORIG
CO_FLAG_NEW_FILE
CO_FLAG_LOCATION_CMD
CO_FLAG_ACTIVATED
Normal Sync:
Compressed staging file: MUST be a bitwise OR of the following flags:
CO_FLAG_COMPRESSED_STAGE
CO_FLAG_NEW_FILE (if a new folder)
CO_FLAG_LOCATION_CMD
CO_FLAG_ACTIVATED
Uncompressed staging file: MUST be a bitwise OR of the following flags:
CO_FLAG_NEW_FILE (if a new folder)
CO_FLAG_LOCATION_CMD
CO_FLAG_ACTIVATED
When deleting a file or folder: MUST be 0xA. bitwise OR:
CO_FLAG_LOCATION_CMD
CO_FLAG_VV_ACTIVATED
CO_OUT.IFlags:
If change order is dampened: MUST be 0.
If change order is not dampened: MUST be 0x1 (CO_IFLAG_VVRETIRE_EXEC).
CO_OUT.State:
If change order is dampened: MUST be 8. (Waiting to retry the fetch of the staging file for the remote change order.)
If change order is not dampened but is the conflict loser: MUST be 0. (Change order is entered in the log.)
If change order is neither dampened nor the conflict loser: MUST be 0x16. (Database state update started).
CO_OUT.ContentCmd:
Initial Sync: MUST be 0.
Normal Sync: MUST be CO_IN.ContentCmd.
LocationCmd:
If change order is either dampened or the conflict loser:
If a file: MUST be 0xE.
If a folder: MUST be 0xF.
Otherwise: MUST be CO_IN.LocationCmd.
CO_OUT.FileOffset: MUST be 0.
See sections 4.2, 4.4.5, 4.5.1.1, 4.5.2.1, 4.5.3.1, 4.5.4.1, 4.5.5.1, and 4.5.6.1.