github.com/uber-go/tally/v4@v4.1.17/m3/thrift/v2/ttypes.go (about)

     1  // Autogenerated by Thrift Compiler (0.9.3)
     2  // DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
     3  
     4  package v2
     5  
     6  import (
     7  	"bytes"
     8  	"fmt"
     9  	"github.com/uber-go/tally/v4/thirdparty/github.com/apache/thrift/lib/go/thrift"
    10  )
    11  
    12  // (needed to ensure safety because of naive import list construction.)
    13  var _ = thrift.ZERO
    14  var _ = fmt.Printf
    15  var _ = bytes.Equal
    16  
    17  var GoUnusedProtection__ int
    18  
    19  type MetricType int64
    20  
    21  const (
    22  	MetricType_INVALID MetricType = 0
    23  	MetricType_COUNTER MetricType = 1
    24  	MetricType_GAUGE   MetricType = 2
    25  	MetricType_TIMER   MetricType = 3
    26  )
    27  
    28  func (p MetricType) String() string {
    29  	switch p {
    30  	case MetricType_INVALID:
    31  		return "INVALID"
    32  	case MetricType_COUNTER:
    33  		return "COUNTER"
    34  	case MetricType_GAUGE:
    35  		return "GAUGE"
    36  	case MetricType_TIMER:
    37  		return "TIMER"
    38  	}
    39  	return "<UNSET>"
    40  }
    41  
    42  func MetricTypeFromString(s string) (MetricType, error) {
    43  	switch s {
    44  	case "INVALID":
    45  		return MetricType_INVALID, nil
    46  	case "COUNTER":
    47  		return MetricType_COUNTER, nil
    48  	case "GAUGE":
    49  		return MetricType_GAUGE, nil
    50  	case "TIMER":
    51  		return MetricType_TIMER, nil
    52  	}
    53  	return MetricType(0), fmt.Errorf("not a valid MetricType string")
    54  }
    55  
    56  func MetricTypePtr(v MetricType) *MetricType { return &v }
    57  
    58  func (p MetricType) MarshalText() ([]byte, error) {
    59  	return []byte(p.String()), nil
    60  }
    61  
    62  func (p *MetricType) UnmarshalText(text []byte) error {
    63  	q, err := MetricTypeFromString(string(text))
    64  	if err != nil {
    65  		return err
    66  	}
    67  	*p = q
    68  	return nil
    69  }
    70  
    71  // Attributes:
    72  //  - MetricType
    73  //  - Count
    74  //  - Gauge
    75  //  - Timer
    76  type MetricValue struct {
    77  	MetricType MetricType `thrift:"metricType,1,required" json:"metricType"`
    78  	Count      int64      `thrift:"count,2,required" json:"count"`
    79  	Gauge      float64    `thrift:"gauge,3,required" json:"gauge"`
    80  	Timer      int64      `thrift:"timer,4,required" json:"timer"`
    81  }
    82  
    83  func NewMetricValue() *MetricValue {
    84  	return &MetricValue{}
    85  }
    86  
    87  func (p *MetricValue) GetMetricType() MetricType {
    88  	return p.MetricType
    89  }
    90  
    91  func (p *MetricValue) GetCount() int64 {
    92  	return p.Count
    93  }
    94  
    95  func (p *MetricValue) GetGauge() float64 {
    96  	return p.Gauge
    97  }
    98  
    99  func (p *MetricValue) GetTimer() int64 {
   100  	return p.Timer
   101  }
   102  func (p *MetricValue) Read(iprot thrift.TProtocol) error {
   103  	if _, err := iprot.ReadStructBegin(); err != nil {
   104  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
   105  	}
   106  
   107  	var issetMetricType bool = false
   108  	var issetCount bool = false
   109  	var issetGauge bool = false
   110  	var issetTimer bool = false
   111  
   112  	for {
   113  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
   114  		if err != nil {
   115  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
   116  		}
   117  		if fieldTypeId == thrift.STOP {
   118  			break
   119  		}
   120  		switch fieldId {
   121  		case 1:
   122  			if err := p.readField1(iprot); err != nil {
   123  				return err
   124  			}
   125  			issetMetricType = true
   126  		case 2:
   127  			if err := p.readField2(iprot); err != nil {
   128  				return err
   129  			}
   130  			issetCount = true
   131  		case 3:
   132  			if err := p.readField3(iprot); err != nil {
   133  				return err
   134  			}
   135  			issetGauge = true
   136  		case 4:
   137  			if err := p.readField4(iprot); err != nil {
   138  				return err
   139  			}
   140  			issetTimer = true
   141  		default:
   142  			if err := iprot.Skip(fieldTypeId); err != nil {
   143  				return err
   144  			}
   145  		}
   146  		if err := iprot.ReadFieldEnd(); err != nil {
   147  			return err
   148  		}
   149  	}
   150  	if err := iprot.ReadStructEnd(); err != nil {
   151  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
   152  	}
   153  	if !issetMetricType {
   154  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field MetricType is not set"))
   155  	}
   156  	if !issetCount {
   157  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Count is not set"))
   158  	}
   159  	if !issetGauge {
   160  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Gauge is not set"))
   161  	}
   162  	if !issetTimer {
   163  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Timer is not set"))
   164  	}
   165  	return nil
   166  }
   167  
   168  func (p *MetricValue) readField1(iprot thrift.TProtocol) error {
   169  	if v, err := iprot.ReadI32(); err != nil {
   170  		return thrift.PrependError("error reading field 1: ", err)
   171  	} else {
   172  		temp := MetricType(v)
   173  		p.MetricType = temp
   174  	}
   175  	return nil
   176  }
   177  
   178  func (p *MetricValue) readField2(iprot thrift.TProtocol) error {
   179  	if v, err := iprot.ReadI64(); err != nil {
   180  		return thrift.PrependError("error reading field 2: ", err)
   181  	} else {
   182  		p.Count = v
   183  	}
   184  	return nil
   185  }
   186  
   187  func (p *MetricValue) readField3(iprot thrift.TProtocol) error {
   188  	if v, err := iprot.ReadDouble(); err != nil {
   189  		return thrift.PrependError("error reading field 3: ", err)
   190  	} else {
   191  		p.Gauge = v
   192  	}
   193  	return nil
   194  }
   195  
   196  func (p *MetricValue) readField4(iprot thrift.TProtocol) error {
   197  	if v, err := iprot.ReadI64(); err != nil {
   198  		return thrift.PrependError("error reading field 4: ", err)
   199  	} else {
   200  		p.Timer = v
   201  	}
   202  	return nil
   203  }
   204  
   205  func (p *MetricValue) Write(oprot thrift.TProtocol) error {
   206  	if err := oprot.WriteStructBegin("MetricValue"); err != nil {
   207  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
   208  	}
   209  	if err := p.writeField1(oprot); err != nil {
   210  		return err
   211  	}
   212  	if err := p.writeField2(oprot); err != nil {
   213  		return err
   214  	}
   215  	if err := p.writeField3(oprot); err != nil {
   216  		return err
   217  	}
   218  	if err := p.writeField4(oprot); err != nil {
   219  		return err
   220  	}
   221  	if err := oprot.WriteFieldStop(); err != nil {
   222  		return thrift.PrependError("write field stop error: ", err)
   223  	}
   224  	if err := oprot.WriteStructEnd(); err != nil {
   225  		return thrift.PrependError("write struct stop error: ", err)
   226  	}
   227  	return nil
   228  }
   229  
   230  func (p *MetricValue) writeField1(oprot thrift.TProtocol) (err error) {
   231  	if err := oprot.WriteFieldBegin("metricType", thrift.I32, 1); err != nil {
   232  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:metricType: ", p), err)
   233  	}
   234  	if err := oprot.WriteI32(int32(p.MetricType)); err != nil {
   235  		return thrift.PrependError(fmt.Sprintf("%T.metricType (1) field write error: ", p), err)
   236  	}
   237  	if err := oprot.WriteFieldEnd(); err != nil {
   238  		return thrift.PrependError(fmt.Sprintf("%T write field end error 1:metricType: ", p), err)
   239  	}
   240  	return err
   241  }
   242  
   243  func (p *MetricValue) writeField2(oprot thrift.TProtocol) (err error) {
   244  	if err := oprot.WriteFieldBegin("count", thrift.I64, 2); err != nil {
   245  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:count: ", p), err)
   246  	}
   247  	if err := oprot.WriteI64(int64(p.Count)); err != nil {
   248  		return thrift.PrependError(fmt.Sprintf("%T.count (2) field write error: ", p), err)
   249  	}
   250  	if err := oprot.WriteFieldEnd(); err != nil {
   251  		return thrift.PrependError(fmt.Sprintf("%T write field end error 2:count: ", p), err)
   252  	}
   253  	return err
   254  }
   255  
   256  func (p *MetricValue) writeField3(oprot thrift.TProtocol) (err error) {
   257  	if err := oprot.WriteFieldBegin("gauge", thrift.DOUBLE, 3); err != nil {
   258  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 3:gauge: ", p), err)
   259  	}
   260  	if err := oprot.WriteDouble(float64(p.Gauge)); err != nil {
   261  		return thrift.PrependError(fmt.Sprintf("%T.gauge (3) field write error: ", p), err)
   262  	}
   263  	if err := oprot.WriteFieldEnd(); err != nil {
   264  		return thrift.PrependError(fmt.Sprintf("%T write field end error 3:gauge: ", p), err)
   265  	}
   266  	return err
   267  }
   268  
   269  func (p *MetricValue) writeField4(oprot thrift.TProtocol) (err error) {
   270  	if err := oprot.WriteFieldBegin("timer", thrift.I64, 4); err != nil {
   271  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 4:timer: ", p), err)
   272  	}
   273  	if err := oprot.WriteI64(int64(p.Timer)); err != nil {
   274  		return thrift.PrependError(fmt.Sprintf("%T.timer (4) field write error: ", p), err)
   275  	}
   276  	if err := oprot.WriteFieldEnd(); err != nil {
   277  		return thrift.PrependError(fmt.Sprintf("%T write field end error 4:timer: ", p), err)
   278  	}
   279  	return err
   280  }
   281  
   282  func (p *MetricValue) String() string {
   283  	if p == nil {
   284  		return "<nil>"
   285  	}
   286  	return fmt.Sprintf("MetricValue(%+v)", *p)
   287  }
   288  
   289  // Attributes:
   290  //  - Name
   291  //  - Value
   292  type MetricTag struct {
   293  	Name  string `thrift:"name,1,required" json:"name"`
   294  	Value string `thrift:"value,2,required" json:"value"`
   295  }
   296  
   297  func NewMetricTag() *MetricTag {
   298  	return &MetricTag{}
   299  }
   300  
   301  func (p *MetricTag) GetName() string {
   302  	return p.Name
   303  }
   304  
   305  func (p *MetricTag) GetValue() string {
   306  	return p.Value
   307  }
   308  func (p *MetricTag) Read(iprot thrift.TProtocol) error {
   309  	if _, err := iprot.ReadStructBegin(); err != nil {
   310  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
   311  	}
   312  
   313  	var issetName bool = false
   314  	var issetValue bool = false
   315  
   316  	for {
   317  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
   318  		if err != nil {
   319  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
   320  		}
   321  		if fieldTypeId == thrift.STOP {
   322  			break
   323  		}
   324  		switch fieldId {
   325  		case 1:
   326  			if err := p.readField1(iprot); err != nil {
   327  				return err
   328  			}
   329  			issetName = true
   330  		case 2:
   331  			if err := p.readField2(iprot); err != nil {
   332  				return err
   333  			}
   334  			issetValue = true
   335  		default:
   336  			if err := iprot.Skip(fieldTypeId); err != nil {
   337  				return err
   338  			}
   339  		}
   340  		if err := iprot.ReadFieldEnd(); err != nil {
   341  			return err
   342  		}
   343  	}
   344  	if err := iprot.ReadStructEnd(); err != nil {
   345  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
   346  	}
   347  	if !issetName {
   348  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Name is not set"))
   349  	}
   350  	if !issetValue {
   351  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Value is not set"))
   352  	}
   353  	return nil
   354  }
   355  
   356  func (p *MetricTag) readField1(iprot thrift.TProtocol) error {
   357  	if v, err := iprot.ReadString(); err != nil {
   358  		return thrift.PrependError("error reading field 1: ", err)
   359  	} else {
   360  		p.Name = v
   361  	}
   362  	return nil
   363  }
   364  
   365  func (p *MetricTag) readField2(iprot thrift.TProtocol) error {
   366  	if v, err := iprot.ReadString(); err != nil {
   367  		return thrift.PrependError("error reading field 2: ", err)
   368  	} else {
   369  		p.Value = v
   370  	}
   371  	return nil
   372  }
   373  
   374  func (p *MetricTag) Write(oprot thrift.TProtocol) error {
   375  	if err := oprot.WriteStructBegin("MetricTag"); err != nil {
   376  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
   377  	}
   378  	if err := p.writeField1(oprot); err != nil {
   379  		return err
   380  	}
   381  	if err := p.writeField2(oprot); err != nil {
   382  		return err
   383  	}
   384  	if err := oprot.WriteFieldStop(); err != nil {
   385  		return thrift.PrependError("write field stop error: ", err)
   386  	}
   387  	if err := oprot.WriteStructEnd(); err != nil {
   388  		return thrift.PrependError("write struct stop error: ", err)
   389  	}
   390  	return nil
   391  }
   392  
   393  func (p *MetricTag) writeField1(oprot thrift.TProtocol) (err error) {
   394  	if err := oprot.WriteFieldBegin("name", thrift.STRING, 1); err != nil {
   395  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:name: ", p), err)
   396  	}
   397  	if err := oprot.WriteString(string(p.Name)); err != nil {
   398  		return thrift.PrependError(fmt.Sprintf("%T.name (1) field write error: ", p), err)
   399  	}
   400  	if err := oprot.WriteFieldEnd(); err != nil {
   401  		return thrift.PrependError(fmt.Sprintf("%T write field end error 1:name: ", p), err)
   402  	}
   403  	return err
   404  }
   405  
   406  func (p *MetricTag) writeField2(oprot thrift.TProtocol) (err error) {
   407  	if err := oprot.WriteFieldBegin("value", thrift.STRING, 2); err != nil {
   408  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:value: ", p), err)
   409  	}
   410  	if err := oprot.WriteString(string(p.Value)); err != nil {
   411  		return thrift.PrependError(fmt.Sprintf("%T.value (2) field write error: ", p), err)
   412  	}
   413  	if err := oprot.WriteFieldEnd(); err != nil {
   414  		return thrift.PrependError(fmt.Sprintf("%T write field end error 2:value: ", p), err)
   415  	}
   416  	return err
   417  }
   418  
   419  func (p *MetricTag) String() string {
   420  	if p == nil {
   421  		return "<nil>"
   422  	}
   423  	return fmt.Sprintf("MetricTag(%+v)", *p)
   424  }
   425  
   426  // Attributes:
   427  //  - Name
   428  //  - Value
   429  //  - Timestamp
   430  //  - Tags
   431  type Metric struct {
   432  	Name      string      `thrift:"name,1,required" json:"name"`
   433  	Value     MetricValue `thrift:"value,2,required" json:"value"`
   434  	Timestamp int64       `thrift:"timestamp,3,required" json:"timestamp"`
   435  	Tags      []MetricTag `thrift:"tags,4" json:"tags,omitempty"`
   436  }
   437  
   438  func NewMetric() *Metric {
   439  	return &Metric{}
   440  }
   441  
   442  func (p *Metric) GetName() string {
   443  	return p.Name
   444  }
   445  
   446  var Metric_Value_DEFAULT MetricValue
   447  
   448  func (p *Metric) GetValue() MetricValue {
   449  	if !p.IsSetValue() {
   450  		return Metric_Value_DEFAULT
   451  	}
   452  	return p.Value
   453  }
   454  
   455  func (p *Metric) GetTimestamp() int64 {
   456  	return p.Timestamp
   457  }
   458  
   459  var Metric_Tags_DEFAULT []MetricTag
   460  
   461  func (p *Metric) GetTags() []MetricTag {
   462  	return p.Tags
   463  }
   464  func (p *Metric) IsSetValue() bool {
   465  	return p.Value.GetMetricType() != MetricType_INVALID || p.Value.Count != 0 || p.Value.Gauge != 0 || p.Value.Timer != 0
   466  }
   467  
   468  func (p *Metric) IsSetTags() bool {
   469  	return p.Tags != nil
   470  }
   471  
   472  func (p *Metric) Read(iprot thrift.TProtocol) error {
   473  	if _, err := iprot.ReadStructBegin(); err != nil {
   474  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
   475  	}
   476  
   477  	var issetName bool = false
   478  	var issetValue bool = false
   479  	var issetTimestamp bool = false
   480  
   481  	for {
   482  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
   483  		if err != nil {
   484  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
   485  		}
   486  		if fieldTypeId == thrift.STOP {
   487  			break
   488  		}
   489  		switch fieldId {
   490  		case 1:
   491  			if err := p.readField1(iprot); err != nil {
   492  				return err
   493  			}
   494  			issetName = true
   495  		case 2:
   496  			if err := p.readField2(iprot); err != nil {
   497  				return err
   498  			}
   499  			issetValue = true
   500  		case 3:
   501  			if err := p.readField3(iprot); err != nil {
   502  				return err
   503  			}
   504  			issetTimestamp = true
   505  		case 4:
   506  			if err := p.readField4(iprot); err != nil {
   507  				return err
   508  			}
   509  		default:
   510  			if err := iprot.Skip(fieldTypeId); err != nil {
   511  				return err
   512  			}
   513  		}
   514  		if err := iprot.ReadFieldEnd(); err != nil {
   515  			return err
   516  		}
   517  	}
   518  	if err := iprot.ReadStructEnd(); err != nil {
   519  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
   520  	}
   521  	if !issetName {
   522  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Name is not set"))
   523  	}
   524  	if !issetValue {
   525  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Value is not set"))
   526  	}
   527  	if !issetTimestamp {
   528  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Timestamp is not set"))
   529  	}
   530  	return nil
   531  }
   532  
   533  func (p *Metric) readField1(iprot thrift.TProtocol) error {
   534  	if v, err := iprot.ReadString(); err != nil {
   535  		return thrift.PrependError("error reading field 1: ", err)
   536  	} else {
   537  		p.Name = v
   538  	}
   539  	return nil
   540  }
   541  
   542  func (p *Metric) readField2(iprot thrift.TProtocol) error {
   543  	p.Value = MetricValue{}
   544  	if err := p.Value.Read(iprot); err != nil {
   545  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.Value), err)
   546  	}
   547  	return nil
   548  }
   549  
   550  func (p *Metric) readField3(iprot thrift.TProtocol) error {
   551  	if v, err := iprot.ReadI64(); err != nil {
   552  		return thrift.PrependError("error reading field 3: ", err)
   553  	} else {
   554  		p.Timestamp = v
   555  	}
   556  	return nil
   557  }
   558  
   559  func (p *Metric) readField4(iprot thrift.TProtocol) error {
   560  	_, size, err := iprot.ReadListBegin()
   561  	if err != nil {
   562  		return thrift.PrependError("error reading list begin: ", err)
   563  	}
   564  	tSlice := make([]MetricTag, 0, size)
   565  	p.Tags = tSlice
   566  	for i := 0; i < size; i++ {
   567  		_elem0 := MetricTag{}
   568  		if err := _elem0.Read(iprot); err != nil {
   569  			return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", _elem0), err)
   570  		}
   571  		p.Tags = append(p.Tags, _elem0)
   572  	}
   573  	if err := iprot.ReadListEnd(); err != nil {
   574  		return thrift.PrependError("error reading list end: ", err)
   575  	}
   576  	return nil
   577  }
   578  
   579  func (p *Metric) Write(oprot thrift.TProtocol) error {
   580  	if err := oprot.WriteStructBegin("Metric"); err != nil {
   581  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
   582  	}
   583  	if err := p.writeField1(oprot); err != nil {
   584  		return err
   585  	}
   586  	if err := p.writeField2(oprot); err != nil {
   587  		return err
   588  	}
   589  	if err := p.writeField3(oprot); err != nil {
   590  		return err
   591  	}
   592  	if err := p.writeField4(oprot); err != nil {
   593  		return err
   594  	}
   595  	if err := oprot.WriteFieldStop(); err != nil {
   596  		return thrift.PrependError("write field stop error: ", err)
   597  	}
   598  	if err := oprot.WriteStructEnd(); err != nil {
   599  		return thrift.PrependError("write struct stop error: ", err)
   600  	}
   601  	return nil
   602  }
   603  
   604  func (p *Metric) writeField1(oprot thrift.TProtocol) (err error) {
   605  	if err := oprot.WriteFieldBegin("name", thrift.STRING, 1); err != nil {
   606  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:name: ", p), err)
   607  	}
   608  	if err := oprot.WriteString(string(p.Name)); err != nil {
   609  		return thrift.PrependError(fmt.Sprintf("%T.name (1) field write error: ", p), err)
   610  	}
   611  	if err := oprot.WriteFieldEnd(); err != nil {
   612  		return thrift.PrependError(fmt.Sprintf("%T write field end error 1:name: ", p), err)
   613  	}
   614  	return err
   615  }
   616  
   617  func (p *Metric) writeField2(oprot thrift.TProtocol) (err error) {
   618  	if err := oprot.WriteFieldBegin("value", thrift.STRUCT, 2); err != nil {
   619  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:value: ", p), err)
   620  	}
   621  	if err := p.Value.Write(oprot); err != nil {
   622  		return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.Value), err)
   623  	}
   624  	if err := oprot.WriteFieldEnd(); err != nil {
   625  		return thrift.PrependError(fmt.Sprintf("%T write field end error 2:value: ", p), err)
   626  	}
   627  	return err
   628  }
   629  
   630  func (p *Metric) writeField3(oprot thrift.TProtocol) (err error) {
   631  	if err := oprot.WriteFieldBegin("timestamp", thrift.I64, 3); err != nil {
   632  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 3:timestamp: ", p), err)
   633  	}
   634  	if err := oprot.WriteI64(int64(p.Timestamp)); err != nil {
   635  		return thrift.PrependError(fmt.Sprintf("%T.timestamp (3) field write error: ", p), err)
   636  	}
   637  	if err := oprot.WriteFieldEnd(); err != nil {
   638  		return thrift.PrependError(fmt.Sprintf("%T write field end error 3:timestamp: ", p), err)
   639  	}
   640  	return err
   641  }
   642  
   643  func (p *Metric) writeField4(oprot thrift.TProtocol) (err error) {
   644  	if p.IsSetTags() {
   645  		if err := oprot.WriteFieldBegin("tags", thrift.LIST, 4); err != nil {
   646  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 4:tags: ", p), err)
   647  		}
   648  		if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Tags)); err != nil {
   649  			return thrift.PrependError("error writing list begin: ", err)
   650  		}
   651  		for _, v := range p.Tags {
   652  			if err := v.Write(oprot); err != nil {
   653  				return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", v), err)
   654  			}
   655  		}
   656  		if err := oprot.WriteListEnd(); err != nil {
   657  			return thrift.PrependError("error writing list end: ", err)
   658  		}
   659  		if err := oprot.WriteFieldEnd(); err != nil {
   660  			return thrift.PrependError(fmt.Sprintf("%T write field end error 4:tags: ", p), err)
   661  		}
   662  	}
   663  	return err
   664  }
   665  
   666  func (p *Metric) String() string {
   667  	if p == nil {
   668  		return "<nil>"
   669  	}
   670  	return fmt.Sprintf("Metric(%+v)", *p)
   671  }
   672  
   673  // Attributes:
   674  //  - Metrics
   675  //  - CommonTags
   676  type MetricBatch struct {
   677  	Metrics    []Metric    `thrift:"metrics,1,required" json:"metrics"`
   678  	CommonTags []MetricTag `thrift:"commonTags,2" json:"commonTags,omitempty"`
   679  }
   680  
   681  func NewMetricBatch() *MetricBatch {
   682  	return &MetricBatch{}
   683  }
   684  
   685  func (p *MetricBatch) GetMetrics() []Metric {
   686  	return p.Metrics
   687  }
   688  
   689  var MetricBatch_CommonTags_DEFAULT []MetricTag
   690  
   691  func (p *MetricBatch) GetCommonTags() []MetricTag {
   692  	return p.CommonTags
   693  }
   694  func (p *MetricBatch) IsSetCommonTags() bool {
   695  	return p.CommonTags != nil
   696  }
   697  
   698  func (p *MetricBatch) Read(iprot thrift.TProtocol) error {
   699  	if _, err := iprot.ReadStructBegin(); err != nil {
   700  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
   701  	}
   702  
   703  	var issetMetrics bool = false
   704  
   705  	for {
   706  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
   707  		if err != nil {
   708  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
   709  		}
   710  		if fieldTypeId == thrift.STOP {
   711  			break
   712  		}
   713  		switch fieldId {
   714  		case 1:
   715  			if err := p.readField1(iprot); err != nil {
   716  				return err
   717  			}
   718  			issetMetrics = true
   719  		case 2:
   720  			if err := p.readField2(iprot); err != nil {
   721  				return err
   722  			}
   723  		default:
   724  			if err := iprot.Skip(fieldTypeId); err != nil {
   725  				return err
   726  			}
   727  		}
   728  		if err := iprot.ReadFieldEnd(); err != nil {
   729  			return err
   730  		}
   731  	}
   732  	if err := iprot.ReadStructEnd(); err != nil {
   733  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
   734  	}
   735  	if !issetMetrics {
   736  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Metrics is not set"))
   737  	}
   738  	return nil
   739  }
   740  
   741  func (p *MetricBatch) readField1(iprot thrift.TProtocol) error {
   742  	_, size, err := iprot.ReadListBegin()
   743  	if err != nil {
   744  		return thrift.PrependError("error reading list begin: ", err)
   745  	}
   746  	tSlice := make([]Metric, 0, size)
   747  	p.Metrics = tSlice
   748  	for i := 0; i < size; i++ {
   749  		_elem1 := Metric{}
   750  		if err := _elem1.Read(iprot); err != nil {
   751  			return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", _elem1), err)
   752  		}
   753  		p.Metrics = append(p.Metrics, _elem1)
   754  	}
   755  	if err := iprot.ReadListEnd(); err != nil {
   756  		return thrift.PrependError("error reading list end: ", err)
   757  	}
   758  	return nil
   759  }
   760  
   761  func (p *MetricBatch) readField2(iprot thrift.TProtocol) error {
   762  	_, size, err := iprot.ReadListBegin()
   763  	if err != nil {
   764  		return thrift.PrependError("error reading list begin: ", err)
   765  	}
   766  	tSlice := make([]MetricTag, 0, size)
   767  	p.CommonTags = tSlice
   768  	for i := 0; i < size; i++ {
   769  		_elem2 := MetricTag{}
   770  		if err := _elem2.Read(iprot); err != nil {
   771  			return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", _elem2), err)
   772  		}
   773  		p.CommonTags = append(p.CommonTags, _elem2)
   774  	}
   775  	if err := iprot.ReadListEnd(); err != nil {
   776  		return thrift.PrependError("error reading list end: ", err)
   777  	}
   778  	return nil
   779  }
   780  
   781  func (p *MetricBatch) Write(oprot thrift.TProtocol) error {
   782  	if err := oprot.WriteStructBegin("MetricBatch"); err != nil {
   783  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
   784  	}
   785  	if err := p.writeField1(oprot); err != nil {
   786  		return err
   787  	}
   788  	if err := p.writeField2(oprot); err != nil {
   789  		return err
   790  	}
   791  	if err := oprot.WriteFieldStop(); err != nil {
   792  		return thrift.PrependError("write field stop error: ", err)
   793  	}
   794  	if err := oprot.WriteStructEnd(); err != nil {
   795  		return thrift.PrependError("write struct stop error: ", err)
   796  	}
   797  	return nil
   798  }
   799  
   800  func (p *MetricBatch) writeField1(oprot thrift.TProtocol) (err error) {
   801  	if err := oprot.WriteFieldBegin("metrics", thrift.LIST, 1); err != nil {
   802  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:metrics: ", p), err)
   803  	}
   804  	if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Metrics)); err != nil {
   805  		return thrift.PrependError("error writing list begin: ", err)
   806  	}
   807  	for _, v := range p.Metrics {
   808  		if err := v.Write(oprot); err != nil {
   809  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", v), err)
   810  		}
   811  	}
   812  	if err := oprot.WriteListEnd(); err != nil {
   813  		return thrift.PrependError("error writing list end: ", err)
   814  	}
   815  	if err := oprot.WriteFieldEnd(); err != nil {
   816  		return thrift.PrependError(fmt.Sprintf("%T write field end error 1:metrics: ", p), err)
   817  	}
   818  	return err
   819  }
   820  
   821  func (p *MetricBatch) writeField2(oprot thrift.TProtocol) (err error) {
   822  	if p.IsSetCommonTags() {
   823  		if err := oprot.WriteFieldBegin("commonTags", thrift.LIST, 2); err != nil {
   824  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:commonTags: ", p), err)
   825  		}
   826  		if err := oprot.WriteListBegin(thrift.STRUCT, len(p.CommonTags)); err != nil {
   827  			return thrift.PrependError("error writing list begin: ", err)
   828  		}
   829  		for _, v := range p.CommonTags {
   830  			if err := v.Write(oprot); err != nil {
   831  				return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", v), err)
   832  			}
   833  		}
   834  		if err := oprot.WriteListEnd(); err != nil {
   835  			return thrift.PrependError("error writing list end: ", err)
   836  		}
   837  		if err := oprot.WriteFieldEnd(); err != nil {
   838  			return thrift.PrependError(fmt.Sprintf("%T write field end error 2:commonTags: ", p), err)
   839  		}
   840  	}
   841  	return err
   842  }
   843  
   844  func (p *MetricBatch) String() string {
   845  	if p == nil {
   846  		return "<nil>"
   847  	}
   848  	return fmt.Sprintf("MetricBatch(%+v)", *p)
   849  }