46 lines
1.2 KiB
Go
46 lines
1.2 KiB
Go
package consensusproto
|
|
|
|
func WrapHeadUpdate(update *LogHeadUpdate, rootRecord *RawRecordWithId) *LogSyncMessage {
|
|
return &LogSyncMessage{
|
|
Content: &LogSyncContentValue{
|
|
Value: &LogSyncContentValue_HeadUpdate{HeadUpdate: update},
|
|
},
|
|
Id: rootRecord.Id,
|
|
Payload: rootRecord.Payload,
|
|
}
|
|
}
|
|
|
|
func WrapFullRequest(request *LogFullSyncRequest, rootRecord *RawRecordWithId) *LogSyncMessage {
|
|
return &LogSyncMessage{
|
|
Content: &LogSyncContentValue{
|
|
Value: &LogSyncContentValue_FullSyncRequest{FullSyncRequest: request},
|
|
},
|
|
Id: rootRecord.Id,
|
|
Payload: rootRecord.Payload,
|
|
}
|
|
}
|
|
|
|
func WrapFullResponse(response *LogFullSyncResponse, rootRecord *RawRecordWithId) *LogSyncMessage {
|
|
return &LogSyncMessage{
|
|
Content: &LogSyncContentValue{
|
|
Value: &LogSyncContentValue_FullSyncResponse{FullSyncResponse: response},
|
|
},
|
|
Id: rootRecord.Id,
|
|
Payload: rootRecord.Payload,
|
|
}
|
|
}
|
|
|
|
func GetHead(msg *LogSyncMessage) (head string) {
|
|
content := msg.GetContent()
|
|
switch {
|
|
case content.GetHeadUpdate() != nil:
|
|
return content.GetHeadUpdate().Head
|
|
case content.GetFullSyncRequest() != nil:
|
|
return content.GetFullSyncRequest().Head
|
|
case content.GetFullSyncResponse() != nil:
|
|
return content.GetFullSyncResponse().Head
|
|
default:
|
|
return ""
|
|
}
|
|
}
|