func (g *grpc) typeName(str string) string {
	return g.gen.TypeName(g.objectNamed(str))
}
Given a type name defined in a .proto, return its name as we will print it.
package grpc
import (
	"fmt"
	"path"
	"strconv"
	"strings"
	pb "github.com/golang/protobuf/protoc-gen-go/descriptor"
	"github.com/golang/protobuf/protoc-gen-go/generator"
)
const generatedCodeVersion = 4
const (
	contextPkgPath = "golang.org/x/net/context"
	grpcPkgPath    = "google.golang.org/grpc"
)
func init() {
	generator.RegisterPlugin(new(grpc))
}
type grpc struct {
	gen *generator.Generator
}
func (g *grpc) Name() string {
	return "grpc"
}
var (
	contextPkg string
	grpcPkg    string
)
func (g *grpc) Init(gen *generator.Generator) {
	g.gen = gen
	contextPkg = generator.RegisterUniquePackageName("context", nil)
	grpcPkg = generator.RegisterUniquePackageName("grpc", nil)
}
func (g *grpc) objectNamed(name string) generator.Object {
	g.gen.RecordTypeUse(name)
	return g.gen.ObjectNamed(name)
}