github.com/TrueCloudLab/frostfs-api-go/v2@v2.0.0-20230228134343-196241c4e79a/object/convert.go (about)

     1  package object
     2  
     3  import (
     4  	"fmt"
     5  
     6  	object "github.com/TrueCloudLab/frostfs-api-go/v2/object/grpc"
     7  	"github.com/TrueCloudLab/frostfs-api-go/v2/refs"
     8  	refsGRPC "github.com/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
     9  	"github.com/TrueCloudLab/frostfs-api-go/v2/rpc/grpc"
    10  	"github.com/TrueCloudLab/frostfs-api-go/v2/rpc/message"
    11  	"github.com/TrueCloudLab/frostfs-api-go/v2/session"
    12  	sessionGRPC "github.com/TrueCloudLab/frostfs-api-go/v2/session/grpc"
    13  )
    14  
    15  func TypeToGRPCField(t Type) object.ObjectType {
    16  	return object.ObjectType(t)
    17  }
    18  
    19  func TypeFromGRPCField(t object.ObjectType) Type {
    20  	return Type(t)
    21  }
    22  
    23  func MatchTypeToGRPCField(t MatchType) object.MatchType {
    24  	return object.MatchType(t)
    25  }
    26  
    27  func MatchTypeFromGRPCField(t object.MatchType) MatchType {
    28  	return MatchType(t)
    29  }
    30  
    31  func (h *ShortHeader) ToGRPCMessage() grpc.Message {
    32  	var m *object.ShortHeader
    33  
    34  	if h != nil {
    35  		m = new(object.ShortHeader)
    36  
    37  		m.SetVersion(h.version.ToGRPCMessage().(*refsGRPC.Version))
    38  		m.SetOwnerId(h.ownerID.ToGRPCMessage().(*refsGRPC.OwnerID))
    39  		m.SetHomomorphicHash(h.homoHash.ToGRPCMessage().(*refsGRPC.Checksum))
    40  		m.SetPayloadHash(h.payloadHash.ToGRPCMessage().(*refsGRPC.Checksum))
    41  		m.SetObjectType(TypeToGRPCField(h.typ))
    42  		m.SetCreationEpoch(h.creatEpoch)
    43  		m.SetPayloadLength(h.payloadLen)
    44  	}
    45  
    46  	return m
    47  }
    48  
    49  func (h *ShortHeader) FromGRPCMessage(m grpc.Message) error {
    50  	v, ok := m.(*object.ShortHeader)
    51  	if !ok {
    52  		return message.NewUnexpectedMessageType(m, v)
    53  	}
    54  
    55  	var err error
    56  
    57  	version := v.GetVersion()
    58  	if version == nil {
    59  		h.version = nil
    60  	} else {
    61  		if h.version == nil {
    62  			h.version = new(refs.Version)
    63  		}
    64  
    65  		err = h.version.FromGRPCMessage(version)
    66  		if err != nil {
    67  			return err
    68  		}
    69  	}
    70  
    71  	ownerID := v.GetOwnerId()
    72  	if ownerID == nil {
    73  		h.ownerID = nil
    74  	} else {
    75  		if h.ownerID == nil {
    76  			h.ownerID = new(refs.OwnerID)
    77  		}
    78  
    79  		err = h.ownerID.FromGRPCMessage(ownerID)
    80  		if err != nil {
    81  			return err
    82  		}
    83  	}
    84  
    85  	homoHash := v.GetHomomorphicHash()
    86  	if homoHash == nil {
    87  		h.homoHash = nil
    88  	} else {
    89  		if h.homoHash == nil {
    90  			h.homoHash = new(refs.Checksum)
    91  		}
    92  
    93  		err = h.homoHash.FromGRPCMessage(homoHash)
    94  		if err != nil {
    95  			return err
    96  		}
    97  	}
    98  
    99  	payloadHash := v.GetPayloadHash()
   100  	if payloadHash == nil {
   101  		h.payloadHash = nil
   102  	} else {
   103  		if h.payloadHash == nil {
   104  			h.payloadHash = new(refs.Checksum)
   105  		}
   106  
   107  		err = h.payloadHash.FromGRPCMessage(payloadHash)
   108  		if err != nil {
   109  			return err
   110  		}
   111  	}
   112  
   113  	h.typ = TypeFromGRPCField(v.GetObjectType())
   114  	h.creatEpoch = v.GetCreationEpoch()
   115  	h.payloadLen = v.GetPayloadLength()
   116  
   117  	return nil
   118  }
   119  
   120  func (a *Attribute) ToGRPCMessage() grpc.Message {
   121  	var m *object.Header_Attribute
   122  
   123  	if a != nil {
   124  		m = new(object.Header_Attribute)
   125  
   126  		m.SetKey(a.key)
   127  		m.SetValue(a.val)
   128  	}
   129  
   130  	return m
   131  }
   132  
   133  func (a *Attribute) FromGRPCMessage(m grpc.Message) error {
   134  	v, ok := m.(*object.Header_Attribute)
   135  	if !ok {
   136  		return message.NewUnexpectedMessageType(m, v)
   137  	}
   138  
   139  	a.key = v.GetKey()
   140  	a.val = v.GetValue()
   141  
   142  	return nil
   143  }
   144  
   145  func AttributesToGRPC(xs []Attribute) (res []*object.Header_Attribute) {
   146  	if xs != nil {
   147  		res = make([]*object.Header_Attribute, 0, len(xs))
   148  
   149  		for i := range xs {
   150  			res = append(res, xs[i].ToGRPCMessage().(*object.Header_Attribute))
   151  		}
   152  	}
   153  
   154  	return
   155  }
   156  
   157  func AttributesFromGRPC(xs []*object.Header_Attribute) (res []Attribute, err error) {
   158  	if xs != nil {
   159  		res = make([]Attribute, len(xs))
   160  
   161  		for i := range xs {
   162  			if xs[i] != nil {
   163  				err = res[i].FromGRPCMessage(xs[i])
   164  				if err != nil {
   165  					return
   166  				}
   167  			}
   168  		}
   169  	}
   170  
   171  	return
   172  }
   173  
   174  func (h *SplitHeader) ToGRPCMessage() grpc.Message {
   175  	var m *object.Header_Split
   176  
   177  	if h != nil {
   178  		m = new(object.Header_Split)
   179  
   180  		m.SetParent(h.par.ToGRPCMessage().(*refsGRPC.ObjectID))
   181  		m.SetPrevious(h.prev.ToGRPCMessage().(*refsGRPC.ObjectID))
   182  		m.SetParentHeader(h.parHdr.ToGRPCMessage().(*object.Header))
   183  		m.SetParentSignature(h.parSig.ToGRPCMessage().(*refsGRPC.Signature))
   184  		m.SetChildren(refs.ObjectIDListToGRPCMessage(h.children))
   185  		m.SetSplitId(h.splitID)
   186  	}
   187  
   188  	return m
   189  }
   190  
   191  func (h *SplitHeader) FromGRPCMessage(m grpc.Message) error {
   192  	v, ok := m.(*object.Header_Split)
   193  	if !ok {
   194  		return message.NewUnexpectedMessageType(m, v)
   195  	}
   196  
   197  	var err error
   198  
   199  	par := v.GetParent()
   200  	if par == nil {
   201  		h.par = nil
   202  	} else {
   203  		if h.par == nil {
   204  			h.par = new(refs.ObjectID)
   205  		}
   206  
   207  		err = h.par.FromGRPCMessage(par)
   208  		if err != nil {
   209  			return err
   210  		}
   211  	}
   212  
   213  	prev := v.GetPrevious()
   214  	if prev == nil {
   215  		h.prev = nil
   216  	} else {
   217  		if h.prev == nil {
   218  			h.prev = new(refs.ObjectID)
   219  		}
   220  
   221  		err = h.prev.FromGRPCMessage(prev)
   222  		if err != nil {
   223  			return err
   224  		}
   225  	}
   226  
   227  	parHdr := v.GetParentHeader()
   228  	if parHdr == nil {
   229  		h.parHdr = nil
   230  	} else {
   231  		if h.parHdr == nil {
   232  			h.parHdr = new(Header)
   233  		}
   234  
   235  		err = h.parHdr.FromGRPCMessage(parHdr)
   236  		if err != nil {
   237  			return err
   238  		}
   239  	}
   240  
   241  	parSig := v.GetParentSignature()
   242  	if parSig == nil {
   243  		h.parSig = nil
   244  	} else {
   245  		if h.parSig == nil {
   246  			h.parSig = new(refs.Signature)
   247  		}
   248  
   249  		err = h.parSig.FromGRPCMessage(parSig)
   250  		if err != nil {
   251  			return err
   252  		}
   253  	}
   254  
   255  	h.children, err = refs.ObjectIDListFromGRPCMessage(v.GetChildren())
   256  	if err != nil {
   257  		return err
   258  	}
   259  
   260  	h.splitID = v.GetSplitId()
   261  
   262  	return nil
   263  }
   264  
   265  func (h *Header) ToGRPCMessage() grpc.Message {
   266  	var m *object.Header
   267  
   268  	if h != nil {
   269  		m = new(object.Header)
   270  
   271  		m.SetVersion(h.version.ToGRPCMessage().(*refsGRPC.Version))
   272  		m.SetPayloadHash(h.payloadHash.ToGRPCMessage().(*refsGRPC.Checksum))
   273  		m.SetOwnerId(h.ownerID.ToGRPCMessage().(*refsGRPC.OwnerID))
   274  		m.SetHomomorphicHash(h.homoHash.ToGRPCMessage().(*refsGRPC.Checksum))
   275  		m.SetContainerId(h.cid.ToGRPCMessage().(*refsGRPC.ContainerID))
   276  		m.SetSessionToken(h.sessionToken.ToGRPCMessage().(*sessionGRPC.SessionToken))
   277  		m.SetSplit(h.split.ToGRPCMessage().(*object.Header_Split))
   278  		m.SetAttributes(AttributesToGRPC(h.attr))
   279  		m.SetPayloadLength(h.payloadLen)
   280  		m.SetCreationEpoch(h.creatEpoch)
   281  		m.SetObjectType(TypeToGRPCField(h.typ))
   282  	}
   283  
   284  	return m
   285  }
   286  
   287  func (h *Header) FromGRPCMessage(m grpc.Message) error {
   288  	v, ok := m.(*object.Header)
   289  	if !ok {
   290  		return message.NewUnexpectedMessageType(m, v)
   291  	}
   292  
   293  	var err error
   294  
   295  	version := v.GetVersion()
   296  	if version == nil {
   297  		h.version = nil
   298  	} else {
   299  		if h.version == nil {
   300  			h.version = new(refs.Version)
   301  		}
   302  
   303  		err = h.version.FromGRPCMessage(version)
   304  		if err != nil {
   305  			return err
   306  		}
   307  	}
   308  
   309  	payloadHash := v.GetPayloadHash()
   310  	if payloadHash == nil {
   311  		h.payloadHash = nil
   312  	} else {
   313  		if h.payloadHash == nil {
   314  			h.payloadHash = new(refs.Checksum)
   315  		}
   316  
   317  		err = h.payloadHash.FromGRPCMessage(payloadHash)
   318  		if err != nil {
   319  			return err
   320  		}
   321  	}
   322  
   323  	ownerID := v.GetOwnerId()
   324  	if ownerID == nil {
   325  		h.ownerID = nil
   326  	} else {
   327  		if h.ownerID == nil {
   328  			h.ownerID = new(refs.OwnerID)
   329  		}
   330  
   331  		err = h.ownerID.FromGRPCMessage(ownerID)
   332  		if err != nil {
   333  			return err
   334  		}
   335  	}
   336  
   337  	homoHash := v.GetHomomorphicHash()
   338  	if homoHash == nil {
   339  		h.homoHash = nil
   340  	} else {
   341  		if h.homoHash == nil {
   342  			h.homoHash = new(refs.Checksum)
   343  		}
   344  
   345  		err = h.homoHash.FromGRPCMessage(homoHash)
   346  		if err != nil {
   347  			return err
   348  		}
   349  	}
   350  
   351  	cid := v.GetContainerId()
   352  	if cid == nil {
   353  		h.cid = nil
   354  	} else {
   355  		if h.cid == nil {
   356  			h.cid = new(refs.ContainerID)
   357  		}
   358  
   359  		err = h.cid.FromGRPCMessage(cid)
   360  		if err != nil {
   361  			return err
   362  		}
   363  	}
   364  
   365  	sessionToken := v.GetSessionToken()
   366  	if sessionToken == nil {
   367  		h.sessionToken = nil
   368  	} else {
   369  		if h.sessionToken == nil {
   370  			h.sessionToken = new(session.Token)
   371  		}
   372  
   373  		err = h.sessionToken.FromGRPCMessage(sessionToken)
   374  		if err != nil {
   375  			return err
   376  		}
   377  	}
   378  
   379  	split := v.GetSplit()
   380  	if split == nil {
   381  		h.split = nil
   382  	} else {
   383  		if h.split == nil {
   384  			h.split = new(SplitHeader)
   385  		}
   386  
   387  		err = h.split.FromGRPCMessage(split)
   388  		if err != nil {
   389  			return err
   390  		}
   391  	}
   392  
   393  	h.attr, err = AttributesFromGRPC(v.GetAttributes())
   394  	if err != nil {
   395  		return err
   396  	}
   397  
   398  	h.payloadLen = v.GetPayloadLength()
   399  	h.creatEpoch = v.GetCreationEpoch()
   400  	h.typ = TypeFromGRPCField(v.GetObjectType())
   401  
   402  	return nil
   403  }
   404  
   405  func (h *HeaderWithSignature) ToGRPCMessage() grpc.Message {
   406  	var m *object.HeaderWithSignature
   407  
   408  	if h != nil {
   409  		m = new(object.HeaderWithSignature)
   410  
   411  		m.SetSignature(h.signature.ToGRPCMessage().(*refsGRPC.Signature))
   412  		m.SetHeader(h.header.ToGRPCMessage().(*object.Header))
   413  	}
   414  
   415  	return m
   416  }
   417  
   418  func (h *HeaderWithSignature) FromGRPCMessage(m grpc.Message) error {
   419  	v, ok := m.(*object.HeaderWithSignature)
   420  	if !ok {
   421  		return message.NewUnexpectedMessageType(m, v)
   422  	}
   423  
   424  	var err error
   425  
   426  	signature := v.GetSignature()
   427  	if signature == nil {
   428  		h.signature = nil
   429  	} else {
   430  		if h.signature == nil {
   431  			h.signature = new(refs.Signature)
   432  		}
   433  
   434  		err = h.signature.FromGRPCMessage(signature)
   435  		if err != nil {
   436  			return err
   437  		}
   438  	}
   439  
   440  	header := v.GetHeader()
   441  	if header == nil {
   442  		h.header = nil
   443  	} else {
   444  		if h.header == nil {
   445  			h.header = new(Header)
   446  		}
   447  
   448  		err = h.header.FromGRPCMessage(header)
   449  	}
   450  
   451  	return err
   452  }
   453  
   454  func (o *Object) ToGRPCMessage() grpc.Message {
   455  	var m *object.Object
   456  
   457  	if o != nil {
   458  		m = new(object.Object)
   459  
   460  		m.SetObjectId(o.objectID.ToGRPCMessage().(*refsGRPC.ObjectID))
   461  		m.SetSignature(o.idSig.ToGRPCMessage().(*refsGRPC.Signature))
   462  		m.SetHeader(o.header.ToGRPCMessage().(*object.Header))
   463  		m.SetPayload(o.payload)
   464  	}
   465  
   466  	return m
   467  }
   468  
   469  func (o *Object) FromGRPCMessage(m grpc.Message) error {
   470  	v, ok := m.(*object.Object)
   471  	if !ok {
   472  		return message.NewUnexpectedMessageType(m, v)
   473  	}
   474  
   475  	var err error
   476  
   477  	objectID := v.GetObjectId()
   478  	if objectID == nil {
   479  		o.objectID = nil
   480  	} else {
   481  		if o.objectID == nil {
   482  			o.objectID = new(refs.ObjectID)
   483  		}
   484  
   485  		err = o.objectID.FromGRPCMessage(objectID)
   486  		if err != nil {
   487  			return err
   488  		}
   489  	}
   490  
   491  	idSig := v.GetSignature()
   492  	if idSig == nil {
   493  		o.idSig = nil
   494  	} else {
   495  		if o.idSig == nil {
   496  			o.idSig = new(refs.Signature)
   497  		}
   498  
   499  		err = o.idSig.FromGRPCMessage(idSig)
   500  		if err != nil {
   501  			return err
   502  		}
   503  	}
   504  
   505  	header := v.GetHeader()
   506  	if header == nil {
   507  		o.header = nil
   508  	} else {
   509  		if o.header == nil {
   510  			o.header = new(Header)
   511  		}
   512  
   513  		err = o.header.FromGRPCMessage(header)
   514  		if err != nil {
   515  			return err
   516  		}
   517  	}
   518  
   519  	o.payload = v.GetPayload()
   520  
   521  	return nil
   522  }
   523  
   524  func (s *SplitInfo) ToGRPCMessage() grpc.Message {
   525  	var m *object.SplitInfo
   526  
   527  	if s != nil {
   528  		m = new(object.SplitInfo)
   529  
   530  		m.SetLastPart(s.lastPart.ToGRPCMessage().(*refsGRPC.ObjectID))
   531  		m.SetLink(s.link.ToGRPCMessage().(*refsGRPC.ObjectID))
   532  		m.SetSplitId(s.splitID)
   533  	}
   534  
   535  	return m
   536  }
   537  
   538  func (s *SplitInfo) FromGRPCMessage(m grpc.Message) error {
   539  	v, ok := m.(*object.SplitInfo)
   540  	if !ok {
   541  		return message.NewUnexpectedMessageType(m, v)
   542  	}
   543  
   544  	var err error
   545  
   546  	lastPart := v.GetLastPart()
   547  	if lastPart == nil {
   548  		s.lastPart = nil
   549  	} else {
   550  		if s.lastPart == nil {
   551  			s.lastPart = new(refs.ObjectID)
   552  		}
   553  
   554  		err = s.lastPart.FromGRPCMessage(lastPart)
   555  		if err != nil {
   556  			return err
   557  		}
   558  	}
   559  
   560  	link := v.GetLink()
   561  	if link == nil {
   562  		s.link = nil
   563  	} else {
   564  		if s.link == nil {
   565  			s.link = new(refs.ObjectID)
   566  		}
   567  
   568  		err = s.link.FromGRPCMessage(link)
   569  		if err != nil {
   570  			return err
   571  		}
   572  	}
   573  
   574  	s.splitID = v.GetSplitId()
   575  
   576  	return nil
   577  }
   578  
   579  func (r *GetRequestBody) ToGRPCMessage() grpc.Message {
   580  	var m *object.GetRequest_Body
   581  
   582  	if r != nil {
   583  		m = new(object.GetRequest_Body)
   584  
   585  		m.SetAddress(r.addr.ToGRPCMessage().(*refsGRPC.Address))
   586  		m.SetRaw(r.raw)
   587  	}
   588  
   589  	return m
   590  }
   591  
   592  func (r *GetRequestBody) FromGRPCMessage(m grpc.Message) error {
   593  	v, ok := m.(*object.GetRequest_Body)
   594  	if !ok {
   595  		return message.NewUnexpectedMessageType(m, v)
   596  	}
   597  
   598  	var err error
   599  
   600  	addr := v.GetAddress()
   601  	if addr == nil {
   602  		r.addr = nil
   603  	} else {
   604  		if r.addr == nil {
   605  			r.addr = new(refs.Address)
   606  		}
   607  
   608  		err = r.addr.FromGRPCMessage(addr)
   609  		if err != nil {
   610  			return err
   611  		}
   612  	}
   613  
   614  	r.raw = v.GetRaw()
   615  
   616  	return nil
   617  }
   618  
   619  func (r *GetRequest) ToGRPCMessage() grpc.Message {
   620  	var m *object.GetRequest
   621  
   622  	if r != nil {
   623  		m = new(object.GetRequest)
   624  
   625  		m.SetBody(r.body.ToGRPCMessage().(*object.GetRequest_Body))
   626  		r.RequestHeaders.ToMessage(m)
   627  	}
   628  
   629  	return m
   630  }
   631  
   632  func (r *GetRequest) FromGRPCMessage(m grpc.Message) error {
   633  	v, ok := m.(*object.GetRequest)
   634  	if !ok {
   635  		return message.NewUnexpectedMessageType(m, v)
   636  	}
   637  
   638  	var err error
   639  
   640  	body := v.GetBody()
   641  	if body == nil {
   642  		r.body = nil
   643  	} else {
   644  		if r.body == nil {
   645  			r.body = new(GetRequestBody)
   646  		}
   647  
   648  		err = r.body.FromGRPCMessage(body)
   649  		if err != nil {
   650  			return err
   651  		}
   652  	}
   653  
   654  	return r.RequestHeaders.FromMessage(v)
   655  }
   656  
   657  func (r *GetObjectPartInit) ToGRPCMessage() grpc.Message {
   658  	var m *object.GetResponse_Body_Init
   659  
   660  	if r != nil {
   661  		m = new(object.GetResponse_Body_Init)
   662  
   663  		m.SetObjectId(r.id.ToGRPCMessage().(*refsGRPC.ObjectID))
   664  		m.SetSignature(r.sig.ToGRPCMessage().(*refsGRPC.Signature))
   665  		m.SetHeader(r.hdr.ToGRPCMessage().(*object.Header))
   666  	}
   667  
   668  	return m
   669  }
   670  
   671  func (r *GetObjectPartInit) FromGRPCMessage(m grpc.Message) error {
   672  	v, ok := m.(*object.GetResponse_Body_Init)
   673  	if !ok {
   674  		return message.NewUnexpectedMessageType(m, v)
   675  	}
   676  
   677  	var err error
   678  
   679  	id := v.GetObjectId()
   680  	if id == nil {
   681  		r.id = nil
   682  	} else {
   683  		if r.id == nil {
   684  			r.id = new(refs.ObjectID)
   685  		}
   686  
   687  		err = r.id.FromGRPCMessage(id)
   688  		if err != nil {
   689  			return err
   690  		}
   691  	}
   692  
   693  	sig := v.GetSignature()
   694  	if sig == nil {
   695  		r.sig = nil
   696  	} else {
   697  		if r.sig == nil {
   698  			r.sig = new(refs.Signature)
   699  		}
   700  
   701  		err = r.sig.FromGRPCMessage(sig)
   702  		if err != nil {
   703  			return err
   704  		}
   705  	}
   706  
   707  	hdr := v.GetHeader()
   708  	if hdr == nil {
   709  		r.hdr = nil
   710  	} else {
   711  		if r.hdr == nil {
   712  			r.hdr = new(Header)
   713  		}
   714  
   715  		err = r.hdr.FromGRPCMessage(hdr)
   716  	}
   717  
   718  	return err
   719  }
   720  
   721  func (r *GetObjectPartChunk) ToGRPCMessage() grpc.Message {
   722  	var m *object.GetResponse_Body_Chunk
   723  
   724  	if r != nil {
   725  		m = new(object.GetResponse_Body_Chunk)
   726  
   727  		m.SetChunk(r.chunk)
   728  	}
   729  
   730  	return m
   731  }
   732  
   733  func (r *GetObjectPartChunk) FromGRPCMessage(m grpc.Message) error {
   734  	v, ok := m.(*object.GetResponse_Body_Chunk)
   735  	if !ok {
   736  		return message.NewUnexpectedMessageType(m, v)
   737  	}
   738  
   739  	r.chunk = v.GetChunk()
   740  
   741  	return nil
   742  }
   743  
   744  func (r *GetResponseBody) ToGRPCMessage() grpc.Message {
   745  	var m *object.GetResponse_Body
   746  
   747  	if r != nil {
   748  		m = new(object.GetResponse_Body)
   749  
   750  		switch v := r.GetObjectPart(); t := v.(type) {
   751  		case nil:
   752  			m.ObjectPart = nil
   753  		case *GetObjectPartInit:
   754  			m.SetInit(t.ToGRPCMessage().(*object.GetResponse_Body_Init))
   755  		case *GetObjectPartChunk:
   756  			m.SetChunk(t.ToGRPCMessage().(*object.GetResponse_Body_Chunk))
   757  		case *SplitInfo:
   758  			m.SetSplitInfo(t.ToGRPCMessage().(*object.SplitInfo))
   759  		default:
   760  			panic(fmt.Sprintf("unknown get object part %T", t))
   761  		}
   762  	}
   763  
   764  	return m
   765  }
   766  
   767  func (r *GetResponseBody) FromGRPCMessage(m grpc.Message) error {
   768  	v, ok := m.(*object.GetResponse_Body)
   769  	if !ok {
   770  		return message.NewUnexpectedMessageType(m, v)
   771  	}
   772  
   773  	var err error
   774  
   775  	r.objPart = nil
   776  
   777  	switch pt := v.GetObjectPart().(type) {
   778  	case nil:
   779  	case *object.GetResponse_Body_Init_:
   780  		if pt != nil {
   781  			partInit := new(GetObjectPartInit)
   782  			r.objPart = partInit
   783  			err = partInit.FromGRPCMessage(pt.Init)
   784  		}
   785  	case *object.GetResponse_Body_Chunk:
   786  		if pt != nil {
   787  			partChunk := new(GetObjectPartChunk)
   788  			r.objPart = partChunk
   789  			err = partChunk.FromGRPCMessage(pt)
   790  		}
   791  	case *object.GetResponse_Body_SplitInfo:
   792  		if pt != nil {
   793  			partSplit := new(SplitInfo)
   794  			r.objPart = partSplit
   795  			err = partSplit.FromGRPCMessage(pt.SplitInfo)
   796  		}
   797  	default:
   798  		err = fmt.Errorf("unknown get object part %T", pt)
   799  	}
   800  
   801  	return err
   802  }
   803  
   804  func (r *GetResponse) ToGRPCMessage() grpc.Message {
   805  	var m *object.GetResponse
   806  
   807  	if r != nil {
   808  		m = new(object.GetResponse)
   809  
   810  		m.SetBody(r.body.ToGRPCMessage().(*object.GetResponse_Body))
   811  		r.ResponseHeaders.ToMessage(m)
   812  	}
   813  
   814  	return m
   815  }
   816  
   817  func (r *GetResponse) FromGRPCMessage(m grpc.Message) error {
   818  	v, ok := m.(*object.GetResponse)
   819  	if !ok {
   820  		return message.NewUnexpectedMessageType(m, v)
   821  	}
   822  
   823  	var err error
   824  
   825  	body := v.GetBody()
   826  	if body == nil {
   827  		r.body = nil
   828  	} else {
   829  		if r.body == nil {
   830  			r.body = new(GetResponseBody)
   831  		}
   832  
   833  		err = r.body.FromGRPCMessage(body)
   834  		if err != nil {
   835  			return err
   836  		}
   837  	}
   838  
   839  	return r.ResponseHeaders.FromMessage(v)
   840  }
   841  
   842  func (r *PutObjectPartInit) ToGRPCMessage() grpc.Message {
   843  	var m *object.PutRequest_Body_Init
   844  
   845  	if r != nil {
   846  		m = new(object.PutRequest_Body_Init)
   847  
   848  		m.SetObjectId(r.id.ToGRPCMessage().(*refsGRPC.ObjectID))
   849  		m.SetSignature(r.sig.ToGRPCMessage().(*refsGRPC.Signature))
   850  		m.SetHeader(r.hdr.ToGRPCMessage().(*object.Header))
   851  		m.SetCopiesNumber(r.copyNum)
   852  	}
   853  
   854  	return m
   855  }
   856  
   857  func (r *PutObjectPartInit) FromGRPCMessage(m grpc.Message) error {
   858  	v, ok := m.(*object.PutRequest_Body_Init)
   859  	if !ok {
   860  		return message.NewUnexpectedMessageType(m, v)
   861  	}
   862  
   863  	var err error
   864  
   865  	id := v.GetObjectId()
   866  	if id == nil {
   867  		r.id = nil
   868  	} else {
   869  		if r.id == nil {
   870  			r.id = new(refs.ObjectID)
   871  		}
   872  
   873  		err = r.id.FromGRPCMessage(id)
   874  		if err != nil {
   875  			return err
   876  		}
   877  	}
   878  
   879  	sig := v.GetSignature()
   880  	if sig == nil {
   881  		r.sig = nil
   882  	} else {
   883  		if r.sig == nil {
   884  			r.sig = new(refs.Signature)
   885  		}
   886  
   887  		err = r.sig.FromGRPCMessage(sig)
   888  		if err != nil {
   889  			return err
   890  		}
   891  	}
   892  
   893  	hdr := v.GetHeader()
   894  	if hdr == nil {
   895  		r.hdr = nil
   896  	} else {
   897  		if r.hdr == nil {
   898  			r.hdr = new(Header)
   899  		}
   900  
   901  		err = r.hdr.FromGRPCMessage(hdr)
   902  		if err != nil {
   903  			return err
   904  		}
   905  	}
   906  
   907  	r.copyNum = v.GetCopiesNumber()
   908  
   909  	return nil
   910  }
   911  
   912  func (r *PutObjectPartChunk) ToGRPCMessage() grpc.Message {
   913  	var m *object.PutRequest_Body_Chunk
   914  
   915  	if r != nil {
   916  		m = new(object.PutRequest_Body_Chunk)
   917  
   918  		m.SetChunk(r.chunk)
   919  	}
   920  
   921  	return m
   922  }
   923  
   924  func (r *PutObjectPartChunk) FromGRPCMessage(m grpc.Message) error {
   925  	v, ok := m.(*object.PutRequest_Body_Chunk)
   926  	if !ok {
   927  		return message.NewUnexpectedMessageType(m, v)
   928  	}
   929  
   930  	r.chunk = v.GetChunk()
   931  
   932  	return nil
   933  }
   934  
   935  func (r *PutRequestBody) ToGRPCMessage() grpc.Message {
   936  	var m *object.PutRequest_Body
   937  
   938  	if r != nil {
   939  		m = new(object.PutRequest_Body)
   940  
   941  		switch v := r.GetObjectPart(); t := v.(type) {
   942  		case nil:
   943  			m.ObjectPart = nil
   944  		case *PutObjectPartInit:
   945  			m.SetInit(t.ToGRPCMessage().(*object.PutRequest_Body_Init))
   946  		case *PutObjectPartChunk:
   947  			m.SetChunk(t.ToGRPCMessage().(*object.PutRequest_Body_Chunk))
   948  		default:
   949  			panic(fmt.Sprintf("unknown put object part %T", t))
   950  		}
   951  	}
   952  
   953  	return m
   954  }
   955  
   956  func (r *PutRequestBody) FromGRPCMessage(m grpc.Message) error {
   957  	v, ok := m.(*object.PutRequest_Body)
   958  	if !ok {
   959  		return message.NewUnexpectedMessageType(m, v)
   960  	}
   961  
   962  	var err error
   963  
   964  	r.objPart = nil
   965  
   966  	switch pt := v.GetObjectPart().(type) {
   967  	case nil:
   968  	case *object.PutRequest_Body_Init_:
   969  		if pt != nil {
   970  			partInit := new(PutObjectPartInit)
   971  			r.objPart = partInit
   972  			err = partInit.FromGRPCMessage(pt.Init)
   973  		}
   974  	case *object.PutRequest_Body_Chunk:
   975  		if pt != nil {
   976  			partChunk := new(PutObjectPartChunk)
   977  			r.objPart = partChunk
   978  			err = partChunk.FromGRPCMessage(pt)
   979  		}
   980  	default:
   981  		err = fmt.Errorf("unknown put object part %T", pt)
   982  	}
   983  
   984  	return err
   985  }
   986  
   987  func (r *PutRequest) ToGRPCMessage() grpc.Message {
   988  	var m *object.PutRequest
   989  
   990  	if r != nil {
   991  		m = new(object.PutRequest)
   992  
   993  		m.SetBody(r.body.ToGRPCMessage().(*object.PutRequest_Body))
   994  		r.RequestHeaders.ToMessage(m)
   995  	}
   996  
   997  	return m
   998  }
   999  
  1000  func (r *PutRequest) FromGRPCMessage(m grpc.Message) error {
  1001  	v, ok := m.(*object.PutRequest)
  1002  	if !ok {
  1003  		return message.NewUnexpectedMessageType(m, v)
  1004  	}
  1005  
  1006  	var err error
  1007  
  1008  	body := v.GetBody()
  1009  	if body == nil {
  1010  		r.body = nil
  1011  	} else {
  1012  		if r.body == nil {
  1013  			r.body = new(PutRequestBody)
  1014  		}
  1015  
  1016  		err = r.body.FromGRPCMessage(body)
  1017  		if err != nil {
  1018  			return err
  1019  		}
  1020  	}
  1021  
  1022  	return r.RequestHeaders.FromMessage(v)
  1023  }
  1024  
  1025  func (r *PutResponseBody) ToGRPCMessage() grpc.Message {
  1026  	var m *object.PutResponse_Body
  1027  
  1028  	if r != nil {
  1029  		m = new(object.PutResponse_Body)
  1030  
  1031  		m.SetObjectId(r.id.ToGRPCMessage().(*refsGRPC.ObjectID))
  1032  	}
  1033  
  1034  	return m
  1035  }
  1036  
  1037  func (r *PutResponseBody) FromGRPCMessage(m grpc.Message) error {
  1038  	v, ok := m.(*object.PutResponse_Body)
  1039  	if !ok {
  1040  		return message.NewUnexpectedMessageType(m, v)
  1041  	}
  1042  
  1043  	var err error
  1044  
  1045  	id := v.GetObjectId()
  1046  	if id == nil {
  1047  		r.id = nil
  1048  	} else {
  1049  		if r.id == nil {
  1050  			r.id = new(refs.ObjectID)
  1051  		}
  1052  
  1053  		err = r.id.FromGRPCMessage(id)
  1054  	}
  1055  
  1056  	return err
  1057  }
  1058  
  1059  func (r *PutResponse) ToGRPCMessage() grpc.Message {
  1060  	var m *object.PutResponse
  1061  
  1062  	if r != nil {
  1063  		m = new(object.PutResponse)
  1064  
  1065  		m.SetBody(r.body.ToGRPCMessage().(*object.PutResponse_Body))
  1066  		r.ResponseHeaders.ToMessage(m)
  1067  	}
  1068  
  1069  	return m
  1070  }
  1071  
  1072  func (r *PutResponse) FromGRPCMessage(m grpc.Message) error {
  1073  	v, ok := m.(*object.PutResponse)
  1074  	if !ok {
  1075  		return message.NewUnexpectedMessageType(m, v)
  1076  	}
  1077  
  1078  	var err error
  1079  
  1080  	body := v.GetBody()
  1081  	if body == nil {
  1082  		r.body = nil
  1083  	} else {
  1084  		if r.body == nil {
  1085  			r.body = new(PutResponseBody)
  1086  		}
  1087  
  1088  		err = r.body.FromGRPCMessage(body)
  1089  		if err != nil {
  1090  			return err
  1091  		}
  1092  	}
  1093  
  1094  	return r.ResponseHeaders.FromMessage(v)
  1095  }
  1096  
  1097  func (r *DeleteRequestBody) ToGRPCMessage() grpc.Message {
  1098  	var m *object.DeleteRequest_Body
  1099  
  1100  	if r != nil {
  1101  		m = new(object.DeleteRequest_Body)
  1102  
  1103  		m.SetAddress(r.addr.ToGRPCMessage().(*refsGRPC.Address))
  1104  	}
  1105  
  1106  	return m
  1107  }
  1108  
  1109  func (r *DeleteRequestBody) FromGRPCMessage(m grpc.Message) error {
  1110  	v, ok := m.(*object.DeleteRequest_Body)
  1111  	if !ok {
  1112  		return message.NewUnexpectedMessageType(m, v)
  1113  	}
  1114  
  1115  	var err error
  1116  
  1117  	addr := v.GetAddress()
  1118  	if addr == nil {
  1119  		r.addr = nil
  1120  	} else {
  1121  		if r.addr == nil {
  1122  			r.addr = new(refs.Address)
  1123  		}
  1124  
  1125  		err = r.addr.FromGRPCMessage(addr)
  1126  	}
  1127  
  1128  	return err
  1129  }
  1130  
  1131  func (r *DeleteRequest) ToGRPCMessage() grpc.Message {
  1132  	var m *object.DeleteRequest
  1133  
  1134  	if r != nil {
  1135  		m = new(object.DeleteRequest)
  1136  
  1137  		m.SetBody(r.body.ToGRPCMessage().(*object.DeleteRequest_Body))
  1138  		r.RequestHeaders.ToMessage(m)
  1139  	}
  1140  
  1141  	return m
  1142  }
  1143  
  1144  func (r *DeleteRequest) FromGRPCMessage(m grpc.Message) error {
  1145  	v, ok := m.(*object.DeleteRequest)
  1146  	if !ok {
  1147  		return message.NewUnexpectedMessageType(m, v)
  1148  	}
  1149  
  1150  	var err error
  1151  
  1152  	body := v.GetBody()
  1153  	if body == nil {
  1154  		r.body = nil
  1155  	} else {
  1156  		if r.body == nil {
  1157  			r.body = new(DeleteRequestBody)
  1158  		}
  1159  
  1160  		err = r.body.FromGRPCMessage(body)
  1161  		if err != nil {
  1162  			return err
  1163  		}
  1164  	}
  1165  
  1166  	return r.RequestHeaders.FromMessage(v)
  1167  }
  1168  
  1169  func (r *DeleteResponseBody) ToGRPCMessage() grpc.Message {
  1170  	var m *object.DeleteResponse_Body
  1171  
  1172  	if r != nil {
  1173  		m = new(object.DeleteResponse_Body)
  1174  
  1175  		m.SetTombstone(r.tombstone.ToGRPCMessage().(*refsGRPC.Address))
  1176  	}
  1177  
  1178  	return m
  1179  }
  1180  
  1181  func (r *DeleteResponseBody) FromGRPCMessage(m grpc.Message) error {
  1182  	v, ok := m.(*object.DeleteResponse_Body)
  1183  	if !ok {
  1184  		return message.NewUnexpectedMessageType(m, v)
  1185  	}
  1186  
  1187  	var err error
  1188  
  1189  	tombstone := v.GetTombstone()
  1190  	if tombstone == nil {
  1191  		r.tombstone = nil
  1192  	} else {
  1193  		if r.tombstone == nil {
  1194  			r.tombstone = new(refs.Address)
  1195  		}
  1196  
  1197  		err = r.tombstone.FromGRPCMessage(tombstone)
  1198  	}
  1199  
  1200  	return err
  1201  }
  1202  
  1203  func (r *DeleteResponse) ToGRPCMessage() grpc.Message {
  1204  	var m *object.DeleteResponse
  1205  
  1206  	if r != nil {
  1207  		m = new(object.DeleteResponse)
  1208  
  1209  		m.SetBody(r.body.ToGRPCMessage().(*object.DeleteResponse_Body))
  1210  		r.ResponseHeaders.ToMessage(m)
  1211  	}
  1212  
  1213  	return m
  1214  }
  1215  
  1216  func (r *DeleteResponse) FromGRPCMessage(m grpc.Message) error {
  1217  	v, ok := m.(*object.DeleteResponse)
  1218  	if !ok {
  1219  		return message.NewUnexpectedMessageType(m, v)
  1220  	}
  1221  
  1222  	var err error
  1223  
  1224  	body := v.GetBody()
  1225  	if body == nil {
  1226  		r.body = nil
  1227  	} else {
  1228  		if r.body == nil {
  1229  			r.body = new(DeleteResponseBody)
  1230  		}
  1231  
  1232  		err = r.body.FromGRPCMessage(body)
  1233  		if err != nil {
  1234  			return err
  1235  		}
  1236  	}
  1237  
  1238  	return r.ResponseHeaders.FromMessage(v)
  1239  }
  1240  
  1241  func (r *HeadRequestBody) ToGRPCMessage() grpc.Message {
  1242  	var m *object.HeadRequest_Body
  1243  
  1244  	if r != nil {
  1245  		m = new(object.HeadRequest_Body)
  1246  
  1247  		m.SetAddress(r.addr.ToGRPCMessage().(*refsGRPC.Address))
  1248  		m.SetRaw(r.raw)
  1249  		m.SetMainOnly(r.mainOnly)
  1250  	}
  1251  
  1252  	return m
  1253  }
  1254  
  1255  func (r *HeadRequestBody) FromGRPCMessage(m grpc.Message) error {
  1256  	v, ok := m.(*object.HeadRequest_Body)
  1257  	if !ok {
  1258  		return message.NewUnexpectedMessageType(m, v)
  1259  	}
  1260  
  1261  	var err error
  1262  
  1263  	addr := v.GetAddress()
  1264  	if addr == nil {
  1265  		r.addr = nil
  1266  	} else {
  1267  		if r.addr == nil {
  1268  			r.addr = new(refs.Address)
  1269  		}
  1270  
  1271  		err = r.addr.FromGRPCMessage(addr)
  1272  		if err != nil {
  1273  			return err
  1274  		}
  1275  	}
  1276  
  1277  	r.raw = v.GetRaw()
  1278  	r.mainOnly = v.GetMainOnly()
  1279  
  1280  	return nil
  1281  }
  1282  
  1283  func (r *HeadRequest) ToGRPCMessage() grpc.Message {
  1284  	var m *object.HeadRequest
  1285  
  1286  	if r != nil {
  1287  		m = new(object.HeadRequest)
  1288  
  1289  		m.SetBody(r.body.ToGRPCMessage().(*object.HeadRequest_Body))
  1290  		r.RequestHeaders.ToMessage(m)
  1291  	}
  1292  
  1293  	return m
  1294  }
  1295  
  1296  func (r *HeadRequest) FromGRPCMessage(m grpc.Message) error {
  1297  	v, ok := m.(*object.HeadRequest)
  1298  	if !ok {
  1299  		return message.NewUnexpectedMessageType(m, v)
  1300  	}
  1301  
  1302  	var err error
  1303  
  1304  	body := v.GetBody()
  1305  	if body == nil {
  1306  		r.body = nil
  1307  	} else {
  1308  		if r.body == nil {
  1309  			r.body = new(HeadRequestBody)
  1310  		}
  1311  
  1312  		err = r.body.FromGRPCMessage(body)
  1313  		if err != nil {
  1314  			return err
  1315  		}
  1316  	}
  1317  
  1318  	return r.RequestHeaders.FromMessage(v)
  1319  }
  1320  
  1321  func (r *HeadResponseBody) ToGRPCMessage() grpc.Message {
  1322  	var m *object.HeadResponse_Body
  1323  
  1324  	if r != nil {
  1325  		m = new(object.HeadResponse_Body)
  1326  
  1327  		switch v := r.hdrPart.(type) {
  1328  		case nil:
  1329  			m.Head = nil
  1330  		case *HeaderWithSignature:
  1331  			m.SetHeader(v.ToGRPCMessage().(*object.HeaderWithSignature))
  1332  		case *ShortHeader:
  1333  			m.SetShortHeader(v.ToGRPCMessage().(*object.ShortHeader))
  1334  		case *SplitInfo:
  1335  			m.SetSplitInfo(v.ToGRPCMessage().(*object.SplitInfo))
  1336  		default:
  1337  			panic(fmt.Sprintf("unknown head part %T", v))
  1338  		}
  1339  	}
  1340  
  1341  	return m
  1342  }
  1343  
  1344  func (r *HeadResponseBody) FromGRPCMessage(m grpc.Message) error {
  1345  	v, ok := m.(*object.HeadResponse_Body)
  1346  	if !ok {
  1347  		return message.NewUnexpectedMessageType(m, v)
  1348  	}
  1349  
  1350  	var err error
  1351  
  1352  	r.hdrPart = nil
  1353  
  1354  	switch pt := v.GetHead().(type) {
  1355  	case nil:
  1356  	case *object.HeadResponse_Body_Header:
  1357  		if pt != nil {
  1358  			partHdr := new(HeaderWithSignature)
  1359  			r.hdrPart = partHdr
  1360  			err = partHdr.FromGRPCMessage(pt.Header)
  1361  		}
  1362  	case *object.HeadResponse_Body_ShortHeader:
  1363  		if pt != nil {
  1364  			partShort := new(ShortHeader)
  1365  			r.hdrPart = partShort
  1366  			err = partShort.FromGRPCMessage(pt.ShortHeader)
  1367  		}
  1368  	case *object.HeadResponse_Body_SplitInfo:
  1369  		if pt != nil {
  1370  			partSplit := new(SplitInfo)
  1371  			r.hdrPart = partSplit
  1372  			err = partSplit.FromGRPCMessage(pt.SplitInfo)
  1373  		}
  1374  	default:
  1375  		err = fmt.Errorf("unknown head part %T", pt)
  1376  	}
  1377  
  1378  	return err
  1379  }
  1380  
  1381  func (r *HeadResponse) ToGRPCMessage() grpc.Message {
  1382  	var m *object.HeadResponse
  1383  
  1384  	if r != nil {
  1385  		m = new(object.HeadResponse)
  1386  
  1387  		m.SetBody(r.body.ToGRPCMessage().(*object.HeadResponse_Body))
  1388  		r.ResponseHeaders.ToMessage(m)
  1389  	}
  1390  
  1391  	return m
  1392  }
  1393  
  1394  func (r *HeadResponse) FromGRPCMessage(m grpc.Message) error {
  1395  	v, ok := m.(*object.HeadResponse)
  1396  	if !ok {
  1397  		return message.NewUnexpectedMessageType(m, v)
  1398  	}
  1399  
  1400  	var err error
  1401  
  1402  	body := v.GetBody()
  1403  	if body == nil {
  1404  		r.body = nil
  1405  	} else {
  1406  		if r.body == nil {
  1407  			r.body = new(HeadResponseBody)
  1408  		}
  1409  
  1410  		err = r.body.FromGRPCMessage(body)
  1411  		if err != nil {
  1412  			return err
  1413  		}
  1414  	}
  1415  
  1416  	return r.ResponseHeaders.FromMessage(v)
  1417  }
  1418  
  1419  func (f *SearchFilter) ToGRPCMessage() grpc.Message {
  1420  	var m *object.SearchRequest_Body_Filter
  1421  
  1422  	if f != nil {
  1423  		m = new(object.SearchRequest_Body_Filter)
  1424  
  1425  		m.SetKey(f.key)
  1426  		m.SetValue(f.val)
  1427  		m.SetMatchType(MatchTypeToGRPCField(f.matchType))
  1428  	}
  1429  
  1430  	return m
  1431  }
  1432  
  1433  func (f *SearchFilter) FromGRPCMessage(m grpc.Message) error {
  1434  	v, ok := m.(*object.SearchRequest_Body_Filter)
  1435  	if !ok {
  1436  		return message.NewUnexpectedMessageType(m, v)
  1437  	}
  1438  
  1439  	f.key = v.GetKey()
  1440  	f.val = v.GetValue()
  1441  	f.matchType = MatchTypeFromGRPCField(v.GetMatchType())
  1442  
  1443  	return nil
  1444  }
  1445  
  1446  func SearchFiltersToGRPC(fs []SearchFilter) (res []*object.SearchRequest_Body_Filter) {
  1447  	if fs != nil {
  1448  		res = make([]*object.SearchRequest_Body_Filter, 0, len(fs))
  1449  
  1450  		for i := range fs {
  1451  			res = append(res, fs[i].ToGRPCMessage().(*object.SearchRequest_Body_Filter))
  1452  		}
  1453  	}
  1454  
  1455  	return
  1456  }
  1457  
  1458  func SearchFiltersFromGRPC(fs []*object.SearchRequest_Body_Filter) (res []SearchFilter, err error) {
  1459  	if fs != nil {
  1460  		res = make([]SearchFilter, len(fs))
  1461  
  1462  		for i := range fs {
  1463  			if fs[i] != nil {
  1464  				err = res[i].FromGRPCMessage(fs[i])
  1465  				if err != nil {
  1466  					return
  1467  				}
  1468  			}
  1469  		}
  1470  	}
  1471  
  1472  	return
  1473  }
  1474  
  1475  func (r *SearchRequestBody) ToGRPCMessage() grpc.Message {
  1476  	var m *object.SearchRequest_Body
  1477  
  1478  	if r != nil {
  1479  		m = new(object.SearchRequest_Body)
  1480  
  1481  		m.SetContainerId(r.cid.ToGRPCMessage().(*refsGRPC.ContainerID))
  1482  		m.SetFilters(SearchFiltersToGRPC(r.filters))
  1483  		m.SetVersion(r.version)
  1484  	}
  1485  
  1486  	return m
  1487  }
  1488  
  1489  func (r *SearchRequestBody) FromGRPCMessage(m grpc.Message) error {
  1490  	v, ok := m.(*object.SearchRequest_Body)
  1491  	if !ok {
  1492  		return message.NewUnexpectedMessageType(m, v)
  1493  	}
  1494  
  1495  	var err error
  1496  
  1497  	cid := v.GetContainerId()
  1498  	if cid == nil {
  1499  		r.cid = nil
  1500  	} else {
  1501  		if r.cid == nil {
  1502  			r.cid = new(refs.ContainerID)
  1503  		}
  1504  
  1505  		err = r.cid.FromGRPCMessage(cid)
  1506  		if err != nil {
  1507  			return err
  1508  		}
  1509  	}
  1510  
  1511  	r.filters, err = SearchFiltersFromGRPC(v.GetFilters())
  1512  	if err != nil {
  1513  		return err
  1514  	}
  1515  
  1516  	r.version = v.GetVersion()
  1517  
  1518  	return nil
  1519  }
  1520  
  1521  func (r *SearchRequest) ToGRPCMessage() grpc.Message {
  1522  	var m *object.SearchRequest
  1523  
  1524  	if r != nil {
  1525  		m = new(object.SearchRequest)
  1526  
  1527  		m.SetBody(r.body.ToGRPCMessage().(*object.SearchRequest_Body))
  1528  		r.RequestHeaders.ToMessage(m)
  1529  	}
  1530  
  1531  	return m
  1532  }
  1533  
  1534  func (r *SearchRequest) FromGRPCMessage(m grpc.Message) error {
  1535  	v, ok := m.(*object.SearchRequest)
  1536  	if !ok {
  1537  		return message.NewUnexpectedMessageType(m, v)
  1538  	}
  1539  
  1540  	var err error
  1541  
  1542  	body := v.GetBody()
  1543  	if body == nil {
  1544  		r.body = nil
  1545  	} else {
  1546  		if r.body == nil {
  1547  			r.body = new(SearchRequestBody)
  1548  		}
  1549  
  1550  		err = r.body.FromGRPCMessage(body)
  1551  		if err != nil {
  1552  			return err
  1553  		}
  1554  	}
  1555  
  1556  	return r.RequestHeaders.FromMessage(v)
  1557  }
  1558  
  1559  func (r *SearchResponseBody) ToGRPCMessage() grpc.Message {
  1560  	var m *object.SearchResponse_Body
  1561  
  1562  	if r != nil {
  1563  		m = new(object.SearchResponse_Body)
  1564  
  1565  		m.SetIdList(refs.ObjectIDListToGRPCMessage(r.idList))
  1566  	}
  1567  
  1568  	return m
  1569  }
  1570  
  1571  func (r *SearchResponseBody) FromGRPCMessage(m grpc.Message) error {
  1572  	v, ok := m.(*object.SearchResponse_Body)
  1573  	if !ok {
  1574  		return message.NewUnexpectedMessageType(m, v)
  1575  	}
  1576  
  1577  	var err error
  1578  
  1579  	r.idList, err = refs.ObjectIDListFromGRPCMessage(v.GetIdList())
  1580  
  1581  	return err
  1582  }
  1583  
  1584  func (r *SearchResponse) ToGRPCMessage() grpc.Message {
  1585  	var m *object.SearchResponse
  1586  
  1587  	if r != nil {
  1588  		m = new(object.SearchResponse)
  1589  
  1590  		m.SetBody(r.body.ToGRPCMessage().(*object.SearchResponse_Body))
  1591  		r.ResponseHeaders.ToMessage(m)
  1592  	}
  1593  
  1594  	return m
  1595  }
  1596  
  1597  func (r *SearchResponse) FromGRPCMessage(m grpc.Message) error {
  1598  	v, ok := m.(*object.SearchResponse)
  1599  	if !ok {
  1600  		return message.NewUnexpectedMessageType(m, v)
  1601  	}
  1602  
  1603  	var err error
  1604  
  1605  	body := v.GetBody()
  1606  	if body == nil {
  1607  		r.body = nil
  1608  	} else {
  1609  		if r.body == nil {
  1610  			r.body = new(SearchResponseBody)
  1611  		}
  1612  
  1613  		err = r.body.FromGRPCMessage(body)
  1614  		if err != nil {
  1615  			return err
  1616  		}
  1617  	}
  1618  
  1619  	return r.ResponseHeaders.FromMessage(v)
  1620  }
  1621  
  1622  func (r *Range) ToGRPCMessage() grpc.Message {
  1623  	var m *object.Range
  1624  
  1625  	if r != nil {
  1626  		m = new(object.Range)
  1627  
  1628  		m.SetLength(r.len)
  1629  		m.SetOffset(r.off)
  1630  	}
  1631  
  1632  	return m
  1633  }
  1634  
  1635  func (r *Range) FromGRPCMessage(m grpc.Message) error {
  1636  	v, ok := m.(*object.Range)
  1637  	if !ok {
  1638  		return message.NewUnexpectedMessageType(m, v)
  1639  	}
  1640  
  1641  	r.len = v.GetLength()
  1642  	r.off = v.GetOffset()
  1643  
  1644  	return nil
  1645  }
  1646  
  1647  func RangesToGRPC(rs []Range) (res []*object.Range) {
  1648  	if rs != nil {
  1649  		res = make([]*object.Range, 0, len(rs))
  1650  
  1651  		for i := range rs {
  1652  			res = append(res, rs[i].ToGRPCMessage().(*object.Range))
  1653  		}
  1654  	}
  1655  
  1656  	return
  1657  }
  1658  
  1659  func RangesFromGRPC(rs []*object.Range) (res []Range, err error) {
  1660  	if rs != nil {
  1661  		res = make([]Range, len(rs))
  1662  
  1663  		for i := range rs {
  1664  			if rs[i] != nil {
  1665  				err = res[i].FromGRPCMessage(rs[i])
  1666  				if err != nil {
  1667  					return
  1668  				}
  1669  			}
  1670  		}
  1671  	}
  1672  
  1673  	return
  1674  }
  1675  
  1676  func (r *GetRangeRequestBody) ToGRPCMessage() grpc.Message {
  1677  	var m *object.GetRangeRequest_Body
  1678  
  1679  	if r != nil {
  1680  		m = new(object.GetRangeRequest_Body)
  1681  
  1682  		m.SetAddress(r.addr.ToGRPCMessage().(*refsGRPC.Address))
  1683  		m.SetRange(r.rng.ToGRPCMessage().(*object.Range))
  1684  		m.SetRaw(r.raw)
  1685  	}
  1686  
  1687  	return m
  1688  }
  1689  
  1690  func (r *GetRangeRequestBody) FromGRPCMessage(m grpc.Message) error {
  1691  	v, ok := m.(*object.GetRangeRequest_Body)
  1692  	if !ok {
  1693  		return message.NewUnexpectedMessageType(m, v)
  1694  	}
  1695  
  1696  	var err error
  1697  
  1698  	addr := v.GetAddress()
  1699  	if addr == nil {
  1700  		r.addr = nil
  1701  	} else {
  1702  		if r.addr == nil {
  1703  			r.addr = new(refs.Address)
  1704  		}
  1705  
  1706  		err = r.addr.FromGRPCMessage(addr)
  1707  		if err != nil {
  1708  			return err
  1709  		}
  1710  	}
  1711  
  1712  	rng := v.GetRange()
  1713  	if rng == nil {
  1714  		r.rng = nil
  1715  	} else {
  1716  		if r.rng == nil {
  1717  			r.rng = new(Range)
  1718  		}
  1719  
  1720  		err = r.rng.FromGRPCMessage(rng)
  1721  		if err != nil {
  1722  			return err
  1723  		}
  1724  	}
  1725  
  1726  	r.raw = v.GetRaw()
  1727  
  1728  	return nil
  1729  }
  1730  
  1731  func (r *GetRangeRequest) ToGRPCMessage() grpc.Message {
  1732  	var m *object.GetRangeRequest
  1733  
  1734  	if r != nil {
  1735  		m = new(object.GetRangeRequest)
  1736  
  1737  		m.SetBody(r.body.ToGRPCMessage().(*object.GetRangeRequest_Body))
  1738  		r.RequestHeaders.ToMessage(m)
  1739  	}
  1740  
  1741  	return m
  1742  }
  1743  
  1744  func (r *GetRangeRequest) FromGRPCMessage(m grpc.Message) error {
  1745  	v, ok := m.(*object.GetRangeRequest)
  1746  	if !ok {
  1747  		return message.NewUnexpectedMessageType(m, v)
  1748  	}
  1749  
  1750  	var err error
  1751  
  1752  	body := v.GetBody()
  1753  	if body == nil {
  1754  		r.body = nil
  1755  	} else {
  1756  		if r.body == nil {
  1757  			r.body = new(GetRangeRequestBody)
  1758  		}
  1759  
  1760  		err = r.body.FromGRPCMessage(body)
  1761  		if err != nil {
  1762  			return err
  1763  		}
  1764  	}
  1765  
  1766  	return r.RequestHeaders.FromMessage(v)
  1767  }
  1768  
  1769  func (r *GetRangePartChunk) ToGRPCMessage() grpc.Message {
  1770  	var m *object.GetRangeResponse_Body_Chunk
  1771  
  1772  	if r != nil {
  1773  		m = new(object.GetRangeResponse_Body_Chunk)
  1774  
  1775  		m.SetChunk(r.chunk)
  1776  	}
  1777  
  1778  	return m
  1779  }
  1780  
  1781  func (r *GetRangePartChunk) FromGRPCMessage(m grpc.Message) error {
  1782  	v, ok := m.(*object.GetRangeResponse_Body_Chunk)
  1783  	if !ok {
  1784  		return message.NewUnexpectedMessageType(m, v)
  1785  	}
  1786  
  1787  	r.chunk = v.GetChunk()
  1788  
  1789  	return nil
  1790  }
  1791  
  1792  func (r *GetRangeResponseBody) ToGRPCMessage() grpc.Message {
  1793  	var m *object.GetRangeResponse_Body
  1794  
  1795  	if r != nil {
  1796  		m = new(object.GetRangeResponse_Body)
  1797  
  1798  		switch v := r.rngPart.(type) {
  1799  		case nil:
  1800  			m.RangePart = nil
  1801  		case *GetRangePartChunk:
  1802  			m.SetChunk(v.ToGRPCMessage().(*object.GetRangeResponse_Body_Chunk))
  1803  		case *SplitInfo:
  1804  			m.SetSplitInfo(v.ToGRPCMessage().(*object.SplitInfo))
  1805  		default:
  1806  			panic(fmt.Sprintf("unknown get range part %T", v))
  1807  		}
  1808  	}
  1809  
  1810  	return m
  1811  }
  1812  
  1813  func (r *GetRangeResponseBody) FromGRPCMessage(m grpc.Message) error {
  1814  	v, ok := m.(*object.GetRangeResponse_Body)
  1815  	if !ok {
  1816  		return message.NewUnexpectedMessageType(m, v)
  1817  	}
  1818  
  1819  	var err error
  1820  
  1821  	r.rngPart = nil
  1822  
  1823  	switch pt := v.GetRangePart().(type) {
  1824  	case nil:
  1825  	case *object.GetRangeResponse_Body_Chunk:
  1826  		if pt != nil {
  1827  			partChunk := new(GetRangePartChunk)
  1828  			r.rngPart = partChunk
  1829  			err = partChunk.FromGRPCMessage(pt)
  1830  		}
  1831  	case *object.GetRangeResponse_Body_SplitInfo:
  1832  		if pt != nil {
  1833  			partSplit := new(SplitInfo)
  1834  			r.rngPart = partSplit
  1835  			err = partSplit.FromGRPCMessage(pt.SplitInfo)
  1836  		}
  1837  	default:
  1838  		err = fmt.Errorf("unknown get range part %T", pt)
  1839  	}
  1840  
  1841  	return err
  1842  }
  1843  
  1844  func (r *GetRangeResponse) ToGRPCMessage() grpc.Message {
  1845  	var m *object.GetRangeResponse
  1846  
  1847  	if r != nil {
  1848  		m = new(object.GetRangeResponse)
  1849  
  1850  		m.SetBody(r.body.ToGRPCMessage().(*object.GetRangeResponse_Body))
  1851  		r.ResponseHeaders.ToMessage(m)
  1852  	}
  1853  
  1854  	return m
  1855  }
  1856  
  1857  func (r *GetRangeResponse) FromGRPCMessage(m grpc.Message) error {
  1858  	v, ok := m.(*object.GetRangeResponse)
  1859  	if !ok {
  1860  		return message.NewUnexpectedMessageType(m, v)
  1861  	}
  1862  
  1863  	var err error
  1864  
  1865  	body := v.GetBody()
  1866  	if body == nil {
  1867  		r.body = nil
  1868  	} else {
  1869  		if r.body == nil {
  1870  			r.body = new(GetRangeResponseBody)
  1871  		}
  1872  
  1873  		err = r.body.FromGRPCMessage(body)
  1874  		if err != nil {
  1875  			return err
  1876  		}
  1877  	}
  1878  
  1879  	return r.ResponseHeaders.FromMessage(v)
  1880  }
  1881  
  1882  func (r *GetRangeHashRequestBody) ToGRPCMessage() grpc.Message {
  1883  	var m *object.GetRangeHashRequest_Body
  1884  
  1885  	if r != nil {
  1886  		m = new(object.GetRangeHashRequest_Body)
  1887  
  1888  		m.SetAddress(r.addr.ToGRPCMessage().(*refsGRPC.Address))
  1889  		m.SetRanges(RangesToGRPC(r.rngs))
  1890  		m.SetType(refs.ChecksumTypeToGRPC(r.typ))
  1891  		m.SetSalt(r.salt)
  1892  	}
  1893  
  1894  	return m
  1895  }
  1896  
  1897  func (r *GetRangeHashRequestBody) FromGRPCMessage(m grpc.Message) error {
  1898  	v, ok := m.(*object.GetRangeHashRequest_Body)
  1899  	if !ok {
  1900  		return message.NewUnexpectedMessageType(m, v)
  1901  	}
  1902  
  1903  	var err error
  1904  
  1905  	addr := v.GetAddress()
  1906  	if addr == nil {
  1907  		r.addr = nil
  1908  	} else {
  1909  		if r.addr == nil {
  1910  			r.addr = new(refs.Address)
  1911  		}
  1912  
  1913  		err = r.addr.FromGRPCMessage(addr)
  1914  		if err != nil {
  1915  			return err
  1916  		}
  1917  	}
  1918  
  1919  	r.rngs, err = RangesFromGRPC(v.GetRanges())
  1920  	if err != nil {
  1921  		return err
  1922  	}
  1923  
  1924  	r.typ = refs.ChecksumTypeFromGRPC(v.GetType())
  1925  	r.salt = v.GetSalt()
  1926  
  1927  	return nil
  1928  }
  1929  
  1930  func (r *GetRangeHashRequest) ToGRPCMessage() grpc.Message {
  1931  	var m *object.GetRangeHashRequest
  1932  
  1933  	if r != nil {
  1934  		m = new(object.GetRangeHashRequest)
  1935  
  1936  		m.SetBody(r.body.ToGRPCMessage().(*object.GetRangeHashRequest_Body))
  1937  		r.RequestHeaders.ToMessage(m)
  1938  	}
  1939  
  1940  	return m
  1941  }
  1942  
  1943  func (r *GetRangeHashRequest) FromGRPCMessage(m grpc.Message) error {
  1944  	v, ok := m.(*object.GetRangeHashRequest)
  1945  	if !ok {
  1946  		return message.NewUnexpectedMessageType(m, v)
  1947  	}
  1948  
  1949  	var err error
  1950  
  1951  	body := v.GetBody()
  1952  	if body == nil {
  1953  		r.body = nil
  1954  	} else {
  1955  		if r.body == nil {
  1956  			r.body = new(GetRangeHashRequestBody)
  1957  		}
  1958  
  1959  		err = r.body.FromGRPCMessage(body)
  1960  		if err != nil {
  1961  			return err
  1962  		}
  1963  	}
  1964  
  1965  	return r.RequestHeaders.FromMessage(v)
  1966  }
  1967  
  1968  func (r *GetRangeHashResponseBody) ToGRPCMessage() grpc.Message {
  1969  	var m *object.GetRangeHashResponse_Body
  1970  
  1971  	if r != nil {
  1972  		m = new(object.GetRangeHashResponse_Body)
  1973  
  1974  		m.SetType(refs.ChecksumTypeToGRPC(r.typ))
  1975  		m.SetHashList(r.hashList)
  1976  	}
  1977  
  1978  	return m
  1979  }
  1980  
  1981  func (r *GetRangeHashResponseBody) FromGRPCMessage(m grpc.Message) error {
  1982  	v, ok := m.(*object.GetRangeHashResponse_Body)
  1983  	if !ok {
  1984  		return message.NewUnexpectedMessageType(m, v)
  1985  	}
  1986  
  1987  	r.typ = refs.ChecksumTypeFromGRPC(v.GetType())
  1988  	r.hashList = v.GetHashList()
  1989  
  1990  	return nil
  1991  }
  1992  
  1993  func (r *GetRangeHashResponse) ToGRPCMessage() grpc.Message {
  1994  	var m *object.GetRangeHashResponse
  1995  
  1996  	if r != nil {
  1997  		m = new(object.GetRangeHashResponse)
  1998  
  1999  		m.SetBody(r.body.ToGRPCMessage().(*object.GetRangeHashResponse_Body))
  2000  		r.ResponseHeaders.ToMessage(m)
  2001  	}
  2002  
  2003  	return m
  2004  }
  2005  
  2006  func (r *GetRangeHashResponse) FromGRPCMessage(m grpc.Message) error {
  2007  	v, ok := m.(*object.GetRangeHashResponse)
  2008  	if !ok {
  2009  		return message.NewUnexpectedMessageType(m, v)
  2010  	}
  2011  
  2012  	var err error
  2013  
  2014  	body := v.GetBody()
  2015  	if body == nil {
  2016  		r.body = nil
  2017  	} else {
  2018  		if r.body == nil {
  2019  			r.body = new(GetRangeHashResponseBody)
  2020  		}
  2021  
  2022  		err = r.body.FromGRPCMessage(body)
  2023  		if err != nil {
  2024  			return err
  2025  		}
  2026  	}
  2027  
  2028  	return r.ResponseHeaders.FromMessage(v)
  2029  }