github.com/cloudwego/kitex@v0.9.0/pkg/remote/trans/gonet/client_handler.go (about)

     1  /*
     2  * Copyright 2022 CloudWeGo Authors
     3  *
     4  * Licensed under the Apache License, Version 2.0 (the "License");
     5  * you may not use this file except in compliance with the License.
     6  * You may obtain a copy of the License at
     7  *
     8  *     http://www.apache.org/licenses/LICENSE-2.0
     9  *
    10  * Unless required by applicable law or agreed to in writing, software
    11  * distributed under the License is distributed on an "AS IS" BASIS,
    12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  * See the License for the specific language governing permissions and
    14  * limitations under the License.
    15   */
    16  
    17  package gonet
    18  
    19  import (
    20  	"github.com/cloudwego/kitex/pkg/remote"
    21  	"github.com/cloudwego/kitex/pkg/remote/trans"
    22  )
    23  
    24  type cliTransHandlerFactory struct{}
    25  
    26  // NewCliTransHandlerFactory returns a new remote.ClientTransHandlerFactory for go net.
    27  func NewCliTransHandlerFactory() remote.ClientTransHandlerFactory {
    28  	return &cliTransHandlerFactory{}
    29  }
    30  
    31  // NewTransHandler implements the remote.ClientTransHandlerFactory interface.
    32  func (f *cliTransHandlerFactory) NewTransHandler(opt *remote.ClientOption) (remote.ClientTransHandler, error) {
    33  	return newCliTransHandler(opt)
    34  }
    35  
    36  func newCliTransHandler(opt *remote.ClientOption) (remote.ClientTransHandler, error) {
    37  	return trans.NewDefaultCliTransHandler(opt, NewGonetExtension())
    38  }