Move treeheader to upper level in sync
This commit is contained in:
parent
88b0e8cd7e
commit
eed3c518cd
@ -283,15 +283,16 @@ func (a *aclTree) AddRawChanges(ctx context.Context, rawChanges ...*aclpb.RawCha
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if a.updateListener != nil {
|
if a.updateListener == nil {
|
||||||
switch mode {
|
return
|
||||||
case Append:
|
}
|
||||||
a.updateListener.Update(a)
|
switch mode {
|
||||||
case Rebuild:
|
case Append:
|
||||||
a.updateListener.Rebuild(a)
|
a.updateListener.Update(a)
|
||||||
default:
|
case Rebuild:
|
||||||
break
|
a.updateListener.Rebuild(a)
|
||||||
}
|
default:
|
||||||
|
break
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
@ -317,16 +318,7 @@ func (a *aclTree) AddRawChanges(ctx context.Context, rawChanges ...*aclpb.RawCha
|
|||||||
}
|
}
|
||||||
|
|
||||||
prevHeads := a.tree.Heads()
|
prevHeads := a.tree.Heads()
|
||||||
mode = a.tree.Add(changes...)
|
rebuild := func() (AddResult, error) {
|
||||||
switch mode {
|
|
||||||
case Nothing:
|
|
||||||
return AddResult{
|
|
||||||
OldHeads: prevHeads,
|
|
||||||
Heads: prevHeads,
|
|
||||||
Summary: AddResultSummaryNothing,
|
|
||||||
}, nil
|
|
||||||
|
|
||||||
case Rebuild:
|
|
||||||
err = a.rebuildFromStorage()
|
err = a.rebuildFromStorage()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return AddResult{}, err
|
return AddResult{}, err
|
||||||
@ -338,6 +330,26 @@ func (a *aclTree) AddRawChanges(ctx context.Context, rawChanges ...*aclpb.RawCha
|
|||||||
Added: getAddedChanges(),
|
Added: getAddedChanges(),
|
||||||
Summary: AddResultSummaryRebuild,
|
Summary: AddResultSummaryRebuild,
|
||||||
}, nil
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
mode = a.tree.Add(changes...)
|
||||||
|
switch mode {
|
||||||
|
case Nothing:
|
||||||
|
for _, ch := range changes {
|
||||||
|
// rebuilding if the snapshot is different from the root
|
||||||
|
if ch.SnapshotId != a.tree.RootId() {
|
||||||
|
return rebuild()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return AddResult{
|
||||||
|
OldHeads: prevHeads,
|
||||||
|
Heads: prevHeads,
|
||||||
|
Summary: AddResultSummaryNothing,
|
||||||
|
}, nil
|
||||||
|
|
||||||
|
case Rebuild:
|
||||||
|
return rebuild()
|
||||||
default:
|
default:
|
||||||
// just rebuilding the state from start without reloading everything from tree storage
|
// just rebuilding the state from start without reloading everything from tree storage
|
||||||
// as an optimization we could've started from current heads, but I didn't implement that
|
// as an optimization we could've started from current heads, but I didn't implement that
|
||||||
|
|||||||
@ -165,7 +165,9 @@ func (d *docTree) AddContent(ctx context.Context, aclTree ACLTree, content proto
|
|||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
// TODO: should this be called in a separate goroutine to prevent accidental cycles (tree->updater->tree)
|
// TODO: should this be called in a separate goroutine to prevent accidental cycles (tree->updater->tree)
|
||||||
d.updateListener.Update(d)
|
if d.updateListener != nil {
|
||||||
|
d.updateListener.Update(d)
|
||||||
|
}
|
||||||
}()
|
}()
|
||||||
state := aclTree.ACLState()
|
state := aclTree.ACLState()
|
||||||
change := &aclpb.Change{
|
change := &aclpb.Change{
|
||||||
@ -256,6 +258,10 @@ func (d *docTree) AddRawChanges(ctx context.Context, aclTree ACLTree, rawChanges
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if d.updateListener == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
switch mode {
|
switch mode {
|
||||||
case Append:
|
case Append:
|
||||||
d.updateListener.Update(d)
|
d.updateListener.Update(d)
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package message
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"fmt"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/app"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/app"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/app/logger"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/app/logger"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/service/net/pool"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/service/net/pool"
|
||||||
@ -85,7 +86,7 @@ func (s *service) SendMessageAsync(peerId string, msg *syncproto.Sync) (err erro
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
go s.sendAsync(peerId, msgType(msg), marshalled)
|
go s.sendAsync(peerId, msgInfo(msg), marshalled)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -108,15 +109,16 @@ func (s *service) sendAsync(peerId string, msgTypeStr string, marshalled []byte)
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func msgType(content *syncproto.Sync) string {
|
func msgInfo(content *syncproto.Sync) (syncMethod string) {
|
||||||
msg := content.GetMessage()
|
msg := content.GetMessage()
|
||||||
switch {
|
switch {
|
||||||
case msg.GetFullSyncRequest() != nil:
|
case msg.GetFullSyncRequest() != nil:
|
||||||
return "FullSyncRequest"
|
syncMethod = "FullSyncRequest"
|
||||||
case msg.GetFullSyncResponse() != nil:
|
case msg.GetFullSyncResponse() != nil:
|
||||||
return "FullSyncResponse"
|
syncMethod = "FullSyncResponse"
|
||||||
case msg.GetHeadUpdate() != nil:
|
case msg.GetHeadUpdate() != nil:
|
||||||
return "HeadUpdate"
|
syncMethod = "HeadUpdate"
|
||||||
}
|
}
|
||||||
return "UnknownMessage"
|
syncMethod = fmt.Sprintf("method: %s, treeType: %s", syncMethod, content.TreeHeader.Type.String())
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@ -64,26 +64,32 @@ func (r *requestHandler) HandleSyncMessage(ctx context.Context, senderId string,
|
|||||||
msg := content.GetMessage()
|
msg := content.GetMessage()
|
||||||
switch {
|
switch {
|
||||||
case msg.GetFullSyncRequest() != nil:
|
case msg.GetFullSyncRequest() != nil:
|
||||||
return r.HandleFullSyncRequest(ctx, senderId, msg.GetFullSyncRequest())
|
return r.HandleFullSyncRequest(ctx, senderId, msg.GetFullSyncRequest(), content.GetTreeHeader(), content.GetTreeId())
|
||||||
case msg.GetFullSyncResponse() != nil:
|
case msg.GetFullSyncResponse() != nil:
|
||||||
return r.HandleFullSyncResponse(ctx, senderId, msg.GetFullSyncResponse())
|
return r.HandleFullSyncResponse(ctx, senderId, msg.GetFullSyncResponse(), content.GetTreeHeader(), content.GetTreeId())
|
||||||
case msg.GetHeadUpdate() != nil:
|
case msg.GetHeadUpdate() != nil:
|
||||||
return r.HandleHeadUpdate(ctx, senderId, msg.GetHeadUpdate())
|
return r.HandleHeadUpdate(ctx, senderId, msg.GetHeadUpdate(), content.GetTreeHeader(), content.GetTreeId())
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *requestHandler) HandleHeadUpdate(ctx context.Context, senderId string, update *syncproto.SyncHeadUpdate) (err error) {
|
func (r *requestHandler) HandleHeadUpdate(
|
||||||
|
ctx context.Context,
|
||||||
|
senderId string,
|
||||||
|
update *syncproto.SyncHeadUpdate,
|
||||||
|
header *treepb.TreeHeader,
|
||||||
|
treeId string) (err error) {
|
||||||
|
|
||||||
var (
|
var (
|
||||||
fullRequest *syncproto.SyncFullRequest
|
fullRequest *syncproto.SyncFullRequest
|
||||||
snapshotPath []string
|
snapshotPath []string
|
||||||
result tree.AddResult
|
result tree.AddResult
|
||||||
)
|
)
|
||||||
log.With(zap.String("peerId", senderId), zap.String("treeId", update.TreeId)).
|
log.With(zap.String("peerId", senderId), zap.String("treeId", treeId)).
|
||||||
Debug("processing head update")
|
Debug("processing head update")
|
||||||
|
|
||||||
updateACLTree := func() {
|
updateACLTree := func() {
|
||||||
err = r.treeCache.Do(ctx, update.TreeId, func(obj interface{}) error {
|
err = r.treeCache.Do(ctx, treeId, func(obj interface{}) error {
|
||||||
t := obj.(tree.ACLTree)
|
t := obj.(tree.ACLTree)
|
||||||
t.Lock()
|
t.Lock()
|
||||||
defer t.Unlock()
|
defer t.Unlock()
|
||||||
@ -97,7 +103,7 @@ func (r *requestHandler) HandleHeadUpdate(ctx context.Context, senderId string,
|
|||||||
shouldFullSync := !slice.UnsortedEquals(update.Heads, t.Heads())
|
shouldFullSync := !slice.UnsortedEquals(update.Heads, t.Heads())
|
||||||
snapshotPath = t.SnapshotPath()
|
snapshotPath = t.SnapshotPath()
|
||||||
if shouldFullSync {
|
if shouldFullSync {
|
||||||
fullRequest, err = r.prepareFullSyncRequest(update.TreeId, update.TreeHeader, update.SnapshotPath, t)
|
fullRequest, err = r.prepareFullSyncRequest(treeId, header, update.SnapshotPath, t)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -107,12 +113,12 @@ func (r *requestHandler) HandleHeadUpdate(ctx context.Context, senderId string,
|
|||||||
}
|
}
|
||||||
|
|
||||||
updateDocTree := func() {
|
updateDocTree := func() {
|
||||||
err = r.treeCache.Do(ctx, update.TreeId, func(obj interface{}) error {
|
err = r.treeCache.Do(ctx, treeId, func(obj interface{}) error {
|
||||||
docTree := obj.(tree.DocTree)
|
docTree := obj.(tree.DocTree)
|
||||||
docTree.Lock()
|
docTree.Lock()
|
||||||
defer docTree.Unlock()
|
defer docTree.Unlock()
|
||||||
|
|
||||||
return r.treeCache.Do(ctx, update.TreeId, func(obj interface{}) error {
|
return r.treeCache.Do(ctx, treeId, func(obj interface{}) error {
|
||||||
aclTree := obj.(tree.ACLTree)
|
aclTree := obj.(tree.ACLTree)
|
||||||
aclTree.RLock()
|
aclTree.RLock()
|
||||||
defer aclTree.RUnlock()
|
defer aclTree.RUnlock()
|
||||||
@ -126,7 +132,7 @@ func (r *requestHandler) HandleHeadUpdate(ctx context.Context, senderId string,
|
|||||||
shouldFullSync := !slice.UnsortedEquals(update.Heads, docTree.Heads())
|
shouldFullSync := !slice.UnsortedEquals(update.Heads, docTree.Heads())
|
||||||
snapshotPath = docTree.SnapshotPath()
|
snapshotPath = docTree.SnapshotPath()
|
||||||
if shouldFullSync {
|
if shouldFullSync {
|
||||||
fullRequest, err = r.prepareFullSyncRequest(update.TreeId, update.TreeHeader, update.SnapshotPath, docTree)
|
fullRequest, err = r.prepareFullSyncRequest(treeId, header, update.SnapshotPath, docTree)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -136,7 +142,7 @@ func (r *requestHandler) HandleHeadUpdate(ctx context.Context, senderId string,
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
switch update.TreeHeader.Type {
|
switch header.Type {
|
||||||
case treepb.TreeHeader_ACLTree:
|
case treepb.TreeHeader_ACLTree:
|
||||||
updateACLTree()
|
updateACLTree()
|
||||||
case treepb.TreeHeader_DocTree:
|
case treepb.TreeHeader_DocTree:
|
||||||
@ -148,14 +154,11 @@ func (r *requestHandler) HandleHeadUpdate(ctx context.Context, senderId string,
|
|||||||
// if there are no such tree
|
// if there are no such tree
|
||||||
if err == treestorage.ErrUnknownTreeId {
|
if err == treestorage.ErrUnknownTreeId {
|
||||||
// TODO: maybe we can optimize this by sending the header and stuff right away, so when the tree is created we are able to add it on first request
|
// TODO: maybe we can optimize this by sending the header and stuff right away, so when the tree is created we are able to add it on first request
|
||||||
fullRequest = &syncproto.SyncFullRequest{
|
fullRequest = &syncproto.SyncFullRequest{}
|
||||||
TreeId: update.TreeId,
|
|
||||||
TreeHeader: update.TreeHeader,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// if we have incompatible heads, or we haven't seen the tree at all
|
// if we have incompatible heads, or we haven't seen the tree at all
|
||||||
if fullRequest != nil {
|
if fullRequest != nil {
|
||||||
return r.messageService.SendMessageAsync(senderId, syncproto.WrapFullRequest(fullRequest))
|
return r.messageService.SendMessageAsync(senderId, syncproto.WrapFullRequest(fullRequest, header, treeId))
|
||||||
}
|
}
|
||||||
// if error or nothing has changed
|
// if error or nothing has changed
|
||||||
if err != nil || len(result.Added) == 0 {
|
if err != nil || len(result.Added) == 0 {
|
||||||
@ -166,23 +169,27 @@ func (r *requestHandler) HandleHeadUpdate(ctx context.Context, senderId string,
|
|||||||
Heads: result.Heads,
|
Heads: result.Heads,
|
||||||
Changes: result.Added,
|
Changes: result.Added,
|
||||||
SnapshotPath: snapshotPath,
|
SnapshotPath: snapshotPath,
|
||||||
TreeId: update.TreeId,
|
|
||||||
TreeHeader: update.TreeHeader,
|
|
||||||
}
|
}
|
||||||
return r.messageService.SendToSpaceAsync("", syncproto.WrapHeadUpdate(newUpdate))
|
return r.messageService.SendToSpaceAsync("", syncproto.WrapHeadUpdate(newUpdate, header, treeId))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *requestHandler) HandleFullSyncRequest(ctx context.Context, senderId string, request *syncproto.SyncFullRequest) (err error) {
|
func (r *requestHandler) HandleFullSyncRequest(
|
||||||
|
ctx context.Context,
|
||||||
|
senderId string,
|
||||||
|
request *syncproto.SyncFullRequest,
|
||||||
|
header *treepb.TreeHeader,
|
||||||
|
treeId string) (err error) {
|
||||||
|
|
||||||
var (
|
var (
|
||||||
fullResponse *syncproto.SyncFullResponse
|
fullResponse *syncproto.SyncFullResponse
|
||||||
snapshotPath []string
|
snapshotPath []string
|
||||||
result tree.AddResult
|
result tree.AddResult
|
||||||
)
|
)
|
||||||
log.With(zap.String("peerId", senderId), zap.String("treeId", request.TreeId)).
|
log.With(zap.String("peerId", senderId), zap.String("treeId", treeId)).
|
||||||
Debug("processing full sync request")
|
Debug("processing full sync request")
|
||||||
|
|
||||||
requestACLTree := func() {
|
requestACLTree := func() {
|
||||||
err = r.treeCache.Do(ctx, request.TreeId, func(obj interface{}) error {
|
err = r.treeCache.Do(ctx, treeId, func(obj interface{}) error {
|
||||||
t := obj.(tree.ACLTree)
|
t := obj.(tree.ACLTree)
|
||||||
t.Lock()
|
t.Lock()
|
||||||
defer t.Unlock()
|
defer t.Unlock()
|
||||||
@ -196,7 +203,7 @@ func (r *requestHandler) HandleFullSyncRequest(ctx context.Context, senderId str
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
snapshotPath = t.SnapshotPath()
|
snapshotPath = t.SnapshotPath()
|
||||||
fullResponse, err = r.prepareFullSyncResponse(request.TreeId, request.SnapshotPath, request.Changes, t)
|
fullResponse, err = r.prepareFullSyncResponse(treeId, request.SnapshotPath, request.Changes, t)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -205,12 +212,12 @@ func (r *requestHandler) HandleFullSyncRequest(ctx context.Context, senderId str
|
|||||||
}
|
}
|
||||||
|
|
||||||
requestDocTree := func() {
|
requestDocTree := func() {
|
||||||
err = r.treeCache.Do(ctx, request.TreeId, func(obj interface{}) error {
|
err = r.treeCache.Do(ctx, treeId, func(obj interface{}) error {
|
||||||
docTree := obj.(tree.DocTree)
|
docTree := obj.(tree.DocTree)
|
||||||
docTree.Lock()
|
docTree.Lock()
|
||||||
defer docTree.Unlock()
|
defer docTree.Unlock()
|
||||||
|
|
||||||
return r.treeCache.Do(ctx, request.TreeId, func(obj interface{}) error {
|
return r.treeCache.Do(ctx, treeId, func(obj interface{}) error {
|
||||||
aclTree := obj.(tree.ACLTree)
|
aclTree := obj.(tree.ACLTree)
|
||||||
aclTree.RLock()
|
aclTree.RLock()
|
||||||
defer aclTree.RUnlock()
|
defer aclTree.RUnlock()
|
||||||
@ -223,7 +230,7 @@ func (r *requestHandler) HandleFullSyncRequest(ctx context.Context, senderId str
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
snapshotPath = docTree.SnapshotPath()
|
snapshotPath = docTree.SnapshotPath()
|
||||||
fullResponse, err = r.prepareFullSyncResponse(request.TreeId, request.SnapshotPath, request.Changes, docTree)
|
fullResponse, err = r.prepareFullSyncResponse(treeId, request.SnapshotPath, request.Changes, docTree)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -232,7 +239,7 @@ func (r *requestHandler) HandleFullSyncRequest(ctx context.Context, senderId str
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
switch request.TreeHeader.Type {
|
switch header.Type {
|
||||||
case treepb.TreeHeader_ACLTree:
|
case treepb.TreeHeader_ACLTree:
|
||||||
requestACLTree()
|
requestACLTree()
|
||||||
case treepb.TreeHeader_DocTree:
|
case treepb.TreeHeader_DocTree:
|
||||||
@ -244,7 +251,7 @@ func (r *requestHandler) HandleFullSyncRequest(ctx context.Context, senderId str
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
err = r.messageService.SendMessageAsync(senderId, syncproto.WrapFullResponse(fullResponse))
|
err = r.messageService.SendMessageAsync(senderId, syncproto.WrapFullResponse(fullResponse, header, treeId))
|
||||||
// if error or nothing has changed
|
// if error or nothing has changed
|
||||||
if err != nil || len(result.Added) == 0 {
|
if err != nil || len(result.Added) == 0 {
|
||||||
return err
|
return err
|
||||||
@ -255,22 +262,26 @@ func (r *requestHandler) HandleFullSyncRequest(ctx context.Context, senderId str
|
|||||||
Heads: result.Heads,
|
Heads: result.Heads,
|
||||||
Changes: result.Added,
|
Changes: result.Added,
|
||||||
SnapshotPath: snapshotPath,
|
SnapshotPath: snapshotPath,
|
||||||
TreeId: request.TreeId,
|
|
||||||
TreeHeader: request.TreeHeader,
|
|
||||||
}
|
}
|
||||||
return r.messageService.SendToSpaceAsync("", syncproto.WrapHeadUpdate(newUpdate))
|
return r.messageService.SendToSpaceAsync("", syncproto.WrapHeadUpdate(newUpdate, header, treeId))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *requestHandler) HandleFullSyncResponse(ctx context.Context, senderId string, response *syncproto.SyncFullResponse) (err error) {
|
func (r *requestHandler) HandleFullSyncResponse(
|
||||||
|
ctx context.Context,
|
||||||
|
senderId string,
|
||||||
|
response *syncproto.SyncFullResponse,
|
||||||
|
header *treepb.TreeHeader,
|
||||||
|
treeId string) (err error) {
|
||||||
|
|
||||||
var (
|
var (
|
||||||
snapshotPath []string
|
snapshotPath []string
|
||||||
result tree.AddResult
|
result tree.AddResult
|
||||||
)
|
)
|
||||||
log.With(zap.String("peerId", senderId), zap.String("treeId", response.TreeId)).
|
log.With(zap.String("peerId", senderId), zap.String("treeId", treeId)).
|
||||||
Debug("processing full sync response")
|
Debug("processing full sync response")
|
||||||
|
|
||||||
responseACLTree := func() {
|
responseACLTree := func() {
|
||||||
err = r.treeCache.Do(ctx, response.TreeId, func(obj interface{}) error {
|
err = r.treeCache.Do(ctx, treeId, func(obj interface{}) error {
|
||||||
t := obj.(tree.ACLTree)
|
t := obj.(tree.ACLTree)
|
||||||
t.Lock()
|
t.Lock()
|
||||||
defer t.Unlock()
|
defer t.Unlock()
|
||||||
@ -285,12 +296,12 @@ func (r *requestHandler) HandleFullSyncResponse(ctx context.Context, senderId st
|
|||||||
}
|
}
|
||||||
|
|
||||||
responseDocTree := func() {
|
responseDocTree := func() {
|
||||||
err = r.treeCache.Do(ctx, response.TreeId, func(obj interface{}) error {
|
err = r.treeCache.Do(ctx, treeId, func(obj interface{}) error {
|
||||||
docTree := obj.(tree.DocTree)
|
docTree := obj.(tree.DocTree)
|
||||||
docTree.Lock()
|
docTree.Lock()
|
||||||
defer docTree.Unlock()
|
defer docTree.Unlock()
|
||||||
|
|
||||||
return r.treeCache.Do(ctx, response.TreeId, func(obj interface{}) error {
|
return r.treeCache.Do(ctx, treeId, func(obj interface{}) error {
|
||||||
aclTree := obj.(tree.ACLTree)
|
aclTree := obj.(tree.ACLTree)
|
||||||
aclTree.RLock()
|
aclTree.RLock()
|
||||||
defer aclTree.RUnlock()
|
defer aclTree.RUnlock()
|
||||||
@ -305,7 +316,7 @@ func (r *requestHandler) HandleFullSyncResponse(ctx context.Context, senderId st
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
switch response.TreeHeader.Type {
|
switch header.Type {
|
||||||
case treepb.TreeHeader_ACLTree:
|
case treepb.TreeHeader_ACLTree:
|
||||||
responseACLTree()
|
responseACLTree()
|
||||||
case treepb.TreeHeader_DocTree:
|
case treepb.TreeHeader_DocTree:
|
||||||
@ -320,7 +331,7 @@ func (r *requestHandler) HandleFullSyncResponse(ctx context.Context, senderId st
|
|||||||
}
|
}
|
||||||
// if we have a new tree
|
// if we have a new tree
|
||||||
if err == treestorage.ErrUnknownTreeId {
|
if err == treestorage.ErrUnknownTreeId {
|
||||||
err = r.createTree(ctx, response)
|
err = r.createTree(ctx, response, header, treeId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -335,9 +346,8 @@ func (r *requestHandler) HandleFullSyncResponse(ctx context.Context, senderId st
|
|||||||
Heads: result.Heads,
|
Heads: result.Heads,
|
||||||
Changes: result.Added,
|
Changes: result.Added,
|
||||||
SnapshotPath: snapshotPath,
|
SnapshotPath: snapshotPath,
|
||||||
TreeId: response.TreeId,
|
|
||||||
}
|
}
|
||||||
return r.messageService.SendToSpaceAsync("", syncproto.WrapHeadUpdate(newUpdate))
|
return r.messageService.SendToSpaceAsync("", syncproto.WrapHeadUpdate(newUpdate, header, treeId))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *requestHandler) prepareFullSyncRequest(treeId string, header *treepb.TreeHeader, theirPath []string, t tree.CommonTree) (*syncproto.SyncFullRequest, error) {
|
func (r *requestHandler) prepareFullSyncRequest(treeId string, header *treepb.TreeHeader, theirPath []string, t tree.CommonTree) (*syncproto.SyncFullRequest, error) {
|
||||||
@ -348,9 +358,7 @@ func (r *requestHandler) prepareFullSyncRequest(treeId string, header *treepb.Tr
|
|||||||
return &syncproto.SyncFullRequest{
|
return &syncproto.SyncFullRequest{
|
||||||
Heads: t.Heads(),
|
Heads: t.Heads(),
|
||||||
Changes: ourChanges,
|
Changes: ourChanges,
|
||||||
TreeId: treeId,
|
|
||||||
SnapshotPath: t.SnapshotPath(),
|
SnapshotPath: t.SnapshotPath(),
|
||||||
TreeHeader: header,
|
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -382,17 +390,20 @@ func (r *requestHandler) prepareFullSyncResponse(
|
|||||||
return &syncproto.SyncFullResponse{
|
return &syncproto.SyncFullResponse{
|
||||||
Heads: t.Heads(),
|
Heads: t.Heads(),
|
||||||
Changes: final,
|
Changes: final,
|
||||||
TreeId: treeId,
|
|
||||||
SnapshotPath: t.SnapshotPath(),
|
SnapshotPath: t.SnapshotPath(),
|
||||||
TreeHeader: t.Header(),
|
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *requestHandler) createTree(ctx context.Context, response *syncproto.SyncFullResponse) error {
|
func (r *requestHandler) createTree(
|
||||||
|
ctx context.Context,
|
||||||
|
response *syncproto.SyncFullResponse,
|
||||||
|
header *treepb.TreeHeader,
|
||||||
|
treeId string) error {
|
||||||
|
|
||||||
return r.treeCache.Add(
|
return r.treeCache.Add(
|
||||||
ctx,
|
ctx,
|
||||||
response.TreeId,
|
treeId,
|
||||||
response.TreeHeader,
|
header,
|
||||||
response.Changes,
|
response.Changes,
|
||||||
func(obj interface{}) error {
|
func(obj interface{}) error {
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@ -6,7 +6,6 @@ import (
|
|||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/app"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/app"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/app/logger"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/app/logger"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/aclchanges/aclpb"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/aclchanges/aclpb"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/acltree"
|
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/tree"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/tree"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/treestorage/treepb"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/treestorage/treepb"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/ocache"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/ocache"
|
||||||
@ -19,7 +18,6 @@ const CName = "treecache"
|
|||||||
|
|
||||||
// TODO: add context
|
// TODO: add context
|
||||||
type TreeFunc = func(tree interface{}) error
|
type TreeFunc = func(tree interface{}) error
|
||||||
type ChangeBuildFunc = func(builder acltree.ChangeBuilder) error
|
|
||||||
|
|
||||||
var log = logger.NewNamed("treecache")
|
var log = logger.NewNamed("treecache")
|
||||||
|
|
||||||
|
|||||||
@ -1,19 +1,33 @@
|
|||||||
package syncproto
|
package syncproto
|
||||||
|
|
||||||
func WrapHeadUpdate(update *SyncHeadUpdate) *Sync {
|
import "github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/treestorage/treepb"
|
||||||
return &Sync{Message: &SyncContentValue{
|
|
||||||
Value: &SyncContentValueValueOfHeadUpdate{HeadUpdate: update},
|
func WrapHeadUpdate(update *SyncHeadUpdate, header *treepb.TreeHeader, treeId string) *Sync {
|
||||||
}}
|
return &Sync{
|
||||||
|
Message: &SyncContentValue{
|
||||||
|
Value: &SyncContentValueValueOfHeadUpdate{HeadUpdate: update},
|
||||||
|
},
|
||||||
|
TreeHeader: header,
|
||||||
|
TreeId: treeId,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func WrapFullRequest(request *SyncFullRequest) *Sync {
|
func WrapFullRequest(request *SyncFullRequest, header *treepb.TreeHeader, treeId string) *Sync {
|
||||||
return &Sync{Message: &SyncContentValue{
|
return &Sync{
|
||||||
Value: &SyncContentValueValueOfFullSyncRequest{FullSyncRequest: request},
|
Message: &SyncContentValue{
|
||||||
}}
|
Value: &SyncContentValueValueOfFullSyncRequest{FullSyncRequest: request},
|
||||||
|
},
|
||||||
|
TreeHeader: header,
|
||||||
|
TreeId: treeId,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func WrapFullResponse(response *SyncFullResponse) *Sync {
|
func WrapFullResponse(response *SyncFullResponse, header *treepb.TreeHeader, treeId string) *Sync {
|
||||||
return &Sync{Message: &SyncContentValue{
|
return &Sync{
|
||||||
Value: &SyncContentValueValueOfFullSyncResponse{FullSyncResponse: response},
|
Message: &SyncContentValue{
|
||||||
}}
|
Value: &SyncContentValueValueOfFullSyncResponse{FullSyncResponse: response},
|
||||||
|
},
|
||||||
|
TreeHeader: header,
|
||||||
|
TreeId: treeId,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -64,6 +64,8 @@ message Subscription {
|
|||||||
message Sync {
|
message Sync {
|
||||||
string spaceId = 1;
|
string spaceId = 1;
|
||||||
ContentValue message = 2;
|
ContentValue message = 2;
|
||||||
|
tree.TreeHeader treeHeader = 3;
|
||||||
|
string treeId = 4;
|
||||||
|
|
||||||
message ContentValue {
|
message ContentValue {
|
||||||
oneof value {
|
oneof value {
|
||||||
@ -76,9 +78,7 @@ message Sync {
|
|||||||
message HeadUpdate {
|
message HeadUpdate {
|
||||||
repeated string heads = 1;
|
repeated string heads = 1;
|
||||||
repeated acl.RawChange changes = 2;
|
repeated acl.RawChange changes = 2;
|
||||||
string treeId = 3;
|
repeated string snapshotPath = 3;
|
||||||
repeated string snapshotPath = 4;
|
|
||||||
tree.TreeHeader treeHeader = 5;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
message Full {
|
message Full {
|
||||||
@ -86,17 +86,13 @@ message Sync {
|
|||||||
message Request {
|
message Request {
|
||||||
repeated string heads = 1;
|
repeated string heads = 1;
|
||||||
repeated acl.RawChange changes = 2;
|
repeated acl.RawChange changes = 2;
|
||||||
string treeId = 3;
|
repeated string snapshotPath = 3;
|
||||||
repeated string snapshotPath = 4;
|
|
||||||
tree.TreeHeader treeHeader = 5;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
message Response {
|
message Response {
|
||||||
repeated string heads = 1;
|
repeated string heads = 1;
|
||||||
repeated acl.RawChange changes = 2;
|
repeated acl.RawChange changes = 2;
|
||||||
string treeId = 3;
|
repeated string snapshotPath = 3;
|
||||||
repeated string snapshotPath = 4;
|
|
||||||
tree.TreeHeader treeHeader = 5;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -590,8 +590,10 @@ func (m *SubscriptionUnsubscribeSpace) GetSpaceId() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type Sync struct {
|
type Sync struct {
|
||||||
SpaceId string `protobuf:"bytes,1,opt,name=spaceId,proto3" json:"spaceId,omitempty"`
|
SpaceId string `protobuf:"bytes,1,opt,name=spaceId,proto3" json:"spaceId,omitempty"`
|
||||||
Message *SyncContentValue `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
|
Message *SyncContentValue `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
|
||||||
|
TreeHeader *treepb.TreeHeader `protobuf:"bytes,3,opt,name=treeHeader,proto3" json:"treeHeader,omitempty"`
|
||||||
|
TreeId string `protobuf:"bytes,4,opt,name=treeId,proto3" json:"treeId,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Sync) Reset() { *m = Sync{} }
|
func (m *Sync) Reset() { *m = Sync{} }
|
||||||
@ -641,6 +643,20 @@ func (m *Sync) GetMessage() *SyncContentValue {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *Sync) GetTreeHeader() *treepb.TreeHeader {
|
||||||
|
if m != nil {
|
||||||
|
return m.TreeHeader
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *Sync) GetTreeId() string {
|
||||||
|
if m != nil {
|
||||||
|
return m.TreeId
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
type SyncContentValue struct {
|
type SyncContentValue struct {
|
||||||
// Types that are valid to be assigned to Value:
|
// Types that are valid to be assigned to Value:
|
||||||
// *SyncContentValueValueOfHeadUpdate
|
// *SyncContentValueValueOfHeadUpdate
|
||||||
@ -742,9 +758,7 @@ func (*SyncContentValue) XXX_OneofWrappers() []interface{} {
|
|||||||
type SyncHeadUpdate struct {
|
type SyncHeadUpdate struct {
|
||||||
Heads []string `protobuf:"bytes,1,rep,name=heads,proto3" json:"heads,omitempty"`
|
Heads []string `protobuf:"bytes,1,rep,name=heads,proto3" json:"heads,omitempty"`
|
||||||
Changes []*aclpb.RawChange `protobuf:"bytes,2,rep,name=changes,proto3" json:"changes,omitempty"`
|
Changes []*aclpb.RawChange `protobuf:"bytes,2,rep,name=changes,proto3" json:"changes,omitempty"`
|
||||||
TreeId string `protobuf:"bytes,3,opt,name=treeId,proto3" json:"treeId,omitempty"`
|
SnapshotPath []string `protobuf:"bytes,3,rep,name=snapshotPath,proto3" json:"snapshotPath,omitempty"`
|
||||||
SnapshotPath []string `protobuf:"bytes,4,rep,name=snapshotPath,proto3" json:"snapshotPath,omitempty"`
|
|
||||||
TreeHeader *treepb.TreeHeader `protobuf:"bytes,5,opt,name=treeHeader,proto3" json:"treeHeader,omitempty"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *SyncHeadUpdate) Reset() { *m = SyncHeadUpdate{} }
|
func (m *SyncHeadUpdate) Reset() { *m = SyncHeadUpdate{} }
|
||||||
@ -794,13 +808,6 @@ func (m *SyncHeadUpdate) GetChanges() []*aclpb.RawChange {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *SyncHeadUpdate) GetTreeId() string {
|
|
||||||
if m != nil {
|
|
||||||
return m.TreeId
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *SyncHeadUpdate) GetSnapshotPath() []string {
|
func (m *SyncHeadUpdate) GetSnapshotPath() []string {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.SnapshotPath
|
return m.SnapshotPath
|
||||||
@ -808,13 +815,6 @@ func (m *SyncHeadUpdate) GetSnapshotPath() []string {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *SyncHeadUpdate) GetTreeHeader() *treepb.TreeHeader {
|
|
||||||
if m != nil {
|
|
||||||
return m.TreeHeader
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type SyncFull struct {
|
type SyncFull struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -855,9 +855,7 @@ var xxx_messageInfo_SyncFull proto.InternalMessageInfo
|
|||||||
type SyncFullRequest struct {
|
type SyncFullRequest struct {
|
||||||
Heads []string `protobuf:"bytes,1,rep,name=heads,proto3" json:"heads,omitempty"`
|
Heads []string `protobuf:"bytes,1,rep,name=heads,proto3" json:"heads,omitempty"`
|
||||||
Changes []*aclpb.RawChange `protobuf:"bytes,2,rep,name=changes,proto3" json:"changes,omitempty"`
|
Changes []*aclpb.RawChange `protobuf:"bytes,2,rep,name=changes,proto3" json:"changes,omitempty"`
|
||||||
TreeId string `protobuf:"bytes,3,opt,name=treeId,proto3" json:"treeId,omitempty"`
|
SnapshotPath []string `protobuf:"bytes,3,rep,name=snapshotPath,proto3" json:"snapshotPath,omitempty"`
|
||||||
SnapshotPath []string `protobuf:"bytes,4,rep,name=snapshotPath,proto3" json:"snapshotPath,omitempty"`
|
|
||||||
TreeHeader *treepb.TreeHeader `protobuf:"bytes,5,opt,name=treeHeader,proto3" json:"treeHeader,omitempty"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *SyncFullRequest) Reset() { *m = SyncFullRequest{} }
|
func (m *SyncFullRequest) Reset() { *m = SyncFullRequest{} }
|
||||||
@ -907,13 +905,6 @@ func (m *SyncFullRequest) GetChanges() []*aclpb.RawChange {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *SyncFullRequest) GetTreeId() string {
|
|
||||||
if m != nil {
|
|
||||||
return m.TreeId
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *SyncFullRequest) GetSnapshotPath() []string {
|
func (m *SyncFullRequest) GetSnapshotPath() []string {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.SnapshotPath
|
return m.SnapshotPath
|
||||||
@ -921,19 +912,10 @@ func (m *SyncFullRequest) GetSnapshotPath() []string {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *SyncFullRequest) GetTreeHeader() *treepb.TreeHeader {
|
|
||||||
if m != nil {
|
|
||||||
return m.TreeHeader
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type SyncFullResponse struct {
|
type SyncFullResponse struct {
|
||||||
Heads []string `protobuf:"bytes,1,rep,name=heads,proto3" json:"heads,omitempty"`
|
Heads []string `protobuf:"bytes,1,rep,name=heads,proto3" json:"heads,omitempty"`
|
||||||
Changes []*aclpb.RawChange `protobuf:"bytes,2,rep,name=changes,proto3" json:"changes,omitempty"`
|
Changes []*aclpb.RawChange `protobuf:"bytes,2,rep,name=changes,proto3" json:"changes,omitempty"`
|
||||||
TreeId string `protobuf:"bytes,3,opt,name=treeId,proto3" json:"treeId,omitempty"`
|
SnapshotPath []string `protobuf:"bytes,3,rep,name=snapshotPath,proto3" json:"snapshotPath,omitempty"`
|
||||||
SnapshotPath []string `protobuf:"bytes,4,rep,name=snapshotPath,proto3" json:"snapshotPath,omitempty"`
|
|
||||||
TreeHeader *treepb.TreeHeader `protobuf:"bytes,5,opt,name=treeHeader,proto3" json:"treeHeader,omitempty"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *SyncFullResponse) Reset() { *m = SyncFullResponse{} }
|
func (m *SyncFullResponse) Reset() { *m = SyncFullResponse{} }
|
||||||
@ -983,13 +965,6 @@ func (m *SyncFullResponse) GetChanges() []*aclpb.RawChange {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *SyncFullResponse) GetTreeId() string {
|
|
||||||
if m != nil {
|
|
||||||
return m.TreeId
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *SyncFullResponse) GetSnapshotPath() []string {
|
func (m *SyncFullResponse) GetSnapshotPath() []string {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.SnapshotPath
|
return m.SnapshotPath
|
||||||
@ -997,13 +972,6 @@ func (m *SyncFullResponse) GetSnapshotPath() []string {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *SyncFullResponse) GetTreeHeader() *treepb.TreeHeader {
|
|
||||||
if m != nil {
|
|
||||||
return m.TreeHeader
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
proto.RegisterEnum("anytype.MessageType", MessageType_name, MessageType_value)
|
proto.RegisterEnum("anytype.MessageType", MessageType_name, MessageType_value)
|
||||||
proto.RegisterEnum("anytype.SystemErrorCode", SystemErrorCode_name, SystemErrorCode_value)
|
proto.RegisterEnum("anytype.SystemErrorCode", SystemErrorCode_name, SystemErrorCode_value)
|
||||||
@ -1028,62 +996,61 @@ func init() {
|
|||||||
func init() { proto.RegisterFile("syncproto/proto/sync.proto", fileDescriptor_4b28dfdd48a89166) }
|
func init() { proto.RegisterFile("syncproto/proto/sync.proto", fileDescriptor_4b28dfdd48a89166) }
|
||||||
|
|
||||||
var fileDescriptor_4b28dfdd48a89166 = []byte{
|
var fileDescriptor_4b28dfdd48a89166 = []byte{
|
||||||
// 868 bytes of a gzipped FileDescriptorProto
|
// 858 bytes of a gzipped FileDescriptorProto
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x56, 0xd1, 0x8e, 0xda, 0x46,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xd1, 0x8e, 0xda, 0x46,
|
||||||
0x14, 0x65, 0xc0, 0x40, 0xb8, 0x20, 0xd6, 0x9d, 0x24, 0xad, 0xeb, 0x44, 0x08, 0xa1, 0xb4, 0x45,
|
0x14, 0xc5, 0x60, 0x20, 0x5c, 0x10, 0xeb, 0x4e, 0x92, 0xd6, 0x75, 0x22, 0x84, 0x50, 0xda, 0x5a,
|
||||||
0x69, 0xe4, 0x8d, 0x68, 0xa3, 0x4a, 0x7d, 0x4b, 0xb6, 0xbb, 0x02, 0x35, 0x05, 0x34, 0xc0, 0x56,
|
0x69, 0xe4, 0x8d, 0x68, 0xa3, 0x4a, 0x7d, 0x4b, 0xb6, 0xbb, 0x02, 0x35, 0x05, 0x34, 0xc0, 0x56,
|
||||||
0xea, 0x4b, 0x34, 0xd8, 0x13, 0x40, 0x78, 0xc7, 0xae, 0xc7, 0xb4, 0xe5, 0x17, 0xfa, 0x94, 0x6f,
|
0xea, 0x4b, 0x34, 0xd8, 0x13, 0x40, 0x78, 0xc7, 0xae, 0xc7, 0x6e, 0xcb, 0x2f, 0xf4, 0x29, 0xdf,
|
||||||
0xe8, 0x37, 0x54, 0x6a, 0xd5, 0x2f, 0xe8, 0x63, 0x1e, 0xfb, 0x58, 0xed, 0x4a, 0xfd, 0x88, 0xf6,
|
0xd0, 0x6f, 0xe8, 0x47, 0xf4, 0x31, 0x8f, 0x7d, 0xac, 0x76, 0xd5, 0x7e, 0x47, 0x35, 0x33, 0x36,
|
||||||
0xa5, 0x9a, 0x19, 0x1b, 0x7b, 0x9d, 0xcd, 0x07, 0xe4, 0x01, 0x98, 0x7b, 0xee, 0x39, 0xd7, 0xe7,
|
0xf6, 0x3a, 0xe4, 0x35, 0x0f, 0xc0, 0xdc, 0x33, 0xe7, 0xdc, 0x7b, 0x2e, 0xe3, 0xb9, 0x06, 0x8b,
|
||||||
0xce, 0x30, 0x17, 0xc0, 0x16, 0x7b, 0xee, 0x86, 0x51, 0x10, 0x07, 0xc7, 0xfa, 0x5d, 0xc6, 0x8e,
|
0xef, 0x99, 0x1b, 0x46, 0x41, 0x1c, 0x9c, 0xaa, 0x6f, 0x11, 0x3b, 0x72, 0x89, 0x9a, 0x84, 0xed,
|
||||||
0x5a, 0xe2, 0x3a, 0xe5, 0xfb, 0x78, 0x1f, 0x32, 0xfb, 0x71, 0xb8, 0x5d, 0x1d, 0x53, 0xd7, 0x97,
|
0xe3, 0x7d, 0x48, 0xad, 0xa7, 0xe1, 0x6e, 0x7d, 0x4a, 0x5c, 0x5f, 0x7c, 0xdc, 0x0d, 0x61, 0x6b,
|
||||||
0x2f, 0x77, 0x4d, 0xf9, 0x8a, 0x09, 0xb9, 0x0c, 0x97, 0x5a, 0x23, 0x72, 0xb8, 0x96, 0xda, 0x8f,
|
0xca, 0xc5, 0x32, 0x5c, 0x29, 0x0d, 0x2f, 0xe0, 0x4a, 0x6a, 0x3d, 0xc9, 0x14, 0x71, 0x44, 0x29,
|
||||||
0x52, 0x45, 0x1c, 0x31, 0x26, 0xe2, 0x20, 0xa2, 0x2b, 0xa6, 0xd6, 0x99, 0x46, 0x46, 0x9a, 0xdd,
|
0x8f, 0x83, 0x88, 0xac, 0xa9, 0x5c, 0xe7, 0x1a, 0x11, 0x29, 0xf6, 0xe0, 0x02, 0x9a, 0x3f, 0x50,
|
||||||
0x3b, 0x83, 0xfa, 0x37, 0x4c, 0x08, 0xba, 0x62, 0xf8, 0x13, 0xa8, 0xad, 0x19, 0xf5, 0x58, 0x64,
|
0xce, 0xc9, 0x9a, 0xa2, 0x2f, 0xa0, 0xb1, 0xa1, 0xc4, 0xa3, 0x91, 0xa9, 0xf5, 0x35, 0xbb, 0x3d,
|
||||||
0xa1, 0x2e, 0xea, 0x37, 0x07, 0x47, 0x4e, 0x62, 0xc2, 0x19, 0x2a, 0x98, 0x24, 0x69, 0x8c, 0xc1,
|
0x3c, 0x71, 0x52, 0x13, 0xce, 0x48, 0xc2, 0x38, 0xdd, 0x46, 0x08, 0x74, 0x8f, 0xc4, 0xc4, 0xac,
|
||||||
0xf0, 0x68, 0x4c, 0xad, 0x72, 0x17, 0xf5, 0x5b, 0x44, 0xad, 0x7b, 0xbf, 0x20, 0xa8, 0x69, 0x1a,
|
0xf6, 0x35, 0xbb, 0x83, 0xe5, 0x7a, 0xf0, 0x87, 0x06, 0x0d, 0x45, 0x43, 0x26, 0x34, 0xe3, 0x88,
|
||||||
0xb6, 0xa0, 0x1e, 0x47, 0xd4, 0x65, 0x23, 0x4f, 0x15, 0x6a, 0x91, 0x34, 0xc4, 0xf7, 0xa1, 0x11,
|
0xb8, 0x74, 0xec, 0xc9, 0x44, 0x1d, 0x9c, 0x85, 0xe8, 0x21, 0xb4, 0x22, 0xfa, 0x73, 0x42, 0x79,
|
||||||
0xb1, 0xef, 0x77, 0x4c, 0xc4, 0x23, 0x4f, 0xa9, 0x0d, 0x92, 0x01, 0x52, 0x17, 0xb1, 0xd0, 0xdf,
|
0x3c, 0xf6, 0xa4, 0x5a, 0xc7, 0x39, 0x20, 0x74, 0x11, 0x0d, 0xfd, 0xfd, 0xd8, 0x33, 0x6b, 0x72,
|
||||||
0x8f, 0x3c, 0xab, 0xa2, 0x72, 0x69, 0x88, 0xfb, 0x60, 0x48, 0x1f, 0x96, 0xd1, 0x45, 0xfd, 0xf6,
|
0x2f, 0x0b, 0x91, 0x0d, 0xba, 0xf0, 0x61, 0xea, 0x7d, 0xcd, 0xee, 0x0e, 0xef, 0x1d, 0x7c, 0xa5,
|
||||||
0xe0, 0xce, 0xc1, 0x57, 0xe2, 0x7c, 0xbe, 0x0f, 0x19, 0x51, 0x0c, 0xf9, 0x04, 0x8f, 0x2d, 0x77,
|
0xce, 0x17, 0xfb, 0x90, 0x62, 0xc9, 0x10, 0x15, 0x3c, 0xba, 0x4a, 0xd6, 0x63, 0xf6, 0x3a, 0x30,
|
||||||
0xab, 0x11, 0x7f, 0x19, 0x58, 0xd5, 0x2e, 0xea, 0x37, 0x48, 0x06, 0xf4, 0x7e, 0xad, 0x40, 0x6d,
|
0xeb, 0x7d, 0xcd, 0x6e, 0xe1, 0x1c, 0x18, 0xfc, 0x59, 0x83, 0xc6, 0x7c, 0xcf, 0x63, 0x7a, 0x85,
|
||||||
0xb6, 0x17, 0x31, 0xbb, 0xc0, 0x5f, 0x40, 0x63, 0x4d, 0xb9, 0x27, 0xd6, 0x74, 0xcb, 0x92, 0x7e,
|
0xbe, 0x81, 0xd6, 0x86, 0x30, 0x8f, 0x6f, 0xc8, 0x8e, 0xa6, 0xfd, 0x7e, 0x7a, 0xc8, 0xab, 0x38,
|
||||||
0x3f, 0x3c, 0xd4, 0xd5, 0x1c, 0x67, 0x98, 0x12, 0x48, 0xc6, 0x95, 0x5e, 0xc2, 0x0d, 0x5f, 0x29,
|
0xce, 0x28, 0x23, 0xe0, 0x9c, 0x2b, 0xbc, 0x84, 0x5b, 0xb6, 0x96, 0xf6, 0xdb, 0x05, 0x2f, 0xa9,
|
||||||
0xfb, 0xcd, 0x9c, 0x97, 0x44, 0x33, 0xdd, 0xf0, 0x15, 0x51, 0x0c, 0xfc, 0x11, 0x54, 0xa8, 0xbb,
|
0x66, 0xb6, 0x65, 0x6b, 0x2c, 0x19, 0xe8, 0x33, 0xa8, 0x11, 0x77, 0x27, 0x7b, 0x69, 0x0f, 0xef,
|
||||||
0x55, 0xbd, 0x34, 0x07, 0xb7, 0x8b, 0xc4, 0xa7, 0xee, 0x96, 0xc8, 0xbc, 0xfd, 0x04, 0x1a, 0xc3,
|
0x96, 0x89, 0xcf, 0xdd, 0x1d, 0x16, 0xfb, 0xd6, 0x33, 0x68, 0x8d, 0x0a, 0xd9, 0x4f, 0xe4, 0xb9,
|
||||||
0x5c, 0xf5, 0x23, 0x75, 0x2e, 0x6e, 0xe0, 0x9f, 0xb3, 0x48, 0x6c, 0x02, 0xae, 0xcc, 0x35, 0x48,
|
0xb8, 0x81, 0x7f, 0x49, 0x23, 0xbe, 0x0d, 0x98, 0x34, 0xd7, 0xc2, 0x65, 0xd8, 0x1a, 0x80, 0x2e,
|
||||||
0x11, 0xb6, 0x7b, 0x60, 0xc8, 0x67, 0x61, 0x1b, 0x6e, 0xed, 0xf8, 0xe6, 0xa7, 0xf9, 0xe6, 0x42,
|
0x6a, 0x21, 0x0b, 0xee, 0x24, 0x6c, 0xfb, 0xdb, 0x62, 0x7b, 0xa5, 0xfa, 0xd0, 0xf1, 0x21, 0xb6,
|
||||||
0xf7, 0x61, 0x90, 0x43, 0x6c, 0x0f, 0xa0, 0xf2, 0xd4, 0xdd, 0xe2, 0x4f, 0xa1, 0xca, 0xa2, 0x28,
|
0x86, 0x50, 0x7b, 0xee, 0xee, 0xd0, 0x97, 0x50, 0xa7, 0x51, 0x14, 0x44, 0xa9, 0xe7, 0xfb, 0x65,
|
||||||
0x88, 0x12, 0xcf, 0x77, 0x8b, 0x56, 0x4e, 0x65, 0x92, 0x68, 0x8e, 0xfd, 0x0a, 0x41, 0x55, 0x01,
|
0x2b, 0xe7, 0x62, 0x13, 0x2b, 0x8e, 0xf5, 0x46, 0x83, 0xba, 0x04, 0x90, 0x03, 0xba, 0x1b, 0x78,
|
||||||
0xd8, 0x01, 0xc3, 0x0d, 0x3c, 0x5d, 0xb5, 0x3d, 0xb0, 0x6f, 0x54, 0x39, 0x27, 0x81, 0xc7, 0x88,
|
0x2a, 0x6b, 0x77, 0x68, 0x1d, 0x55, 0x39, 0x67, 0x81, 0x47, 0xb1, 0xe4, 0xa1, 0x3e, 0xb4, 0x3d,
|
||||||
0xe2, 0xe1, 0x2e, 0x34, 0x3d, 0x26, 0xdc, 0x68, 0x13, 0xc6, 0xd2, 0x77, 0x59, 0xf9, 0xce, 0x43,
|
0xca, 0xdd, 0x68, 0x1b, 0xc6, 0xc2, 0x77, 0x55, 0xfa, 0x2e, 0x42, 0x83, 0x67, 0xa0, 0x0b, 0x3e,
|
||||||
0xbd, 0x27, 0x60, 0x48, 0x3e, 0x6e, 0x42, 0x7d, 0x31, 0xfe, 0x7a, 0x3c, 0xf9, 0x76, 0x6c, 0x96,
|
0x6a, 0x43, 0x73, 0x39, 0xf9, 0x7e, 0x32, 0xfd, 0x71, 0x62, 0x54, 0x50, 0x1f, 0x1e, 0x2e, 0x27,
|
||||||
0x70, 0x17, 0xee, 0x2f, 0xc6, 0xb3, 0xc5, 0x74, 0x3a, 0x21, 0xf3, 0xd3, 0xaf, 0x5e, 0x4c, 0xc9,
|
0xf3, 0xe5, 0x6c, 0x36, 0xc5, 0x8b, 0xf3, 0xef, 0x5e, 0xcd, 0xf0, 0x74, 0x31, 0x3d, 0x9b, 0xbe,
|
||||||
0x64, 0x3e, 0x39, 0x99, 0x3c, 0x7f, 0x71, 0x7e, 0x4a, 0x66, 0xa3, 0xc9, 0xd8, 0x84, 0xde, 0xcf,
|
0x7c, 0x75, 0x79, 0x8e, 0xe7, 0xe3, 0xe9, 0xc4, 0x80, 0xc1, 0xef, 0x55, 0xe8, 0xcc, 0x93, 0xd5,
|
||||||
0x65, 0x68, 0xcd, 0x76, 0xcb, 0x43, 0x1d, 0xfc, 0x1c, 0xda, 0x42, 0xc7, 0x4b, 0x36, 0x0b, 0xa9,
|
0x21, 0x0f, 0x7a, 0x09, 0x5d, 0xae, 0xe2, 0x15, 0x9d, 0x87, 0xc4, 0xcd, 0x4e, 0xf0, 0x51, 0xee,
|
||||||
0x9b, 0x9e, 0xe0, 0x83, 0xcc, 0x63, 0x8e, 0x9e, 0x06, 0x09, 0x97, 0x14, 0xb4, 0x98, 0x80, 0xb9,
|
0xb1, 0x40, 0xcf, 0x82, 0x94, 0x8b, 0x4b, 0x5a, 0x84, 0xc1, 0x48, 0x58, 0x29, 0x9f, 0xfa, 0xa7,
|
||||||
0xe3, 0x85, 0x7a, 0x7a, 0xa7, 0x3e, 0xbe, 0xb9, 0xde, 0xa2, 0xc0, 0x26, 0x6f, 0xe8, 0xed, 0x87,
|
0x3e, 0x3f, 0x9e, 0x6f, 0x59, 0x62, 0xe3, 0x77, 0xf4, 0xd6, 0x63, 0xe8, 0xde, 0xae, 0x2a, 0x9e,
|
||||||
0xd0, 0xbe, 0xfe, 0x54, 0xf9, 0xed, 0x16, 0x61, 0x76, 0x2b, 0x1a, 0x24, 0x0d, 0xed, 0x47, 0x60,
|
0x6e, 0x1e, 0xe6, 0xb7, 0xa2, 0x85, 0xb3, 0xd0, 0x7a, 0x02, 0x46, 0x39, 0xe3, 0xfb, 0xd9, 0x83,
|
||||||
0x16, 0x2b, 0xbe, 0x9d, 0xdd, 0xfb, 0xb7, 0x06, 0xc6, 0x6c, 0xcf, 0xdd, 0xb7, 0x53, 0xf0, 0xe7,
|
0x9b, 0x3a, 0xe8, 0xf3, 0x3d, 0x73, 0xdf, 0x4f, 0x41, 0x5f, 0x43, 0xf3, 0x4a, 0xdd, 0x8c, 0xb4,
|
||||||
0x50, 0xbf, 0xd0, 0x37, 0x23, 0xe9, 0x23, 0x7f, 0x76, 0xdc, 0x75, 0x4e, 0x02, 0x1e, 0x33, 0x1e,
|
0x8f, 0xe2, 0xd9, 0x31, 0xd7, 0x39, 0x0b, 0x58, 0x4c, 0x59, 0x7c, 0x49, 0xfc, 0x84, 0xe2, 0x8c,
|
||||||
0x9f, 0x53, 0x7f, 0xc7, 0x48, 0x4a, 0xb5, 0xff, 0x41, 0xd0, 0xca, 0x67, 0xf0, 0x97, 0x00, 0xf2,
|
0x8a, 0x9e, 0x02, 0x88, 0xb9, 0xa0, 0x2e, 0x71, 0xfa, 0xd4, 0x1a, 0x8e, 0x1c, 0x15, 0x8b, 0x03,
|
||||||
0xc2, 0x2f, 0x42, 0x8f, 0xc6, 0xe9, 0x0e, 0x5b, 0xd7, 0x2b, 0x0d, 0x0f, 0xf9, 0x61, 0x89, 0xe4,
|
0x8e, 0x0b, 0x1c, 0xf4, 0x31, 0x34, 0x44, 0x34, 0xf6, 0xe4, 0xc5, 0x6c, 0xe1, 0x34, 0xb2, 0xfe,
|
||||||
0xd8, 0xf8, 0x0c, 0x8e, 0x5e, 0xee, 0x7c, 0x5f, 0x92, 0x88, 0xbe, 0xe0, 0x37, 0x5b, 0x39, 0xdb,
|
0xd3, 0xa0, 0x53, 0xac, 0x81, 0xbe, 0x05, 0x10, 0xa3, 0x63, 0x19, 0x7a, 0x24, 0xce, 0xce, 0xca,
|
||||||
0xf9, 0xbe, 0x93, 0x30, 0x86, 0x25, 0x52, 0x14, 0xe1, 0x11, 0x98, 0x19, 0x24, 0xc2, 0x80, 0x0b,
|
0xbc, 0xed, 0x69, 0x74, 0xd8, 0x1f, 0x55, 0x70, 0x81, 0x8d, 0x2e, 0xe0, 0xe4, 0x75, 0xe2, 0xfb,
|
||||||
0x96, 0x5c, 0xa8, 0x7b, 0x37, 0x16, 0xd2, 0x94, 0x61, 0x89, 0xbc, 0x21, 0x7b, 0x56, 0x87, 0xea,
|
0x82, 0x84, 0xd5, 0xa8, 0x38, 0xde, 0xd4, 0x45, 0xe2, 0xfb, 0x4e, 0xca, 0x18, 0x55, 0x70, 0x59,
|
||||||
0x0f, 0xb2, 0x2f, 0xfb, 0x0f, 0x04, 0x90, 0x19, 0xc7, 0x77, 0xa0, 0x2a, 0x8d, 0x0b, 0x0b, 0x75,
|
0x84, 0xc6, 0x60, 0xe4, 0x10, 0x0f, 0x03, 0xc6, 0x69, 0xda, 0xe4, 0x83, 0xa3, 0x89, 0x14, 0x65,
|
||||||
0x2b, 0xfd, 0x06, 0xd1, 0x01, 0xee, 0x43, 0x3d, 0x19, 0xab, 0x56, 0xb9, 0x5b, 0xe9, 0x37, 0x07,
|
0x54, 0xc1, 0xef, 0xc8, 0x5e, 0x34, 0xa1, 0xfe, 0x8b, 0xe8, 0xcb, 0x0a, 0x01, 0x72, 0xdf, 0xe8,
|
||||||
0x6d, 0x87, 0xba, 0xbe, 0x43, 0xe8, 0x8f, 0x27, 0x0a, 0x26, 0x69, 0x1a, 0xbf, 0x0f, 0x35, 0x39,
|
0x1e, 0xd4, 0x85, 0x6f, 0x6e, 0x6a, 0xfd, 0x9a, 0xdd, 0xc2, 0x2a, 0x40, 0x36, 0x34, 0xd3, 0xf9,
|
||||||
0x4f, 0x93, 0xa9, 0xd5, 0x20, 0x49, 0x84, 0x7b, 0xd0, 0x12, 0x9c, 0x86, 0x62, 0x1d, 0xc4, 0x53,
|
0x6c, 0x56, 0xfb, 0x35, 0xbb, 0x3d, 0xec, 0x3a, 0xc4, 0xf5, 0x1d, 0x4c, 0x7e, 0x3d, 0x93, 0x30,
|
||||||
0x1a, 0xaf, 0x2d, 0x43, 0x95, 0xbf, 0x86, 0xe1, 0xc7, 0x00, 0x92, 0xad, 0x07, 0xa7, 0x9a, 0x57,
|
0xce, 0xb6, 0xd1, 0x00, 0x3a, 0x9c, 0x91, 0x90, 0x6f, 0x82, 0x78, 0x46, 0xe2, 0x8d, 0x59, 0x93,
|
||||||
0xcd, 0x81, 0xe9, 0xa8, 0xf1, 0x3c, 0x3f, 0xe0, 0x24, 0xc7, 0xb1, 0xff, 0x2b, 0x83, 0x21, 0x7b,
|
0x69, 0x6e, 0x61, 0xd6, 0xbf, 0x1a, 0xe8, 0xc2, 0xa0, 0x75, 0x05, 0xcd, 0xac, 0xb3, 0x0f, 0x51,
|
||||||
0xb5, 0x7f, 0x43, 0x50, 0x4f, 0x77, 0xe9, 0xdd, 0x6a, 0xe1, 0x77, 0x04, 0xb7, 0xd2, 0x53, 0x79,
|
0x97, 0xc1, 0x9d, 0xac, 0xfd, 0x0f, 0x51, 0xef, 0xf1, 0x25, 0xb4, 0x0b, 0xc3, 0x1d, 0xdd, 0x87,
|
||||||
0xb7, 0xac, 0x3f, 0x3c, 0x87, 0x66, 0xee, 0x37, 0x07, 0xdf, 0x85, 0xf7, 0x72, 0xa1, 0x9e, 0x8b,
|
0x8f, 0x0a, 0xa1, 0x1a, 0x40, 0x46, 0x05, 0x3d, 0x80, 0x4f, 0x8a, 0x70, 0xe1, 0x8e, 0x1a, 0x1a,
|
||||||
0x66, 0x09, 0xdf, 0x83, 0x0f, 0xf2, 0x70, 0x6e, 0x74, 0x98, 0x08, 0xdf, 0x86, 0xa3, 0x6b, 0x1a,
|
0xba, 0x0b, 0x27, 0xb7, 0x34, 0xcc, 0x35, 0xaa, 0x2f, 0x1e, 0xfd, 0x75, 0xdd, 0xd3, 0xde, 0x5e,
|
||||||
0xee, 0x9a, 0xe5, 0x67, 0x0f, 0xfe, 0xbc, 0xec, 0xa0, 0xd7, 0x97, 0x1d, 0xf4, 0xf7, 0x65, 0x07,
|
0xf7, 0xb4, 0x7f, 0xae, 0x7b, 0xda, 0x9b, 0x9b, 0x5e, 0xe5, 0xed, 0x4d, 0xaf, 0xf2, 0xf7, 0x4d,
|
||||||
0xbd, 0xba, 0xea, 0x94, 0x5e, 0x5f, 0x75, 0x4a, 0x7f, 0x5d, 0x75, 0x4a, 0xdf, 0xc1, 0xf1, 0xe1,
|
0xaf, 0xf2, 0x13, 0x9c, 0x1e, 0x5e, 0xc7, 0xab, 0x86, 0xfc, 0xf9, 0xea, 0xff, 0x00, 0x00, 0x00,
|
||||||
0x5f, 0xc2, 0xb2, 0xa6, 0x3e, 0x3e, 0xfb, 0x3f, 0x00, 0x00, 0xff, 0xff, 0x7a, 0xad, 0xe7, 0x46,
|
0xff, 0xff, 0x6a, 0x04, 0xc0, 0x87, 0xa2, 0x07, 0x00, 0x00,
|
||||||
0x39, 0x08, 0x00, 0x00,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Message) Marshal() (dAtA []byte, err error) {
|
func (m *Message) Marshal() (dAtA []byte, err error) {
|
||||||
@ -1494,6 +1461,25 @@ func (m *Sync) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
|||||||
_ = i
|
_ = i
|
||||||
var l int
|
var l int
|
||||||
_ = l
|
_ = l
|
||||||
|
if len(m.TreeId) > 0 {
|
||||||
|
i -= len(m.TreeId)
|
||||||
|
copy(dAtA[i:], m.TreeId)
|
||||||
|
i = encodeVarintSync(dAtA, i, uint64(len(m.TreeId)))
|
||||||
|
i--
|
||||||
|
dAtA[i] = 0x22
|
||||||
|
}
|
||||||
|
if m.TreeHeader != nil {
|
||||||
|
{
|
||||||
|
size, err := m.TreeHeader.MarshalToSizedBuffer(dAtA[:i])
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
i -= size
|
||||||
|
i = encodeVarintSync(dAtA, i, uint64(size))
|
||||||
|
}
|
||||||
|
i--
|
||||||
|
dAtA[i] = 0x1a
|
||||||
|
}
|
||||||
if m.Message != nil {
|
if m.Message != nil {
|
||||||
{
|
{
|
||||||
size, err := m.Message.MarshalToSizedBuffer(dAtA[:i])
|
size, err := m.Message.MarshalToSizedBuffer(dAtA[:i])
|
||||||
@ -1631,34 +1617,15 @@ func (m *SyncHeadUpdate) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
|||||||
_ = i
|
_ = i
|
||||||
var l int
|
var l int
|
||||||
_ = l
|
_ = l
|
||||||
if m.TreeHeader != nil {
|
|
||||||
{
|
|
||||||
size, err := m.TreeHeader.MarshalToSizedBuffer(dAtA[:i])
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
i -= size
|
|
||||||
i = encodeVarintSync(dAtA, i, uint64(size))
|
|
||||||
}
|
|
||||||
i--
|
|
||||||
dAtA[i] = 0x2a
|
|
||||||
}
|
|
||||||
if len(m.SnapshotPath) > 0 {
|
if len(m.SnapshotPath) > 0 {
|
||||||
for iNdEx := len(m.SnapshotPath) - 1; iNdEx >= 0; iNdEx-- {
|
for iNdEx := len(m.SnapshotPath) - 1; iNdEx >= 0; iNdEx-- {
|
||||||
i -= len(m.SnapshotPath[iNdEx])
|
i -= len(m.SnapshotPath[iNdEx])
|
||||||
copy(dAtA[i:], m.SnapshotPath[iNdEx])
|
copy(dAtA[i:], m.SnapshotPath[iNdEx])
|
||||||
i = encodeVarintSync(dAtA, i, uint64(len(m.SnapshotPath[iNdEx])))
|
i = encodeVarintSync(dAtA, i, uint64(len(m.SnapshotPath[iNdEx])))
|
||||||
i--
|
i--
|
||||||
dAtA[i] = 0x22
|
dAtA[i] = 0x1a
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(m.TreeId) > 0 {
|
|
||||||
i -= len(m.TreeId)
|
|
||||||
copy(dAtA[i:], m.TreeId)
|
|
||||||
i = encodeVarintSync(dAtA, i, uint64(len(m.TreeId)))
|
|
||||||
i--
|
|
||||||
dAtA[i] = 0x1a
|
|
||||||
}
|
|
||||||
if len(m.Changes) > 0 {
|
if len(m.Changes) > 0 {
|
||||||
for iNdEx := len(m.Changes) - 1; iNdEx >= 0; iNdEx-- {
|
for iNdEx := len(m.Changes) - 1; iNdEx >= 0; iNdEx-- {
|
||||||
{
|
{
|
||||||
@ -1728,34 +1695,15 @@ func (m *SyncFullRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
|||||||
_ = i
|
_ = i
|
||||||
var l int
|
var l int
|
||||||
_ = l
|
_ = l
|
||||||
if m.TreeHeader != nil {
|
|
||||||
{
|
|
||||||
size, err := m.TreeHeader.MarshalToSizedBuffer(dAtA[:i])
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
i -= size
|
|
||||||
i = encodeVarintSync(dAtA, i, uint64(size))
|
|
||||||
}
|
|
||||||
i--
|
|
||||||
dAtA[i] = 0x2a
|
|
||||||
}
|
|
||||||
if len(m.SnapshotPath) > 0 {
|
if len(m.SnapshotPath) > 0 {
|
||||||
for iNdEx := len(m.SnapshotPath) - 1; iNdEx >= 0; iNdEx-- {
|
for iNdEx := len(m.SnapshotPath) - 1; iNdEx >= 0; iNdEx-- {
|
||||||
i -= len(m.SnapshotPath[iNdEx])
|
i -= len(m.SnapshotPath[iNdEx])
|
||||||
copy(dAtA[i:], m.SnapshotPath[iNdEx])
|
copy(dAtA[i:], m.SnapshotPath[iNdEx])
|
||||||
i = encodeVarintSync(dAtA, i, uint64(len(m.SnapshotPath[iNdEx])))
|
i = encodeVarintSync(dAtA, i, uint64(len(m.SnapshotPath[iNdEx])))
|
||||||
i--
|
i--
|
||||||
dAtA[i] = 0x22
|
dAtA[i] = 0x1a
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(m.TreeId) > 0 {
|
|
||||||
i -= len(m.TreeId)
|
|
||||||
copy(dAtA[i:], m.TreeId)
|
|
||||||
i = encodeVarintSync(dAtA, i, uint64(len(m.TreeId)))
|
|
||||||
i--
|
|
||||||
dAtA[i] = 0x1a
|
|
||||||
}
|
|
||||||
if len(m.Changes) > 0 {
|
if len(m.Changes) > 0 {
|
||||||
for iNdEx := len(m.Changes) - 1; iNdEx >= 0; iNdEx-- {
|
for iNdEx := len(m.Changes) - 1; iNdEx >= 0; iNdEx-- {
|
||||||
{
|
{
|
||||||
@ -1802,34 +1750,15 @@ func (m *SyncFullResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
|||||||
_ = i
|
_ = i
|
||||||
var l int
|
var l int
|
||||||
_ = l
|
_ = l
|
||||||
if m.TreeHeader != nil {
|
|
||||||
{
|
|
||||||
size, err := m.TreeHeader.MarshalToSizedBuffer(dAtA[:i])
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
i -= size
|
|
||||||
i = encodeVarintSync(dAtA, i, uint64(size))
|
|
||||||
}
|
|
||||||
i--
|
|
||||||
dAtA[i] = 0x2a
|
|
||||||
}
|
|
||||||
if len(m.SnapshotPath) > 0 {
|
if len(m.SnapshotPath) > 0 {
|
||||||
for iNdEx := len(m.SnapshotPath) - 1; iNdEx >= 0; iNdEx-- {
|
for iNdEx := len(m.SnapshotPath) - 1; iNdEx >= 0; iNdEx-- {
|
||||||
i -= len(m.SnapshotPath[iNdEx])
|
i -= len(m.SnapshotPath[iNdEx])
|
||||||
copy(dAtA[i:], m.SnapshotPath[iNdEx])
|
copy(dAtA[i:], m.SnapshotPath[iNdEx])
|
||||||
i = encodeVarintSync(dAtA, i, uint64(len(m.SnapshotPath[iNdEx])))
|
i = encodeVarintSync(dAtA, i, uint64(len(m.SnapshotPath[iNdEx])))
|
||||||
i--
|
i--
|
||||||
dAtA[i] = 0x22
|
dAtA[i] = 0x1a
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(m.TreeId) > 0 {
|
|
||||||
i -= len(m.TreeId)
|
|
||||||
copy(dAtA[i:], m.TreeId)
|
|
||||||
i = encodeVarintSync(dAtA, i, uint64(len(m.TreeId)))
|
|
||||||
i--
|
|
||||||
dAtA[i] = 0x1a
|
|
||||||
}
|
|
||||||
if len(m.Changes) > 0 {
|
if len(m.Changes) > 0 {
|
||||||
for iNdEx := len(m.Changes) - 1; iNdEx >= 0; iNdEx-- {
|
for iNdEx := len(m.Changes) - 1; iNdEx >= 0; iNdEx-- {
|
||||||
{
|
{
|
||||||
@ -2042,6 +1971,14 @@ func (m *Sync) Size() (n int) {
|
|||||||
l = m.Message.Size()
|
l = m.Message.Size()
|
||||||
n += 1 + l + sovSync(uint64(l))
|
n += 1 + l + sovSync(uint64(l))
|
||||||
}
|
}
|
||||||
|
if m.TreeHeader != nil {
|
||||||
|
l = m.TreeHeader.Size()
|
||||||
|
n += 1 + l + sovSync(uint64(l))
|
||||||
|
}
|
||||||
|
l = len(m.TreeId)
|
||||||
|
if l > 0 {
|
||||||
|
n += 1 + l + sovSync(uint64(l))
|
||||||
|
}
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2111,20 +2048,12 @@ func (m *SyncHeadUpdate) Size() (n int) {
|
|||||||
n += 1 + l + sovSync(uint64(l))
|
n += 1 + l + sovSync(uint64(l))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
l = len(m.TreeId)
|
|
||||||
if l > 0 {
|
|
||||||
n += 1 + l + sovSync(uint64(l))
|
|
||||||
}
|
|
||||||
if len(m.SnapshotPath) > 0 {
|
if len(m.SnapshotPath) > 0 {
|
||||||
for _, s := range m.SnapshotPath {
|
for _, s := range m.SnapshotPath {
|
||||||
l = len(s)
|
l = len(s)
|
||||||
n += 1 + l + sovSync(uint64(l))
|
n += 1 + l + sovSync(uint64(l))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if m.TreeHeader != nil {
|
|
||||||
l = m.TreeHeader.Size()
|
|
||||||
n += 1 + l + sovSync(uint64(l))
|
|
||||||
}
|
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2155,20 +2084,12 @@ func (m *SyncFullRequest) Size() (n int) {
|
|||||||
n += 1 + l + sovSync(uint64(l))
|
n += 1 + l + sovSync(uint64(l))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
l = len(m.TreeId)
|
|
||||||
if l > 0 {
|
|
||||||
n += 1 + l + sovSync(uint64(l))
|
|
||||||
}
|
|
||||||
if len(m.SnapshotPath) > 0 {
|
if len(m.SnapshotPath) > 0 {
|
||||||
for _, s := range m.SnapshotPath {
|
for _, s := range m.SnapshotPath {
|
||||||
l = len(s)
|
l = len(s)
|
||||||
n += 1 + l + sovSync(uint64(l))
|
n += 1 + l + sovSync(uint64(l))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if m.TreeHeader != nil {
|
|
||||||
l = m.TreeHeader.Size()
|
|
||||||
n += 1 + l + sovSync(uint64(l))
|
|
||||||
}
|
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2190,20 +2111,12 @@ func (m *SyncFullResponse) Size() (n int) {
|
|||||||
n += 1 + l + sovSync(uint64(l))
|
n += 1 + l + sovSync(uint64(l))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
l = len(m.TreeId)
|
|
||||||
if l > 0 {
|
|
||||||
n += 1 + l + sovSync(uint64(l))
|
|
||||||
}
|
|
||||||
if len(m.SnapshotPath) > 0 {
|
if len(m.SnapshotPath) > 0 {
|
||||||
for _, s := range m.SnapshotPath {
|
for _, s := range m.SnapshotPath {
|
||||||
l = len(s)
|
l = len(s)
|
||||||
n += 1 + l + sovSync(uint64(l))
|
n += 1 + l + sovSync(uint64(l))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if m.TreeHeader != nil {
|
|
||||||
l = m.TreeHeader.Size()
|
|
||||||
n += 1 + l + sovSync(uint64(l))
|
|
||||||
}
|
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3385,6 +3298,74 @@ func (m *Sync) Unmarshal(dAtA []byte) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
iNdEx = postIndex
|
iNdEx = postIndex
|
||||||
|
case 3:
|
||||||
|
if wireType != 2 {
|
||||||
|
return fmt.Errorf("proto: wrong wireType = %d for field TreeHeader", wireType)
|
||||||
|
}
|
||||||
|
var msglen int
|
||||||
|
for shift := uint(0); ; shift += 7 {
|
||||||
|
if shift >= 64 {
|
||||||
|
return ErrIntOverflowSync
|
||||||
|
}
|
||||||
|
if iNdEx >= l {
|
||||||
|
return io.ErrUnexpectedEOF
|
||||||
|
}
|
||||||
|
b := dAtA[iNdEx]
|
||||||
|
iNdEx++
|
||||||
|
msglen |= int(b&0x7F) << shift
|
||||||
|
if b < 0x80 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if msglen < 0 {
|
||||||
|
return ErrInvalidLengthSync
|
||||||
|
}
|
||||||
|
postIndex := iNdEx + msglen
|
||||||
|
if postIndex < 0 {
|
||||||
|
return ErrInvalidLengthSync
|
||||||
|
}
|
||||||
|
if postIndex > l {
|
||||||
|
return io.ErrUnexpectedEOF
|
||||||
|
}
|
||||||
|
if m.TreeHeader == nil {
|
||||||
|
m.TreeHeader = &treepb.TreeHeader{}
|
||||||
|
}
|
||||||
|
if err := m.TreeHeader.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
iNdEx = postIndex
|
||||||
|
case 4:
|
||||||
|
if wireType != 2 {
|
||||||
|
return fmt.Errorf("proto: wrong wireType = %d for field TreeId", wireType)
|
||||||
|
}
|
||||||
|
var stringLen uint64
|
||||||
|
for shift := uint(0); ; shift += 7 {
|
||||||
|
if shift >= 64 {
|
||||||
|
return ErrIntOverflowSync
|
||||||
|
}
|
||||||
|
if iNdEx >= l {
|
||||||
|
return io.ErrUnexpectedEOF
|
||||||
|
}
|
||||||
|
b := dAtA[iNdEx]
|
||||||
|
iNdEx++
|
||||||
|
stringLen |= uint64(b&0x7F) << shift
|
||||||
|
if b < 0x80 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
intStringLen := int(stringLen)
|
||||||
|
if intStringLen < 0 {
|
||||||
|
return ErrInvalidLengthSync
|
||||||
|
}
|
||||||
|
postIndex := iNdEx + intStringLen
|
||||||
|
if postIndex < 0 {
|
||||||
|
return ErrInvalidLengthSync
|
||||||
|
}
|
||||||
|
if postIndex > l {
|
||||||
|
return io.ErrUnexpectedEOF
|
||||||
|
}
|
||||||
|
m.TreeId = string(dAtA[iNdEx:postIndex])
|
||||||
|
iNdEx = postIndex
|
||||||
default:
|
default:
|
||||||
iNdEx = preIndex
|
iNdEx = preIndex
|
||||||
skippy, err := skipSync(dAtA[iNdEx:])
|
skippy, err := skipSync(dAtA[iNdEx:])
|
||||||
@ -3657,38 +3638,6 @@ func (m *SyncHeadUpdate) Unmarshal(dAtA []byte) error {
|
|||||||
}
|
}
|
||||||
iNdEx = postIndex
|
iNdEx = postIndex
|
||||||
case 3:
|
case 3:
|
||||||
if wireType != 2 {
|
|
||||||
return fmt.Errorf("proto: wrong wireType = %d for field TreeId", wireType)
|
|
||||||
}
|
|
||||||
var stringLen uint64
|
|
||||||
for shift := uint(0); ; shift += 7 {
|
|
||||||
if shift >= 64 {
|
|
||||||
return ErrIntOverflowSync
|
|
||||||
}
|
|
||||||
if iNdEx >= l {
|
|
||||||
return io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
b := dAtA[iNdEx]
|
|
||||||
iNdEx++
|
|
||||||
stringLen |= uint64(b&0x7F) << shift
|
|
||||||
if b < 0x80 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
intStringLen := int(stringLen)
|
|
||||||
if intStringLen < 0 {
|
|
||||||
return ErrInvalidLengthSync
|
|
||||||
}
|
|
||||||
postIndex := iNdEx + intStringLen
|
|
||||||
if postIndex < 0 {
|
|
||||||
return ErrInvalidLengthSync
|
|
||||||
}
|
|
||||||
if postIndex > l {
|
|
||||||
return io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
m.TreeId = string(dAtA[iNdEx:postIndex])
|
|
||||||
iNdEx = postIndex
|
|
||||||
case 4:
|
|
||||||
if wireType != 2 {
|
if wireType != 2 {
|
||||||
return fmt.Errorf("proto: wrong wireType = %d for field SnapshotPath", wireType)
|
return fmt.Errorf("proto: wrong wireType = %d for field SnapshotPath", wireType)
|
||||||
}
|
}
|
||||||
@ -3720,42 +3669,6 @@ func (m *SyncHeadUpdate) Unmarshal(dAtA []byte) error {
|
|||||||
}
|
}
|
||||||
m.SnapshotPath = append(m.SnapshotPath, string(dAtA[iNdEx:postIndex]))
|
m.SnapshotPath = append(m.SnapshotPath, string(dAtA[iNdEx:postIndex]))
|
||||||
iNdEx = postIndex
|
iNdEx = postIndex
|
||||||
case 5:
|
|
||||||
if wireType != 2 {
|
|
||||||
return fmt.Errorf("proto: wrong wireType = %d for field TreeHeader", wireType)
|
|
||||||
}
|
|
||||||
var msglen int
|
|
||||||
for shift := uint(0); ; shift += 7 {
|
|
||||||
if shift >= 64 {
|
|
||||||
return ErrIntOverflowSync
|
|
||||||
}
|
|
||||||
if iNdEx >= l {
|
|
||||||
return io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
b := dAtA[iNdEx]
|
|
||||||
iNdEx++
|
|
||||||
msglen |= int(b&0x7F) << shift
|
|
||||||
if b < 0x80 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if msglen < 0 {
|
|
||||||
return ErrInvalidLengthSync
|
|
||||||
}
|
|
||||||
postIndex := iNdEx + msglen
|
|
||||||
if postIndex < 0 {
|
|
||||||
return ErrInvalidLengthSync
|
|
||||||
}
|
|
||||||
if postIndex > l {
|
|
||||||
return io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
if m.TreeHeader == nil {
|
|
||||||
m.TreeHeader = &treepb.TreeHeader{}
|
|
||||||
}
|
|
||||||
if err := m.TreeHeader.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
iNdEx = postIndex
|
|
||||||
default:
|
default:
|
||||||
iNdEx = preIndex
|
iNdEx = preIndex
|
||||||
skippy, err := skipSync(dAtA[iNdEx:])
|
skippy, err := skipSync(dAtA[iNdEx:])
|
||||||
@ -3923,38 +3836,6 @@ func (m *SyncFullRequest) Unmarshal(dAtA []byte) error {
|
|||||||
}
|
}
|
||||||
iNdEx = postIndex
|
iNdEx = postIndex
|
||||||
case 3:
|
case 3:
|
||||||
if wireType != 2 {
|
|
||||||
return fmt.Errorf("proto: wrong wireType = %d for field TreeId", wireType)
|
|
||||||
}
|
|
||||||
var stringLen uint64
|
|
||||||
for shift := uint(0); ; shift += 7 {
|
|
||||||
if shift >= 64 {
|
|
||||||
return ErrIntOverflowSync
|
|
||||||
}
|
|
||||||
if iNdEx >= l {
|
|
||||||
return io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
b := dAtA[iNdEx]
|
|
||||||
iNdEx++
|
|
||||||
stringLen |= uint64(b&0x7F) << shift
|
|
||||||
if b < 0x80 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
intStringLen := int(stringLen)
|
|
||||||
if intStringLen < 0 {
|
|
||||||
return ErrInvalidLengthSync
|
|
||||||
}
|
|
||||||
postIndex := iNdEx + intStringLen
|
|
||||||
if postIndex < 0 {
|
|
||||||
return ErrInvalidLengthSync
|
|
||||||
}
|
|
||||||
if postIndex > l {
|
|
||||||
return io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
m.TreeId = string(dAtA[iNdEx:postIndex])
|
|
||||||
iNdEx = postIndex
|
|
||||||
case 4:
|
|
||||||
if wireType != 2 {
|
if wireType != 2 {
|
||||||
return fmt.Errorf("proto: wrong wireType = %d for field SnapshotPath", wireType)
|
return fmt.Errorf("proto: wrong wireType = %d for field SnapshotPath", wireType)
|
||||||
}
|
}
|
||||||
@ -3986,42 +3867,6 @@ func (m *SyncFullRequest) Unmarshal(dAtA []byte) error {
|
|||||||
}
|
}
|
||||||
m.SnapshotPath = append(m.SnapshotPath, string(dAtA[iNdEx:postIndex]))
|
m.SnapshotPath = append(m.SnapshotPath, string(dAtA[iNdEx:postIndex]))
|
||||||
iNdEx = postIndex
|
iNdEx = postIndex
|
||||||
case 5:
|
|
||||||
if wireType != 2 {
|
|
||||||
return fmt.Errorf("proto: wrong wireType = %d for field TreeHeader", wireType)
|
|
||||||
}
|
|
||||||
var msglen int
|
|
||||||
for shift := uint(0); ; shift += 7 {
|
|
||||||
if shift >= 64 {
|
|
||||||
return ErrIntOverflowSync
|
|
||||||
}
|
|
||||||
if iNdEx >= l {
|
|
||||||
return io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
b := dAtA[iNdEx]
|
|
||||||
iNdEx++
|
|
||||||
msglen |= int(b&0x7F) << shift
|
|
||||||
if b < 0x80 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if msglen < 0 {
|
|
||||||
return ErrInvalidLengthSync
|
|
||||||
}
|
|
||||||
postIndex := iNdEx + msglen
|
|
||||||
if postIndex < 0 {
|
|
||||||
return ErrInvalidLengthSync
|
|
||||||
}
|
|
||||||
if postIndex > l {
|
|
||||||
return io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
if m.TreeHeader == nil {
|
|
||||||
m.TreeHeader = &treepb.TreeHeader{}
|
|
||||||
}
|
|
||||||
if err := m.TreeHeader.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
iNdEx = postIndex
|
|
||||||
default:
|
default:
|
||||||
iNdEx = preIndex
|
iNdEx = preIndex
|
||||||
skippy, err := skipSync(dAtA[iNdEx:])
|
skippy, err := skipSync(dAtA[iNdEx:])
|
||||||
@ -4139,38 +3984,6 @@ func (m *SyncFullResponse) Unmarshal(dAtA []byte) error {
|
|||||||
}
|
}
|
||||||
iNdEx = postIndex
|
iNdEx = postIndex
|
||||||
case 3:
|
case 3:
|
||||||
if wireType != 2 {
|
|
||||||
return fmt.Errorf("proto: wrong wireType = %d for field TreeId", wireType)
|
|
||||||
}
|
|
||||||
var stringLen uint64
|
|
||||||
for shift := uint(0); ; shift += 7 {
|
|
||||||
if shift >= 64 {
|
|
||||||
return ErrIntOverflowSync
|
|
||||||
}
|
|
||||||
if iNdEx >= l {
|
|
||||||
return io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
b := dAtA[iNdEx]
|
|
||||||
iNdEx++
|
|
||||||
stringLen |= uint64(b&0x7F) << shift
|
|
||||||
if b < 0x80 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
intStringLen := int(stringLen)
|
|
||||||
if intStringLen < 0 {
|
|
||||||
return ErrInvalidLengthSync
|
|
||||||
}
|
|
||||||
postIndex := iNdEx + intStringLen
|
|
||||||
if postIndex < 0 {
|
|
||||||
return ErrInvalidLengthSync
|
|
||||||
}
|
|
||||||
if postIndex > l {
|
|
||||||
return io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
m.TreeId = string(dAtA[iNdEx:postIndex])
|
|
||||||
iNdEx = postIndex
|
|
||||||
case 4:
|
|
||||||
if wireType != 2 {
|
if wireType != 2 {
|
||||||
return fmt.Errorf("proto: wrong wireType = %d for field SnapshotPath", wireType)
|
return fmt.Errorf("proto: wrong wireType = %d for field SnapshotPath", wireType)
|
||||||
}
|
}
|
||||||
@ -4202,42 +4015,6 @@ func (m *SyncFullResponse) Unmarshal(dAtA []byte) error {
|
|||||||
}
|
}
|
||||||
m.SnapshotPath = append(m.SnapshotPath, string(dAtA[iNdEx:postIndex]))
|
m.SnapshotPath = append(m.SnapshotPath, string(dAtA[iNdEx:postIndex]))
|
||||||
iNdEx = postIndex
|
iNdEx = postIndex
|
||||||
case 5:
|
|
||||||
if wireType != 2 {
|
|
||||||
return fmt.Errorf("proto: wrong wireType = %d for field TreeHeader", wireType)
|
|
||||||
}
|
|
||||||
var msglen int
|
|
||||||
for shift := uint(0); ; shift += 7 {
|
|
||||||
if shift >= 64 {
|
|
||||||
return ErrIntOverflowSync
|
|
||||||
}
|
|
||||||
if iNdEx >= l {
|
|
||||||
return io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
b := dAtA[iNdEx]
|
|
||||||
iNdEx++
|
|
||||||
msglen |= int(b&0x7F) << shift
|
|
||||||
if b < 0x80 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if msglen < 0 {
|
|
||||||
return ErrInvalidLengthSync
|
|
||||||
}
|
|
||||||
postIndex := iNdEx + msglen
|
|
||||||
if postIndex < 0 {
|
|
||||||
return ErrInvalidLengthSync
|
|
||||||
}
|
|
||||||
if postIndex > l {
|
|
||||||
return io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
if m.TreeHeader == nil {
|
|
||||||
m.TreeHeader = &treepb.TreeHeader{}
|
|
||||||
}
|
|
||||||
if err := m.TreeHeader.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
iNdEx = postIndex
|
|
||||||
default:
|
default:
|
||||||
iNdEx = preIndex
|
iNdEx = preIndex
|
||||||
skippy, err := skipSync(dAtA[iNdEx:])
|
skippy, err := skipSync(dAtA[iNdEx:])
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user