debug_protocol.go 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. /*
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements. See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership. The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License. You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing,
  13. * software distributed under the License is distributed on an
  14. * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  15. * KIND, either express or implied. See the License for the
  16. * specific language governing permissions and limitations
  17. * under the License.
  18. */
  19. package thrift
  20. import (
  21. "log"
  22. )
  23. type TDebugProtocol struct {
  24. Delegate TProtocol
  25. LogPrefix string
  26. }
  27. type TDebugProtocolFactory struct {
  28. Underlying TProtocolFactory
  29. LogPrefix string
  30. }
  31. func NewTDebugProtocolFactory(underlying TProtocolFactory, logPrefix string) *TDebugProtocolFactory {
  32. return &TDebugProtocolFactory{
  33. Underlying: underlying,
  34. LogPrefix: logPrefix,
  35. }
  36. }
  37. func (t *TDebugProtocolFactory) GetProtocol(trans TTransport) TProtocol {
  38. return &TDebugProtocol{
  39. Delegate: t.Underlying.GetProtocol(trans),
  40. LogPrefix: t.LogPrefix,
  41. }
  42. }
  43. func (tdp *TDebugProtocol) WriteMessageBegin(name string, typeId TMessageType, seqid int32) error {
  44. err := tdp.Delegate.WriteMessageBegin(name, typeId, seqid)
  45. log.Printf("%sWriteMessageBegin(name=%#v, typeId=%#v, seqid=%#v) => %#v", tdp.LogPrefix, name, typeId, seqid, err)
  46. return err
  47. }
  48. func (tdp *TDebugProtocol) WriteMessageEnd() error {
  49. err := tdp.Delegate.WriteMessageEnd()
  50. log.Printf("%sWriteMessageEnd() => %#v", tdp.LogPrefix, err)
  51. return err
  52. }
  53. func (tdp *TDebugProtocol) WriteStructBegin(name string) error {
  54. err := tdp.Delegate.WriteStructBegin(name)
  55. log.Printf("%sWriteStructBegin(name=%#v) => %#v", tdp.LogPrefix, name, err)
  56. return err
  57. }
  58. func (tdp *TDebugProtocol) WriteStructEnd() error {
  59. err := tdp.Delegate.WriteStructEnd()
  60. log.Printf("%sWriteStructEnd() => %#v", tdp.LogPrefix, err)
  61. return err
  62. }
  63. func (tdp *TDebugProtocol) WriteFieldBegin(name string, typeId TType, id int16) error {
  64. err := tdp.Delegate.WriteFieldBegin(name, typeId, id)
  65. log.Printf("%sWriteFieldBegin(name=%#v, typeId=%#v, id%#v) => %#v", tdp.LogPrefix, name, typeId, id, err)
  66. return err
  67. }
  68. func (tdp *TDebugProtocol) WriteFieldEnd() error {
  69. err := tdp.Delegate.WriteFieldEnd()
  70. log.Printf("%sWriteFieldEnd() => %#v", tdp.LogPrefix, err)
  71. return err
  72. }
  73. func (tdp *TDebugProtocol) WriteFieldStop() error {
  74. err := tdp.Delegate.WriteFieldStop()
  75. log.Printf("%sWriteFieldStop() => %#v", tdp.LogPrefix, err)
  76. return err
  77. }
  78. func (tdp *TDebugProtocol) WriteMapBegin(keyType TType, valueType TType, size int) error {
  79. err := tdp.Delegate.WriteMapBegin(keyType, valueType, size)
  80. log.Printf("%sWriteMapBegin(keyType=%#v, valueType=%#v, size=%#v) => %#v", tdp.LogPrefix, keyType, valueType, size, err)
  81. return err
  82. }
  83. func (tdp *TDebugProtocol) WriteMapEnd() error {
  84. err := tdp.Delegate.WriteMapEnd()
  85. log.Printf("%sWriteMapEnd() => %#v", tdp.LogPrefix, err)
  86. return err
  87. }
  88. func (tdp *TDebugProtocol) WriteListBegin(elemType TType, size int) error {
  89. err := tdp.Delegate.WriteListBegin(elemType, size)
  90. log.Printf("%sWriteListBegin(elemType=%#v, size=%#v) => %#v", tdp.LogPrefix, elemType, size, err)
  91. return err
  92. }
  93. func (tdp *TDebugProtocol) WriteListEnd() error {
  94. err := tdp.Delegate.WriteListEnd()
  95. log.Printf("%sWriteListEnd() => %#v", tdp.LogPrefix, err)
  96. return err
  97. }
  98. func (tdp *TDebugProtocol) WriteSetBegin(elemType TType, size int) error {
  99. err := tdp.Delegate.WriteSetBegin(elemType, size)
  100. log.Printf("%sWriteSetBegin(elemType=%#v, size=%#v) => %#v", tdp.LogPrefix, elemType, size, err)
  101. return err
  102. }
  103. func (tdp *TDebugProtocol) WriteSetEnd() error {
  104. err := tdp.Delegate.WriteSetEnd()
  105. log.Printf("%sWriteSetEnd() => %#v", tdp.LogPrefix, err)
  106. return err
  107. }
  108. func (tdp *TDebugProtocol) WriteBool(value bool) error {
  109. err := tdp.Delegate.WriteBool(value)
  110. log.Printf("%sWriteBool(value=%#v) => %#v", tdp.LogPrefix, value, err)
  111. return err
  112. }
  113. func (tdp *TDebugProtocol) WriteByte(value int8) error {
  114. err := tdp.Delegate.WriteByte(value)
  115. log.Printf("%sWriteByte(value=%#v) => %#v", tdp.LogPrefix, value, err)
  116. return err
  117. }
  118. func (tdp *TDebugProtocol) WriteI16(value int16) error {
  119. err := tdp.Delegate.WriteI16(value)
  120. log.Printf("%sWriteI16(value=%#v) => %#v", tdp.LogPrefix, value, err)
  121. return err
  122. }
  123. func (tdp *TDebugProtocol) WriteI32(value int32) error {
  124. err := tdp.Delegate.WriteI32(value)
  125. log.Printf("%sWriteI32(value=%#v) => %#v", tdp.LogPrefix, value, err)
  126. return err
  127. }
  128. func (tdp *TDebugProtocol) WriteI64(value int64) error {
  129. err := tdp.Delegate.WriteI64(value)
  130. log.Printf("%sWriteI64(value=%#v) => %#v", tdp.LogPrefix, value, err)
  131. return err
  132. }
  133. func (tdp *TDebugProtocol) WriteDouble(value float64) error {
  134. err := tdp.Delegate.WriteDouble(value)
  135. log.Printf("%sWriteDouble(value=%#v) => %#v", tdp.LogPrefix, value, err)
  136. return err
  137. }
  138. func (tdp *TDebugProtocol) WriteString(value string) error {
  139. err := tdp.Delegate.WriteString(value)
  140. log.Printf("%sWriteString(value=%#v) => %#v", tdp.LogPrefix, value, err)
  141. return err
  142. }
  143. func (tdp *TDebugProtocol) WriteBinary(value []byte) error {
  144. err := tdp.Delegate.WriteBinary(value)
  145. log.Printf("%sWriteBinary(value=%#v) => %#v", tdp.LogPrefix, value, err)
  146. return err
  147. }
  148. func (tdp *TDebugProtocol) ReadMessageBegin() (name string, typeId TMessageType, seqid int32, err error) {
  149. name, typeId, seqid, err = tdp.Delegate.ReadMessageBegin()
  150. log.Printf("%sReadMessageBegin() (name=%#v, typeId=%#v, seqid=%#v, err=%#v)", tdp.LogPrefix, name, typeId, seqid, err)
  151. return
  152. }
  153. func (tdp *TDebugProtocol) ReadMessageEnd() (err error) {
  154. err = tdp.Delegate.ReadMessageEnd()
  155. log.Printf("%sReadMessageEnd() err=%#v", tdp.LogPrefix, err)
  156. return
  157. }
  158. func (tdp *TDebugProtocol) ReadStructBegin() (name string, err error) {
  159. name, err = tdp.Delegate.ReadStructBegin()
  160. log.Printf("%sReadStructBegin() (name%#v, err=%#v)", tdp.LogPrefix, name, err)
  161. return
  162. }
  163. func (tdp *TDebugProtocol) ReadStructEnd() (err error) {
  164. err = tdp.Delegate.ReadStructEnd()
  165. log.Printf("%sReadStructEnd() err=%#v", tdp.LogPrefix, err)
  166. return
  167. }
  168. func (tdp *TDebugProtocol) ReadFieldBegin() (name string, typeId TType, id int16, err error) {
  169. name, typeId, id, err = tdp.Delegate.ReadFieldBegin()
  170. log.Printf("%sReadFieldBegin() (name=%#v, typeId=%#v, id=%#v, err=%#v)", tdp.LogPrefix, name, typeId, id, err)
  171. return
  172. }
  173. func (tdp *TDebugProtocol) ReadFieldEnd() (err error) {
  174. err = tdp.Delegate.ReadFieldEnd()
  175. log.Printf("%sReadFieldEnd() err=%#v", tdp.LogPrefix, err)
  176. return
  177. }
  178. func (tdp *TDebugProtocol) ReadMapBegin() (keyType TType, valueType TType, size int, err error) {
  179. keyType, valueType, size, err = tdp.Delegate.ReadMapBegin()
  180. log.Printf("%sReadMapBegin() (keyType=%#v, valueType=%#v, size=%#v, err=%#v)", tdp.LogPrefix, keyType, valueType, size, err)
  181. return
  182. }
  183. func (tdp *TDebugProtocol) ReadMapEnd() (err error) {
  184. err = tdp.Delegate.ReadMapEnd()
  185. log.Printf("%sReadMapEnd() err=%#v", tdp.LogPrefix, err)
  186. return
  187. }
  188. func (tdp *TDebugProtocol) ReadListBegin() (elemType TType, size int, err error) {
  189. elemType, size, err = tdp.Delegate.ReadListBegin()
  190. log.Printf("%sReadListBegin() (elemType=%#v, size=%#v, err=%#v)", tdp.LogPrefix, elemType, size, err)
  191. return
  192. }
  193. func (tdp *TDebugProtocol) ReadListEnd() (err error) {
  194. err = tdp.Delegate.ReadListEnd()
  195. log.Printf("%sReadListEnd() err=%#v", tdp.LogPrefix, err)
  196. return
  197. }
  198. func (tdp *TDebugProtocol) ReadSetBegin() (elemType TType, size int, err error) {
  199. elemType, size, err = tdp.Delegate.ReadSetBegin()
  200. log.Printf("%sReadSetBegin() (elemType=%#v, size=%#v, err=%#v)", tdp.LogPrefix, elemType, size, err)
  201. return
  202. }
  203. func (tdp *TDebugProtocol) ReadSetEnd() (err error) {
  204. err = tdp.Delegate.ReadSetEnd()
  205. log.Printf("%sReadSetEnd() err=%#v", tdp.LogPrefix, err)
  206. return
  207. }
  208. func (tdp *TDebugProtocol) ReadBool() (value bool, err error) {
  209. value, err = tdp.Delegate.ReadBool()
  210. log.Printf("%sReadBool() (value=%#v, err=%#v)", tdp.LogPrefix, value, err)
  211. return
  212. }
  213. func (tdp *TDebugProtocol) ReadByte() (value int8, err error) {
  214. value, err = tdp.Delegate.ReadByte()
  215. log.Printf("%sReadByte() (value=%#v, err=%#v)", tdp.LogPrefix, value, err)
  216. return
  217. }
  218. func (tdp *TDebugProtocol) ReadI16() (value int16, err error) {
  219. value, err = tdp.Delegate.ReadI16()
  220. log.Printf("%sReadI16() (value=%#v, err=%#v)", tdp.LogPrefix, value, err)
  221. return
  222. }
  223. func (tdp *TDebugProtocol) ReadI32() (value int32, err error) {
  224. value, err = tdp.Delegate.ReadI32()
  225. log.Printf("%sReadI32() (value=%#v, err=%#v)", tdp.LogPrefix, value, err)
  226. return
  227. }
  228. func (tdp *TDebugProtocol) ReadI64() (value int64, err error) {
  229. value, err = tdp.Delegate.ReadI64()
  230. log.Printf("%sReadI64() (value=%#v, err=%#v)", tdp.LogPrefix, value, err)
  231. return
  232. }
  233. func (tdp *TDebugProtocol) ReadDouble() (value float64, err error) {
  234. value, err = tdp.Delegate.ReadDouble()
  235. log.Printf("%sReadDouble() (value=%#v, err=%#v)", tdp.LogPrefix, value, err)
  236. return
  237. }
  238. func (tdp *TDebugProtocol) ReadString() (value string, err error) {
  239. value, err = tdp.Delegate.ReadString()
  240. log.Printf("%sReadString() (value=%#v, err=%#v)", tdp.LogPrefix, value, err)
  241. return
  242. }
  243. func (tdp *TDebugProtocol) ReadBinary() (value []byte, err error) {
  244. value, err = tdp.Delegate.ReadBinary()
  245. log.Printf("%sReadBinary() (value=%#v, err=%#v)", tdp.LogPrefix, value, err)
  246. return
  247. }
  248. func (tdp *TDebugProtocol) Skip(fieldType TType) (err error) {
  249. err = tdp.Delegate.Skip(fieldType)
  250. log.Printf("%sSkip(fieldType=%#v) (err=%#v)", tdp.LogPrefix, fieldType, err)
  251. return
  252. }
  253. func (tdp *TDebugProtocol) Flush() (err error) {
  254. err = tdp.Delegate.Flush()
  255. log.Printf("%sFlush() (err=%#v)", tdp.LogPrefix, err)
  256. return
  257. }
  258. func (tdp *TDebugProtocol) Transport() TTransport {
  259. return tdp.Delegate.Transport()
  260. }