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

     1  package session
     2  
     3  import (
     4  	session "github.com/TrueCloudLab/frostfs-api-go/v2/session/grpc"
     5  )
     6  
     7  // RequestHeaders represents common part of
     8  // all NeoFS requests including headers.
     9  type RequestHeaders struct {
    10  	metaHeader *RequestMetaHeader
    11  
    12  	verifyHeader *RequestVerificationHeader
    13  }
    14  
    15  // GetMetaHeader returns meta header of the request.
    16  func (c *RequestHeaders) GetMetaHeader() *RequestMetaHeader {
    17  	if c != nil {
    18  		return c.metaHeader
    19  	}
    20  
    21  	return nil
    22  }
    23  
    24  // SetMetaHeader sets meta header of the request.
    25  func (c *RequestHeaders) SetMetaHeader(v *RequestMetaHeader) {
    26  	c.metaHeader = v
    27  }
    28  
    29  // GetVerificationHeader returns verification header of the request.
    30  func (c *RequestHeaders) GetVerificationHeader() *RequestVerificationHeader {
    31  	if c != nil {
    32  		return c.verifyHeader
    33  	}
    34  
    35  	return nil
    36  }
    37  
    38  // SetVerificationHeader sets verification header of the request.
    39  func (c *RequestHeaders) SetVerificationHeader(v *RequestVerificationHeader) {
    40  	c.verifyHeader = v
    41  }
    42  
    43  func (c *RequestHeaders) ToMessage(m interface {
    44  	SetMetaHeader(*session.RequestMetaHeader)
    45  	SetVerifyHeader(*session.RequestVerificationHeader)
    46  }) {
    47  	m.SetMetaHeader(c.metaHeader.ToGRPCMessage().(*session.RequestMetaHeader))
    48  	m.SetVerifyHeader(c.verifyHeader.ToGRPCMessage().(*session.RequestVerificationHeader))
    49  }
    50  
    51  func (c *RequestHeaders) FromMessage(m interface {
    52  	GetMetaHeader() *session.RequestMetaHeader
    53  	GetVerifyHeader() *session.RequestVerificationHeader
    54  }) error {
    55  	metaHdr := m.GetMetaHeader()
    56  	if metaHdr == nil {
    57  		c.metaHeader = nil
    58  	} else {
    59  		if c.metaHeader == nil {
    60  			c.metaHeader = new(RequestMetaHeader)
    61  		}
    62  
    63  		err := c.metaHeader.FromGRPCMessage(metaHdr)
    64  		if err != nil {
    65  			return err
    66  		}
    67  	}
    68  
    69  	verifyHdr := m.GetVerifyHeader()
    70  	if verifyHdr == nil {
    71  		c.verifyHeader = nil
    72  	} else {
    73  		if c.verifyHeader == nil {
    74  			c.verifyHeader = new(RequestVerificationHeader)
    75  		}
    76  
    77  		err := c.verifyHeader.FromGRPCMessage(verifyHdr)
    78  		if err != nil {
    79  			return err
    80  		}
    81  	}
    82  
    83  	return nil
    84  }
    85  
    86  // ResponseHeaders represents common part of
    87  // all NeoFS responses including headers.
    88  type ResponseHeaders struct {
    89  	metaHeader *ResponseMetaHeader
    90  
    91  	verifyHeader *ResponseVerificationHeader
    92  }
    93  
    94  // GetMetaHeader returns meta header of the response.
    95  func (c *ResponseHeaders) GetMetaHeader() *ResponseMetaHeader {
    96  	if c != nil {
    97  		return c.metaHeader
    98  	}
    99  
   100  	return nil
   101  }
   102  
   103  // SetMetaHeader sets meta header of the response.
   104  func (c *ResponseHeaders) SetMetaHeader(v *ResponseMetaHeader) {
   105  	c.metaHeader = v
   106  }
   107  
   108  // GetVerificationHeader returns verification header of the response.
   109  func (c *ResponseHeaders) GetVerificationHeader() *ResponseVerificationHeader {
   110  	if c != nil {
   111  		return c.verifyHeader
   112  	}
   113  
   114  	return nil
   115  }
   116  
   117  // SetVerificationHeader sets verification header of the response.
   118  func (c *ResponseHeaders) SetVerificationHeader(v *ResponseVerificationHeader) {
   119  	c.verifyHeader = v
   120  }
   121  
   122  func (c *ResponseHeaders) ToMessage(m interface {
   123  	SetMetaHeader(*session.ResponseMetaHeader)
   124  	SetVerifyHeader(*session.ResponseVerificationHeader)
   125  }) {
   126  	m.SetMetaHeader(c.metaHeader.ToGRPCMessage().(*session.ResponseMetaHeader))
   127  	m.SetVerifyHeader(c.verifyHeader.ToGRPCMessage().(*session.ResponseVerificationHeader))
   128  }
   129  
   130  func (c *ResponseHeaders) FromMessage(m interface {
   131  	GetMetaHeader() *session.ResponseMetaHeader
   132  	GetVerifyHeader() *session.ResponseVerificationHeader
   133  }) error {
   134  	metaHdr := m.GetMetaHeader()
   135  	if metaHdr == nil {
   136  		c.metaHeader = nil
   137  	} else {
   138  		if c.metaHeader == nil {
   139  			c.metaHeader = new(ResponseMetaHeader)
   140  		}
   141  
   142  		err := c.metaHeader.FromGRPCMessage(metaHdr)
   143  		if err != nil {
   144  			return err
   145  		}
   146  	}
   147  
   148  	verifyHdr := m.GetVerifyHeader()
   149  	if verifyHdr == nil {
   150  		c.verifyHeader = nil
   151  	} else {
   152  		if c.verifyHeader == nil {
   153  			c.verifyHeader = new(ResponseVerificationHeader)
   154  		}
   155  
   156  		err := c.verifyHeader.FromGRPCMessage(verifyHdr)
   157  		if err != nil {
   158  			return err
   159  		}
   160  	}
   161  
   162  	return nil
   163  }