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

     1  package refs
     2  
     3  import (
     4  	refs "github.com/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
     5  	"github.com/TrueCloudLab/frostfs-api-go/v2/rpc/grpc"
     6  	"github.com/TrueCloudLab/frostfs-api-go/v2/rpc/message"
     7  )
     8  
     9  func (o *OwnerID) ToGRPCMessage() grpc.Message {
    10  	var m *refs.OwnerID
    11  
    12  	if o != nil {
    13  		m = new(refs.OwnerID)
    14  
    15  		m.SetValue(o.val)
    16  	}
    17  
    18  	return m
    19  }
    20  
    21  func (o *OwnerID) FromGRPCMessage(m grpc.Message) error {
    22  	v, ok := m.(*refs.OwnerID)
    23  	if !ok {
    24  		return message.NewUnexpectedMessageType(m, v)
    25  	}
    26  
    27  	o.val = v.GetValue()
    28  
    29  	return nil
    30  }
    31  
    32  func (c *ContainerID) ToGRPCMessage() grpc.Message {
    33  	var m *refs.ContainerID
    34  
    35  	if c != nil {
    36  		m = new(refs.ContainerID)
    37  
    38  		m.SetValue(c.val)
    39  	}
    40  
    41  	return m
    42  }
    43  
    44  func (c *ContainerID) FromGRPCMessage(m grpc.Message) error {
    45  	v, ok := m.(*refs.ContainerID)
    46  	if !ok {
    47  		return message.NewUnexpectedMessageType(m, v)
    48  	}
    49  
    50  	c.val = v.GetValue()
    51  
    52  	return nil
    53  }
    54  
    55  func ContainerIDsToGRPCMessage(ids []ContainerID) (res []*refs.ContainerID) {
    56  	if ids != nil {
    57  		res = make([]*refs.ContainerID, 0, len(ids))
    58  
    59  		for i := range ids {
    60  			res = append(res, ids[i].ToGRPCMessage().(*refs.ContainerID))
    61  		}
    62  	}
    63  
    64  	return
    65  }
    66  
    67  func ContainerIDsFromGRPCMessage(idsV2 []*refs.ContainerID) (res []ContainerID, err error) {
    68  	if idsV2 != nil {
    69  		res = make([]ContainerID, len(idsV2))
    70  
    71  		for i := range idsV2 {
    72  			if idsV2[i] != nil {
    73  				err = res[i].FromGRPCMessage(idsV2[i])
    74  				if err != nil {
    75  					return
    76  				}
    77  			}
    78  		}
    79  	}
    80  
    81  	return
    82  }
    83  
    84  func (o *ObjectID) ToGRPCMessage() grpc.Message {
    85  	var m *refs.ObjectID
    86  
    87  	if o != nil {
    88  		m = new(refs.ObjectID)
    89  
    90  		m.SetValue(o.val)
    91  	}
    92  
    93  	return m
    94  }
    95  
    96  func (o *ObjectID) FromGRPCMessage(m grpc.Message) error {
    97  	v, ok := m.(*refs.ObjectID)
    98  	if !ok {
    99  		return message.NewUnexpectedMessageType(m, v)
   100  	}
   101  
   102  	o.val = v.GetValue()
   103  
   104  	return nil
   105  }
   106  
   107  func ObjectIDListToGRPCMessage(ids []ObjectID) (res []*refs.ObjectID) {
   108  	if ids != nil {
   109  		res = make([]*refs.ObjectID, 0, len(ids))
   110  
   111  		for i := range ids {
   112  			res = append(res, ids[i].ToGRPCMessage().(*refs.ObjectID))
   113  		}
   114  	}
   115  
   116  	return
   117  }
   118  
   119  func ObjectIDListFromGRPCMessage(idsV2 []*refs.ObjectID) (res []ObjectID, err error) {
   120  	if idsV2 != nil {
   121  		res = make([]ObjectID, len(idsV2))
   122  
   123  		for i := range idsV2 {
   124  			if idsV2[i] != nil {
   125  				err = res[i].FromGRPCMessage(idsV2[i])
   126  				if err != nil {
   127  					return
   128  				}
   129  			}
   130  		}
   131  	}
   132  
   133  	return
   134  }
   135  
   136  func (a *Address) ToGRPCMessage() grpc.Message {
   137  	var m *refs.Address
   138  
   139  	if a != nil {
   140  		m = new(refs.Address)
   141  
   142  		m.SetContainerId(a.cid.ToGRPCMessage().(*refs.ContainerID))
   143  		m.SetObjectId(a.oid.ToGRPCMessage().(*refs.ObjectID))
   144  	}
   145  
   146  	return m
   147  }
   148  
   149  func (a *Address) FromGRPCMessage(m grpc.Message) error {
   150  	v, ok := m.(*refs.Address)
   151  	if !ok {
   152  		return message.NewUnexpectedMessageType(m, v)
   153  	}
   154  
   155  	var err error
   156  
   157  	cid := v.GetContainerId()
   158  	if cid == nil {
   159  		a.cid = nil
   160  	} else {
   161  		if a.cid == nil {
   162  			a.cid = new(ContainerID)
   163  		}
   164  
   165  		err = a.cid.FromGRPCMessage(cid)
   166  		if err != nil {
   167  			return err
   168  		}
   169  	}
   170  
   171  	oid := v.GetObjectId()
   172  	if oid == nil {
   173  		a.oid = nil
   174  	} else {
   175  		if a.oid == nil {
   176  			a.oid = new(ObjectID)
   177  		}
   178  
   179  		err = a.oid.FromGRPCMessage(oid)
   180  	}
   181  
   182  	return err
   183  }
   184  
   185  func ChecksumTypeToGRPC(t ChecksumType) refs.ChecksumType {
   186  	return refs.ChecksumType(t)
   187  }
   188  
   189  func ChecksumTypeFromGRPC(t refs.ChecksumType) ChecksumType {
   190  	return ChecksumType(t)
   191  }
   192  
   193  func (c *Checksum) ToGRPCMessage() grpc.Message {
   194  	var m *refs.Checksum
   195  
   196  	if c != nil {
   197  		m = new(refs.Checksum)
   198  
   199  		m.SetChecksumType(ChecksumTypeToGRPC(c.typ))
   200  		m.SetSum(c.sum)
   201  	}
   202  
   203  	return m
   204  }
   205  
   206  func (c *Checksum) FromGRPCMessage(m grpc.Message) error {
   207  	v, ok := m.(*refs.Checksum)
   208  	if !ok {
   209  		return message.NewUnexpectedMessageType(m, v)
   210  	}
   211  
   212  	c.typ = ChecksumTypeFromGRPC(v.GetType())
   213  	c.sum = v.GetSum()
   214  
   215  	return nil
   216  }
   217  
   218  func (v *Version) ToGRPCMessage() grpc.Message {
   219  	var m *refs.Version
   220  
   221  	if v != nil {
   222  		m = new(refs.Version)
   223  
   224  		m.SetMajor(v.major)
   225  		m.SetMinor(v.minor)
   226  	}
   227  
   228  	return m
   229  }
   230  
   231  func (v *Version) FromGRPCMessage(m grpc.Message) error {
   232  	ver, ok := m.(*refs.Version)
   233  	if !ok {
   234  		return message.NewUnexpectedMessageType(m, v)
   235  	}
   236  
   237  	v.major = ver.GetMajor()
   238  	v.minor = ver.GetMinor()
   239  
   240  	return nil
   241  }
   242  
   243  func (s *Signature) ToGRPCMessage() grpc.Message {
   244  	var m *refs.Signature
   245  
   246  	if s != nil {
   247  		m = new(refs.Signature)
   248  
   249  		m.SetKey(s.key)
   250  		m.SetSign(s.sign)
   251  		m.SetScheme(refs.SignatureScheme(s.scheme))
   252  	}
   253  
   254  	return m
   255  }
   256  
   257  func (s *Signature) FromGRPCMessage(m grpc.Message) error {
   258  	v, ok := m.(*refs.Signature)
   259  	if !ok {
   260  		return message.NewUnexpectedMessageType(m, s)
   261  	}
   262  
   263  	s.key = v.GetKey()
   264  	s.sign = v.GetSign()
   265  	s.scheme = SignatureScheme(v.GetScheme())
   266  
   267  	return nil
   268  }
   269  
   270  // ToGRPCMessage forms refs.SubnetID message and returns it as grpc.Message.
   271  func (s *SubnetID) ToGRPCMessage() grpc.Message {
   272  	var m *refs.SubnetID
   273  
   274  	if s != nil {
   275  		m = new(refs.SubnetID)
   276  
   277  		m.SetValue(s.value)
   278  	}
   279  
   280  	return m
   281  }
   282  
   283  // FromGRPCMessage restores Info from grpc.Message.
   284  //
   285  // Supported types:
   286  //   - refs.SubnetID.
   287  func (s *SubnetID) FromGRPCMessage(m grpc.Message) error {
   288  	v, ok := m.(*refs.SubnetID)
   289  	if !ok {
   290  		return message.NewUnexpectedMessageType(m, v)
   291  	}
   292  
   293  	s.value = v.GetValue()
   294  
   295  	return nil
   296  }