change stats interface API to include ClientStats() function
This commit is contained in:
@ -48,6 +48,8 @@ import (
|
|||||||
// All stats types in this package implements this interface.
|
// All stats types in this package implements this interface.
|
||||||
type Stats interface {
|
type Stats interface {
|
||||||
isStats()
|
isStats()
|
||||||
|
// ClientStats indicates if the stats is a client stats.
|
||||||
|
ClientStats() bool
|
||||||
}
|
}
|
||||||
|
|
||||||
// IncomingPayloadStats contains the information for a incoming payload.
|
// IncomingPayloadStats contains the information for a incoming payload.
|
||||||
@ -68,6 +70,9 @@ type IncomingPayloadStats struct {
|
|||||||
|
|
||||||
func (s *IncomingPayloadStats) isStats() {}
|
func (s *IncomingPayloadStats) isStats() {}
|
||||||
|
|
||||||
|
// ClientStats indicates if the stats is a client stats.
|
||||||
|
func (s *IncomingPayloadStats) ClientStats() bool { return s.IsClient }
|
||||||
|
|
||||||
// IncomingHeaderStats indicates a header is received.
|
// IncomingHeaderStats indicates a header is received.
|
||||||
// Method, addresses and Encryption are only valid if IsClient is false.
|
// Method, addresses and Encryption are only valid if IsClient is false.
|
||||||
type IncomingHeaderStats struct {
|
type IncomingHeaderStats struct {
|
||||||
@ -88,6 +93,9 @@ type IncomingHeaderStats struct {
|
|||||||
|
|
||||||
func (s *IncomingHeaderStats) isStats() {}
|
func (s *IncomingHeaderStats) isStats() {}
|
||||||
|
|
||||||
|
// ClientStats indicates if the stats is a client stats.
|
||||||
|
func (s *IncomingHeaderStats) ClientStats() bool { return s.IsClient }
|
||||||
|
|
||||||
// IncomingTrailerStats indicates a trailer is received.
|
// IncomingTrailerStats indicates a trailer is received.
|
||||||
type IncomingTrailerStats struct {
|
type IncomingTrailerStats struct {
|
||||||
// IsClient indicates if this stats is a client stats.
|
// IsClient indicates if this stats is a client stats.
|
||||||
@ -98,6 +106,9 @@ type IncomingTrailerStats struct {
|
|||||||
|
|
||||||
func (s *IncomingTrailerStats) isStats() {}
|
func (s *IncomingTrailerStats) isStats() {}
|
||||||
|
|
||||||
|
// ClientStats indicates if the stats is a client stats.
|
||||||
|
func (s *IncomingTrailerStats) ClientStats() bool { return s.IsClient }
|
||||||
|
|
||||||
// OutgoingPayloadStats contains the information for a outgoing payload.
|
// OutgoingPayloadStats contains the information for a outgoing payload.
|
||||||
type OutgoingPayloadStats struct {
|
type OutgoingPayloadStats struct {
|
||||||
// IsClient indicates if this stats is a client stats.
|
// IsClient indicates if this stats is a client stats.
|
||||||
@ -116,6 +127,9 @@ type OutgoingPayloadStats struct {
|
|||||||
|
|
||||||
func (s *OutgoingPayloadStats) isStats() {}
|
func (s *OutgoingPayloadStats) isStats() {}
|
||||||
|
|
||||||
|
// ClientStats indicates if the stats is a client stats.
|
||||||
|
func (s *OutgoingPayloadStats) ClientStats() bool { return s.IsClient }
|
||||||
|
|
||||||
// OutgoingHeaderStats indicates a header is sent.
|
// OutgoingHeaderStats indicates a header is sent.
|
||||||
// Method, addresses and Encryption are only valid if IsClient is true.
|
// Method, addresses and Encryption are only valid if IsClient is true.
|
||||||
type OutgoingHeaderStats struct {
|
type OutgoingHeaderStats struct {
|
||||||
@ -136,6 +150,9 @@ type OutgoingHeaderStats struct {
|
|||||||
|
|
||||||
func (s *OutgoingHeaderStats) isStats() {}
|
func (s *OutgoingHeaderStats) isStats() {}
|
||||||
|
|
||||||
|
// ClientStats indicates if the stats is a client stats.
|
||||||
|
func (s *OutgoingHeaderStats) ClientStats() bool { return s.IsClient }
|
||||||
|
|
||||||
// OutgoingTrailerStats indicates a trailer is sent.
|
// OutgoingTrailerStats indicates a trailer is sent.
|
||||||
type OutgoingTrailerStats struct {
|
type OutgoingTrailerStats struct {
|
||||||
// IsClient indicates if this stats is a client stats.
|
// IsClient indicates if this stats is a client stats.
|
||||||
@ -146,6 +163,9 @@ type OutgoingTrailerStats struct {
|
|||||||
|
|
||||||
func (s *OutgoingTrailerStats) isStats() {}
|
func (s *OutgoingTrailerStats) isStats() {}
|
||||||
|
|
||||||
|
// ClientStats indicates if the stats is a client stats.
|
||||||
|
func (s *OutgoingTrailerStats) ClientStats() bool { return s.IsClient }
|
||||||
|
|
||||||
// ErrorStats indicates an error happens.
|
// ErrorStats indicates an error happens.
|
||||||
type ErrorStats struct {
|
type ErrorStats struct {
|
||||||
// IsClient indicates if this stats is a client stats.
|
// IsClient indicates if this stats is a client stats.
|
||||||
@ -156,6 +176,9 @@ type ErrorStats struct {
|
|||||||
|
|
||||||
func (s *ErrorStats) isStats() {}
|
func (s *ErrorStats) isStats() {}
|
||||||
|
|
||||||
|
// ClientStats indicates if the stats is a client stats.
|
||||||
|
func (s *ErrorStats) ClientStats() bool { return s.IsClient }
|
||||||
|
|
||||||
var (
|
var (
|
||||||
on = new(int32)
|
on = new(int32)
|
||||||
handler func(context.Context, Stats)
|
handler func(context.Context, Stats)
|
||||||
|
Reference in New Issue
Block a user