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 }