func (a *RingpopPingPongServiceAdapter) GetLocalClient() interface{} {
	return a.impl
}
GetLocalClient satisfies the ClientFactory interface of ringpop-go/router
package ping
import (
	"errors"
	"fmt"
	"github.com/uber/ringpop-go"
	"github.com/uber/ringpop-go/forward"
	"github.com/uber/ringpop-go/router"
	"github.com/uber/tchannel-go"
	"github.com/uber/tchannel-go/thrift"
)
type RingpopPingPongServiceAdapter struct {
	impl    TChanPingPongService
	ringpop ringpop.Interface
	ch      *tchannel.Channel
	config  PingPongServiceConfiguration
	router  router.Router
}
type PingPongServiceConfiguration struct {
	Ping *PingPongServicePingConfiguration
}
func (c *PingPongServiceConfiguration) validate() error {
	if c.Ping != nil {
		if c.Ping.Key == nil {
			return errors.New("configuration for endpoint Ping is missing a Key function")
		}
	}
	return nil
}
func NewRingpopPingPongServiceAdapter(
	impl TChanPingPongService,
	rp ringpop.Interface,
	ch *tchannel.Channel,
	config PingPongServiceConfiguration,
) (TChanPingPongService, error) {
	err := config.validate()
	if err != nil {
		return nil, err
	}
	adapter := &RingpopPingPongServiceAdapter{
		impl:    impl,
		ringpop: rp,
		ch:      ch,
		config:  config,
	}
	adapter.router = router.New(rp, adapter, ch)
	return adapter, nil
}