arrow/flight/Flight_grpc.pb.go (607 lines of code) (raw):
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
package flight
import (
context "context"
grpc "google.golang.org/grpc"
codes "google.golang.org/grpc/codes"
status "google.golang.org/grpc/status"
)
// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion7
// FlightServiceClient is the client API for FlightService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type FlightServiceClient interface {
//
// Handshake between client and server. Depending on the server, the
// handshake may be required to determine the token that should be used for
// future operations. Both request and response are streams to allow multiple
// round-trips depending on auth mechanism.
Handshake(ctx context.Context, opts ...grpc.CallOption) (FlightService_HandshakeClient, error)
//
// Get a list of available streams given a particular criteria. Most flight
// services will expose one or more streams that are readily available for
// retrieval. This api allows listing the streams available for
// consumption. A user can also provide a criteria. The criteria can limit
// the subset of streams that can be listed via this interface. Each flight
// service allows its own definition of how to consume criteria.
ListFlights(ctx context.Context, in *Criteria, opts ...grpc.CallOption) (FlightService_ListFlightsClient, error)
//
// For a given FlightDescriptor, get information about how the flight can be
// consumed. This is a useful interface if the consumer of the interface
// already can identify the specific flight to consume. This interface can
// also allow a consumer to generate a flight stream through a specified
// descriptor. For example, a flight descriptor might be something that
// includes a SQL statement or a Pickled Python operation that will be
// executed. In those cases, the descriptor will not be previously available
// within the list of available streams provided by ListFlights but will be
// available for consumption for the duration defined by the specific flight
// service.
GetFlightInfo(ctx context.Context, in *FlightDescriptor, opts ...grpc.CallOption) (*FlightInfo, error)
//
// For a given FlightDescriptor, get the Schema as described in Schema.fbs::Schema
// This is used when a consumer needs the Schema of flight stream. Similar to
// GetFlightInfo this interface may generate a new flight that was not previously
// available in ListFlights.
GetSchema(ctx context.Context, in *FlightDescriptor, opts ...grpc.CallOption) (*SchemaResult, error)
//
// Retrieve a single stream associated with a particular descriptor
// associated with the referenced ticket. A Flight can be composed of one or
// more streams where each stream can be retrieved using a separate opaque
// ticket that the flight service uses for managing a collection of streams.
DoGet(ctx context.Context, in *Ticket, opts ...grpc.CallOption) (FlightService_DoGetClient, error)
//
// Push a stream to the flight service associated with a particular
// flight stream. This allows a client of a flight service to upload a stream
// of data. Depending on the particular flight service, a client consumer
// could be allowed to upload a single stream per descriptor or an unlimited
// number. In the latter, the service might implement a 'seal' action that
// can be applied to a descriptor once all streams are uploaded.
DoPut(ctx context.Context, opts ...grpc.CallOption) (FlightService_DoPutClient, error)
//
// Open a bidirectional data channel for a given descriptor. This
// allows clients to send and receive arbitrary Arrow data and
// application-specific metadata in a single logical stream. In
// contrast to DoGet/DoPut, this is more suited for clients
// offloading computation (rather than storage) to a Flight service.
DoExchange(ctx context.Context, opts ...grpc.CallOption) (FlightService_DoExchangeClient, error)
//
// Flight services can support an arbitrary number of simple actions in
// addition to the possible ListFlights, GetFlightInfo, DoGet, DoPut
// operations that are potentially available. DoAction allows a flight client
// to do a specific action against a flight service. An action includes
// opaque request and response objects that are specific to the type action
// being undertaken.
DoAction(ctx context.Context, in *Action, opts ...grpc.CallOption) (FlightService_DoActionClient, error)
//
// A flight service exposes all of the available action types that it has
// along with descriptions. This allows different flight consumers to
// understand the capabilities of the flight service.
ListActions(ctx context.Context, in *Empty, opts ...grpc.CallOption) (FlightService_ListActionsClient, error)
}
type flightServiceClient struct {
cc grpc.ClientConnInterface
}
func NewFlightServiceClient(cc grpc.ClientConnInterface) FlightServiceClient {
return &flightServiceClient{cc}
}
var flightServiceHandshakeStreamDesc = &grpc.StreamDesc{
StreamName: "Handshake",
ServerStreams: true,
ClientStreams: true,
}
func (c *flightServiceClient) Handshake(ctx context.Context, opts ...grpc.CallOption) (FlightService_HandshakeClient, error) {
stream, err := c.cc.NewStream(ctx, flightServiceHandshakeStreamDesc, "/arrow.flight.protocol.FlightService/Handshake", opts...)
if err != nil {
return nil, err
}
x := &flightServiceHandshakeClient{stream}
return x, nil
}
type FlightService_HandshakeClient interface {
Send(*HandshakeRequest) error
Recv() (*HandshakeResponse, error)
grpc.ClientStream
}
type flightServiceHandshakeClient struct {
grpc.ClientStream
}
func (x *flightServiceHandshakeClient) Send(m *HandshakeRequest) error {
return x.ClientStream.SendMsg(m)
}
func (x *flightServiceHandshakeClient) Recv() (*HandshakeResponse, error) {
m := new(HandshakeResponse)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
var flightServiceListFlightsStreamDesc = &grpc.StreamDesc{
StreamName: "ListFlights",
ServerStreams: true,
}
func (c *flightServiceClient) ListFlights(ctx context.Context, in *Criteria, opts ...grpc.CallOption) (FlightService_ListFlightsClient, error) {
stream, err := c.cc.NewStream(ctx, flightServiceListFlightsStreamDesc, "/arrow.flight.protocol.FlightService/ListFlights", opts...)
if err != nil {
return nil, err
}
x := &flightServiceListFlightsClient{stream}
if err := x.ClientStream.SendMsg(in); err != nil {
return nil, err
}
if err := x.ClientStream.CloseSend(); err != nil {
return nil, err
}
return x, nil
}
type FlightService_ListFlightsClient interface {
Recv() (*FlightInfo, error)
grpc.ClientStream
}
type flightServiceListFlightsClient struct {
grpc.ClientStream
}
func (x *flightServiceListFlightsClient) Recv() (*FlightInfo, error) {
m := new(FlightInfo)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
var flightServiceGetFlightInfoStreamDesc = &grpc.StreamDesc{
StreamName: "GetFlightInfo",
}
func (c *flightServiceClient) GetFlightInfo(ctx context.Context, in *FlightDescriptor, opts ...grpc.CallOption) (*FlightInfo, error) {
out := new(FlightInfo)
err := c.cc.Invoke(ctx, "/arrow.flight.protocol.FlightService/GetFlightInfo", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
var flightServiceGetSchemaStreamDesc = &grpc.StreamDesc{
StreamName: "GetSchema",
}
func (c *flightServiceClient) GetSchema(ctx context.Context, in *FlightDescriptor, opts ...grpc.CallOption) (*SchemaResult, error) {
out := new(SchemaResult)
err := c.cc.Invoke(ctx, "/arrow.flight.protocol.FlightService/GetSchema", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
var flightServiceDoGetStreamDesc = &grpc.StreamDesc{
StreamName: "DoGet",
ServerStreams: true,
}
func (c *flightServiceClient) DoGet(ctx context.Context, in *Ticket, opts ...grpc.CallOption) (FlightService_DoGetClient, error) {
stream, err := c.cc.NewStream(ctx, flightServiceDoGetStreamDesc, "/arrow.flight.protocol.FlightService/DoGet", opts...)
if err != nil {
return nil, err
}
x := &flightServiceDoGetClient{stream}
if err := x.ClientStream.SendMsg(in); err != nil {
return nil, err
}
if err := x.ClientStream.CloseSend(); err != nil {
return nil, err
}
return x, nil
}
type FlightService_DoGetClient interface {
Recv() (*FlightData, error)
grpc.ClientStream
}
type flightServiceDoGetClient struct {
grpc.ClientStream
}
func (x *flightServiceDoGetClient) Recv() (*FlightData, error) {
m := new(FlightData)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
var flightServiceDoPutStreamDesc = &grpc.StreamDesc{
StreamName: "DoPut",
ServerStreams: true,
ClientStreams: true,
}
func (c *flightServiceClient) DoPut(ctx context.Context, opts ...grpc.CallOption) (FlightService_DoPutClient, error) {
stream, err := c.cc.NewStream(ctx, flightServiceDoPutStreamDesc, "/arrow.flight.protocol.FlightService/DoPut", opts...)
if err != nil {
return nil, err
}
x := &flightServiceDoPutClient{stream}
return x, nil
}
type FlightService_DoPutClient interface {
Send(*FlightData) error
Recv() (*PutResult, error)
grpc.ClientStream
}
type flightServiceDoPutClient struct {
grpc.ClientStream
}
func (x *flightServiceDoPutClient) Send(m *FlightData) error {
return x.ClientStream.SendMsg(m)
}
func (x *flightServiceDoPutClient) Recv() (*PutResult, error) {
m := new(PutResult)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
var flightServiceDoExchangeStreamDesc = &grpc.StreamDesc{
StreamName: "DoExchange",
ServerStreams: true,
ClientStreams: true,
}
func (c *flightServiceClient) DoExchange(ctx context.Context, opts ...grpc.CallOption) (FlightService_DoExchangeClient, error) {
stream, err := c.cc.NewStream(ctx, flightServiceDoExchangeStreamDesc, "/arrow.flight.protocol.FlightService/DoExchange", opts...)
if err != nil {
return nil, err
}
x := &flightServiceDoExchangeClient{stream}
return x, nil
}
type FlightService_DoExchangeClient interface {
Send(*FlightData) error
Recv() (*FlightData, error)
grpc.ClientStream
}
type flightServiceDoExchangeClient struct {
grpc.ClientStream
}
func (x *flightServiceDoExchangeClient) Send(m *FlightData) error {
return x.ClientStream.SendMsg(m)
}
func (x *flightServiceDoExchangeClient) Recv() (*FlightData, error) {
m := new(FlightData)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
var flightServiceDoActionStreamDesc = &grpc.StreamDesc{
StreamName: "DoAction",
ServerStreams: true,
}
func (c *flightServiceClient) DoAction(ctx context.Context, in *Action, opts ...grpc.CallOption) (FlightService_DoActionClient, error) {
stream, err := c.cc.NewStream(ctx, flightServiceDoActionStreamDesc, "/arrow.flight.protocol.FlightService/DoAction", opts...)
if err != nil {
return nil, err
}
x := &flightServiceDoActionClient{stream}
if err := x.ClientStream.SendMsg(in); err != nil {
return nil, err
}
if err := x.ClientStream.CloseSend(); err != nil {
return nil, err
}
return x, nil
}
type FlightService_DoActionClient interface {
Recv() (*Result, error)
grpc.ClientStream
}
type flightServiceDoActionClient struct {
grpc.ClientStream
}
func (x *flightServiceDoActionClient) Recv() (*Result, error) {
m := new(Result)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
var flightServiceListActionsStreamDesc = &grpc.StreamDesc{
StreamName: "ListActions",
ServerStreams: true,
}
func (c *flightServiceClient) ListActions(ctx context.Context, in *Empty, opts ...grpc.CallOption) (FlightService_ListActionsClient, error) {
stream, err := c.cc.NewStream(ctx, flightServiceListActionsStreamDesc, "/arrow.flight.protocol.FlightService/ListActions", opts...)
if err != nil {
return nil, err
}
x := &flightServiceListActionsClient{stream}
if err := x.ClientStream.SendMsg(in); err != nil {
return nil, err
}
if err := x.ClientStream.CloseSend(); err != nil {
return nil, err
}
return x, nil
}
type FlightService_ListActionsClient interface {
Recv() (*ActionType, error)
grpc.ClientStream
}
type flightServiceListActionsClient struct {
grpc.ClientStream
}
func (x *flightServiceListActionsClient) Recv() (*ActionType, error) {
m := new(ActionType)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
// FlightServiceService is the service API for FlightService service.
// Fields should be assigned to their respective handler implementations only before
// RegisterFlightServiceService is called. Any unassigned fields will result in the
// handler for that method returning an Unimplemented error.
type FlightServiceService struct {
//
// Handshake between client and server. Depending on the server, the
// handshake may be required to determine the token that should be used for
// future operations. Both request and response are streams to allow multiple
// round-trips depending on auth mechanism.
Handshake func(FlightService_HandshakeServer) error
//
// Get a list of available streams given a particular criteria. Most flight
// services will expose one or more streams that are readily available for
// retrieval. This api allows listing the streams available for
// consumption. A user can also provide a criteria. The criteria can limit
// the subset of streams that can be listed via this interface. Each flight
// service allows its own definition of how to consume criteria.
ListFlights func(*Criteria, FlightService_ListFlightsServer) error
//
// For a given FlightDescriptor, get information about how the flight can be
// consumed. This is a useful interface if the consumer of the interface
// already can identify the specific flight to consume. This interface can
// also allow a consumer to generate a flight stream through a specified
// descriptor. For example, a flight descriptor might be something that
// includes a SQL statement or a Pickled Python operation that will be
// executed. In those cases, the descriptor will not be previously available
// within the list of available streams provided by ListFlights but will be
// available for consumption for the duration defined by the specific flight
// service.
GetFlightInfo func(context.Context, *FlightDescriptor) (*FlightInfo, error)
//
// For a given FlightDescriptor, get the Schema as described in Schema.fbs::Schema
// This is used when a consumer needs the Schema of flight stream. Similar to
// GetFlightInfo this interface may generate a new flight that was not previously
// available in ListFlights.
GetSchema func(context.Context, *FlightDescriptor) (*SchemaResult, error)
//
// Retrieve a single stream associated with a particular descriptor
// associated with the referenced ticket. A Flight can be composed of one or
// more streams where each stream can be retrieved using a separate opaque
// ticket that the flight service uses for managing a collection of streams.
DoGet func(*Ticket, FlightService_DoGetServer) error
//
// Push a stream to the flight service associated with a particular
// flight stream. This allows a client of a flight service to upload a stream
// of data. Depending on the particular flight service, a client consumer
// could be allowed to upload a single stream per descriptor or an unlimited
// number. In the latter, the service might implement a 'seal' action that
// can be applied to a descriptor once all streams are uploaded.
DoPut func(FlightService_DoPutServer) error
//
// Open a bidirectional data channel for a given descriptor. This
// allows clients to send and receive arbitrary Arrow data and
// application-specific metadata in a single logical stream. In
// contrast to DoGet/DoPut, this is more suited for clients
// offloading computation (rather than storage) to a Flight service.
DoExchange func(FlightService_DoExchangeServer) error
//
// Flight services can support an arbitrary number of simple actions in
// addition to the possible ListFlights, GetFlightInfo, DoGet, DoPut
// operations that are potentially available. DoAction allows a flight client
// to do a specific action against a flight service. An action includes
// opaque request and response objects that are specific to the type action
// being undertaken.
DoAction func(*Action, FlightService_DoActionServer) error
//
// A flight service exposes all of the available action types that it has
// along with descriptions. This allows different flight consumers to
// understand the capabilities of the flight service.
ListActions func(*Empty, FlightService_ListActionsServer) error
}
func (s *FlightServiceService) handshake(_ interface{}, stream grpc.ServerStream) error {
return s.Handshake(&flightServiceHandshakeServer{stream})
}
func (s *FlightServiceService) listFlights(_ interface{}, stream grpc.ServerStream) error {
m := new(Criteria)
if err := stream.RecvMsg(m); err != nil {
return err
}
return s.ListFlights(m, &flightServiceListFlightsServer{stream})
}
func (s *FlightServiceService) getFlightInfo(_ interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(FlightDescriptor)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return s.GetFlightInfo(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: s,
FullMethod: "/arrow.flight.protocol.FlightService/GetFlightInfo",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return s.GetFlightInfo(ctx, req.(*FlightDescriptor))
}
return interceptor(ctx, in, info, handler)
}
func (s *FlightServiceService) getSchema(_ interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(FlightDescriptor)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return s.GetSchema(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: s,
FullMethod: "/arrow.flight.protocol.FlightService/GetSchema",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return s.GetSchema(ctx, req.(*FlightDescriptor))
}
return interceptor(ctx, in, info, handler)
}
func (s *FlightServiceService) doGet(_ interface{}, stream grpc.ServerStream) error {
m := new(Ticket)
if err := stream.RecvMsg(m); err != nil {
return err
}
return s.DoGet(m, &flightServiceDoGetServer{stream})
}
func (s *FlightServiceService) doPut(_ interface{}, stream grpc.ServerStream) error {
return s.DoPut(&flightServiceDoPutServer{stream})
}
func (s *FlightServiceService) doExchange(_ interface{}, stream grpc.ServerStream) error {
return s.DoExchange(&flightServiceDoExchangeServer{stream})
}
func (s *FlightServiceService) doAction(_ interface{}, stream grpc.ServerStream) error {
m := new(Action)
if err := stream.RecvMsg(m); err != nil {
return err
}
return s.DoAction(m, &flightServiceDoActionServer{stream})
}
func (s *FlightServiceService) listActions(_ interface{}, stream grpc.ServerStream) error {
m := new(Empty)
if err := stream.RecvMsg(m); err != nil {
return err
}
return s.ListActions(m, &flightServiceListActionsServer{stream})
}
type FlightService_HandshakeServer interface {
Send(*HandshakeResponse) error
Recv() (*HandshakeRequest, error)
grpc.ServerStream
}
type flightServiceHandshakeServer struct {
grpc.ServerStream
}
func (x *flightServiceHandshakeServer) Send(m *HandshakeResponse) error {
return x.ServerStream.SendMsg(m)
}
func (x *flightServiceHandshakeServer) Recv() (*HandshakeRequest, error) {
m := new(HandshakeRequest)
if err := x.ServerStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
type FlightService_ListFlightsServer interface {
Send(*FlightInfo) error
grpc.ServerStream
}
type flightServiceListFlightsServer struct {
grpc.ServerStream
}
func (x *flightServiceListFlightsServer) Send(m *FlightInfo) error {
return x.ServerStream.SendMsg(m)
}
type FlightService_DoGetServer interface {
Send(*FlightData) error
grpc.ServerStream
}
type flightServiceDoGetServer struct {
grpc.ServerStream
}
func (x *flightServiceDoGetServer) Send(m *FlightData) error {
return x.ServerStream.SendMsg(m)
}
type FlightService_DoPutServer interface {
Send(*PutResult) error
Recv() (*FlightData, error)
grpc.ServerStream
}
type flightServiceDoPutServer struct {
grpc.ServerStream
}
func (x *flightServiceDoPutServer) Send(m *PutResult) error {
return x.ServerStream.SendMsg(m)
}
func (x *flightServiceDoPutServer) Recv() (*FlightData, error) {
m := new(FlightData)
if err := x.ServerStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
type FlightService_DoExchangeServer interface {
Send(*FlightData) error
Recv() (*FlightData, error)
grpc.ServerStream
}
type flightServiceDoExchangeServer struct {
grpc.ServerStream
}
func (x *flightServiceDoExchangeServer) Send(m *FlightData) error {
return x.ServerStream.SendMsg(m)
}
func (x *flightServiceDoExchangeServer) Recv() (*FlightData, error) {
m := new(FlightData)
if err := x.ServerStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
type FlightService_DoActionServer interface {
Send(*Result) error
grpc.ServerStream
}
type flightServiceDoActionServer struct {
grpc.ServerStream
}
func (x *flightServiceDoActionServer) Send(m *Result) error {
return x.ServerStream.SendMsg(m)
}
type FlightService_ListActionsServer interface {
Send(*ActionType) error
grpc.ServerStream
}
type flightServiceListActionsServer struct {
grpc.ServerStream
}
func (x *flightServiceListActionsServer) Send(m *ActionType) error {
return x.ServerStream.SendMsg(m)
}
// RegisterFlightServiceService registers a service implementation with a gRPC server.
func RegisterFlightServiceService(s grpc.ServiceRegistrar, srv *FlightServiceService) {
srvCopy := *srv
if srvCopy.Handshake == nil {
srvCopy.Handshake = func(FlightService_HandshakeServer) error {
return status.Errorf(codes.Unimplemented, "method Handshake not implemented")
}
}
if srvCopy.ListFlights == nil {
srvCopy.ListFlights = func(*Criteria, FlightService_ListFlightsServer) error {
return status.Errorf(codes.Unimplemented, "method ListFlights not implemented")
}
}
if srvCopy.GetFlightInfo == nil {
srvCopy.GetFlightInfo = func(context.Context, *FlightDescriptor) (*FlightInfo, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetFlightInfo not implemented")
}
}
if srvCopy.GetSchema == nil {
srvCopy.GetSchema = func(context.Context, *FlightDescriptor) (*SchemaResult, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetSchema not implemented")
}
}
if srvCopy.DoGet == nil {
srvCopy.DoGet = func(*Ticket, FlightService_DoGetServer) error {
return status.Errorf(codes.Unimplemented, "method DoGet not implemented")
}
}
if srvCopy.DoPut == nil {
srvCopy.DoPut = func(FlightService_DoPutServer) error {
return status.Errorf(codes.Unimplemented, "method DoPut not implemented")
}
}
if srvCopy.DoExchange == nil {
srvCopy.DoExchange = func(FlightService_DoExchangeServer) error {
return status.Errorf(codes.Unimplemented, "method DoExchange not implemented")
}
}
if srvCopy.DoAction == nil {
srvCopy.DoAction = func(*Action, FlightService_DoActionServer) error {
return status.Errorf(codes.Unimplemented, "method DoAction not implemented")
}
}
if srvCopy.ListActions == nil {
srvCopy.ListActions = func(*Empty, FlightService_ListActionsServer) error {
return status.Errorf(codes.Unimplemented, "method ListActions not implemented")
}
}
sd := grpc.ServiceDesc{
ServiceName: "arrow.flight.protocol.FlightService",
Methods: []grpc.MethodDesc{
{
MethodName: "GetFlightInfo",
Handler: srvCopy.getFlightInfo,
},
{
MethodName: "GetSchema",
Handler: srvCopy.getSchema,
},
},
Streams: []grpc.StreamDesc{
{
StreamName: "Handshake",
Handler: srvCopy.handshake,
ServerStreams: true,
ClientStreams: true,
},
{
StreamName: "ListFlights",
Handler: srvCopy.listFlights,
ServerStreams: true,
},
{
StreamName: "DoGet",
Handler: srvCopy.doGet,
ServerStreams: true,
},
{
StreamName: "DoPut",
Handler: srvCopy.doPut,
ServerStreams: true,
ClientStreams: true,
},
{
StreamName: "DoExchange",
Handler: srvCopy.doExchange,
ServerStreams: true,
ClientStreams: true,
},
{
StreamName: "DoAction",
Handler: srvCopy.doAction,
ServerStreams: true,
},
{
StreamName: "ListActions",
Handler: srvCopy.listActions,
ServerStreams: true,
},
},
Metadata: "Flight.proto",
}
s.RegisterService(&sd, nil)
}
// NewFlightServiceService creates a new FlightServiceService containing the
// implemented methods of the FlightService service in s. Any unimplemented
// methods will result in the gRPC server returning an UNIMPLEMENTED status to the client.
// This includes situations where the method handler is misspelled or has the wrong
// signature. For this reason, this function should be used with great care and
// is not recommended to be used by most users.
func NewFlightServiceService(s interface{}) *FlightServiceService {
ns := &FlightServiceService{}
if h, ok := s.(interface {
Handshake(FlightService_HandshakeServer) error
}); ok {
ns.Handshake = h.Handshake
}
if h, ok := s.(interface {
ListFlights(*Criteria, FlightService_ListFlightsServer) error
}); ok {
ns.ListFlights = h.ListFlights
}
if h, ok := s.(interface {
GetFlightInfo(context.Context, *FlightDescriptor) (*FlightInfo, error)
}); ok {
ns.GetFlightInfo = h.GetFlightInfo
}
if h, ok := s.(interface {
GetSchema(context.Context, *FlightDescriptor) (*SchemaResult, error)
}); ok {
ns.GetSchema = h.GetSchema
}
if h, ok := s.(interface {
DoGet(*Ticket, FlightService_DoGetServer) error
}); ok {
ns.DoGet = h.DoGet
}
if h, ok := s.(interface {
DoPut(FlightService_DoPutServer) error
}); ok {
ns.DoPut = h.DoPut
}
if h, ok := s.(interface {
DoExchange(FlightService_DoExchangeServer) error
}); ok {
ns.DoExchange = h.DoExchange
}
if h, ok := s.(interface {
DoAction(*Action, FlightService_DoActionServer) error
}); ok {
ns.DoAction = h.DoAction
}
if h, ok := s.(interface {
ListActions(*Empty, FlightService_ListActionsServer) error
}); ok {
ns.ListActions = h.ListActions
}
return ns
}
// UnstableFlightServiceService is the service API for FlightService service.
// New methods may be added to this interface if they are added to the service
// definition, which is not a backward-compatible change. For this reason,
// use of this type is not recommended.
type UnstableFlightServiceService interface {
//
// Handshake between client and server. Depending on the server, the
// handshake may be required to determine the token that should be used for
// future operations. Both request and response are streams to allow multiple
// round-trips depending on auth mechanism.
Handshake(FlightService_HandshakeServer) error
//
// Get a list of available streams given a particular criteria. Most flight
// services will expose one or more streams that are readily available for
// retrieval. This api allows listing the streams available for
// consumption. A user can also provide a criteria. The criteria can limit
// the subset of streams that can be listed via this interface. Each flight
// service allows its own definition of how to consume criteria.
ListFlights(*Criteria, FlightService_ListFlightsServer) error
//
// For a given FlightDescriptor, get information about how the flight can be
// consumed. This is a useful interface if the consumer of the interface
// already can identify the specific flight to consume. This interface can
// also allow a consumer to generate a flight stream through a specified
// descriptor. For example, a flight descriptor might be something that
// includes a SQL statement or a Pickled Python operation that will be
// executed. In those cases, the descriptor will not be previously available
// within the list of available streams provided by ListFlights but will be
// available for consumption for the duration defined by the specific flight
// service.
GetFlightInfo(context.Context, *FlightDescriptor) (*FlightInfo, error)
//
// For a given FlightDescriptor, get the Schema as described in Schema.fbs::Schema
// This is used when a consumer needs the Schema of flight stream. Similar to
// GetFlightInfo this interface may generate a new flight that was not previously
// available in ListFlights.
GetSchema(context.Context, *FlightDescriptor) (*SchemaResult, error)
//
// Retrieve a single stream associated with a particular descriptor
// associated with the referenced ticket. A Flight can be composed of one or
// more streams where each stream can be retrieved using a separate opaque
// ticket that the flight service uses for managing a collection of streams.
DoGet(*Ticket, FlightService_DoGetServer) error
//
// Push a stream to the flight service associated with a particular
// flight stream. This allows a client of a flight service to upload a stream
// of data. Depending on the particular flight service, a client consumer
// could be allowed to upload a single stream per descriptor or an unlimited
// number. In the latter, the service might implement a 'seal' action that
// can be applied to a descriptor once all streams are uploaded.
DoPut(FlightService_DoPutServer) error
//
// Open a bidirectional data channel for a given descriptor. This
// allows clients to send and receive arbitrary Arrow data and
// application-specific metadata in a single logical stream. In
// contrast to DoGet/DoPut, this is more suited for clients
// offloading computation (rather than storage) to a Flight service.
DoExchange(FlightService_DoExchangeServer) error
//
// Flight services can support an arbitrary number of simple actions in
// addition to the possible ListFlights, GetFlightInfo, DoGet, DoPut
// operations that are potentially available. DoAction allows a flight client
// to do a specific action against a flight service. An action includes
// opaque request and response objects that are specific to the type action
// being undertaken.
DoAction(*Action, FlightService_DoActionServer) error
//
// A flight service exposes all of the available action types that it has
// along with descriptions. This allows different flight consumers to
// understand the capabilities of the flight service.
ListActions(*Empty, FlightService_ListActionsServer) error
}