waymaker-client/go/genpb/locks/waymaker_locks_grpc.pb.go

415 lines
19 KiB
Go

// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.6.2
// - protoc v7.34.1
// source: waymaker_locks.proto
package waymaker
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.
// Requires gRPC-Go v1.64.0 or later.
const _ = grpc.SupportPackageIsVersion9
const (
WaymakerService_Lock_FullMethodName = "/waymaker.WaymakerService/Lock"
WaymakerService_ReadLock_FullMethodName = "/waymaker.WaymakerService/ReadLock"
WaymakerService_UnLock_FullMethodName = "/waymaker.WaymakerService/UnLock"
WaymakerService_LeaseStatus_FullMethodName = "/waymaker.WaymakerService/LeaseStatus"
WaymakerService_ExtendLease_FullMethodName = "/waymaker.WaymakerService/ExtendLease"
WaymakerService_MultiLock_FullMethodName = "/waymaker.WaymakerService/MultiLock"
WaymakerService_ListAcquiredLocks_FullMethodName = "/waymaker.WaymakerService/ListAcquiredLocks"
)
// WaymakerServiceClient is the client API for WaymakerService 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.
//
// WaymakerService defines a gRPC service for managing distributed locks.
type WaymakerServiceClient interface {
// Lock attempts to acquire a lock based on the provided LockRequest.
// The response is a stream of LockEvent messages that provide updates
// on the status of the lock acquisition.
Lock(ctx context.Context, in *LockRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[LockEvent], error)
// ReadLock attempts to acquire a read lock, which allows multiple readers
// but no writers to hold the lock simultaneously. The response is a stream
// of LockEvent messages that provide updates on the status of the lock acquisition.
ReadLock(ctx context.Context, in *LockRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[LockEvent], error)
// UnLock releases a previously acquired lock based on the provided UnLockRequest.
// The response is an UnLockResponse indicating the success or failure of the operation.
UnLock(ctx context.Context, in *UnLockRequest, opts ...grpc.CallOption) (*UnLockResponse, error)
// LeaseStatus retrieves the current status of a lock lease based on the provided
// LeaseStatusRequest. The response is a LeaseStatusResponse containing details
// about the lease.
LeaseStatus(ctx context.Context, in *LeaseStatusRequest, opts ...grpc.CallOption) (*LeaseStatusResponse, error)
// ExtendLease extends the lease of an already acquired lock based on the provided
// ExtendLeaseRequest. The response is an ExtendLeaseResponse indicating the success
// or failure of the operation and the updated lease information.
ExtendLease(ctx context.Context, in *ExtendLeaseRequest, opts ...grpc.CallOption) (*ExtendLeaseResponse, error)
// MultiLock acquires N locks atomically — all keys are granted or none are.
// The server sorts keys lexicographically to guarantee deadlock-free
// ordering between any two MultiLock callers (without this, callers asking
// for (k1,k2) and (k2,k1) could deadlock under contention). `max_wait_period`
// applies to the whole batch as a single deadline, not per key. On any
// failure the server releases every key it already acquired in this batch
// before returning. Returns a unary response — no streaming.
MultiLock(ctx context.Context, in *MultiLockRequest, opts ...grpc.CallOption) (*MultiLockResponse, error)
// ListAcquiredLocks returns every lock CURRENTLY HELD on the node serving the
// request (the node that owns each key via the consistent-hash ring). It is a
// read-only operator/introspection surface (waymaker-ctl `locks list`); it does
// NOT include waiters. An optional `key_prefix` filters the result server-side.
// In a multi-node cluster, call it on each node to see the full picture, since
// each node only holds the locks for the keys it owns.
ListAcquiredLocks(ctx context.Context, in *ListAcquiredLocksRequest, opts ...grpc.CallOption) (*ListAcquiredLocksResponse, error)
}
type waymakerServiceClient struct {
cc grpc.ClientConnInterface
}
func NewWaymakerServiceClient(cc grpc.ClientConnInterface) WaymakerServiceClient {
return &waymakerServiceClient{cc}
}
func (c *waymakerServiceClient) Lock(ctx context.Context, in *LockRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[LockEvent], error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
stream, err := c.cc.NewStream(ctx, &WaymakerService_ServiceDesc.Streams[0], WaymakerService_Lock_FullMethodName, cOpts...)
if err != nil {
return nil, err
}
x := &grpc.GenericClientStream[LockRequest, LockEvent]{ClientStream: 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
}
// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type WaymakerService_LockClient = grpc.ServerStreamingClient[LockEvent]
func (c *waymakerServiceClient) ReadLock(ctx context.Context, in *LockRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[LockEvent], error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
stream, err := c.cc.NewStream(ctx, &WaymakerService_ServiceDesc.Streams[1], WaymakerService_ReadLock_FullMethodName, cOpts...)
if err != nil {
return nil, err
}
x := &grpc.GenericClientStream[LockRequest, LockEvent]{ClientStream: 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
}
// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type WaymakerService_ReadLockClient = grpc.ServerStreamingClient[LockEvent]
func (c *waymakerServiceClient) UnLock(ctx context.Context, in *UnLockRequest, opts ...grpc.CallOption) (*UnLockResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(UnLockResponse)
err := c.cc.Invoke(ctx, WaymakerService_UnLock_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *waymakerServiceClient) LeaseStatus(ctx context.Context, in *LeaseStatusRequest, opts ...grpc.CallOption) (*LeaseStatusResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(LeaseStatusResponse)
err := c.cc.Invoke(ctx, WaymakerService_LeaseStatus_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *waymakerServiceClient) ExtendLease(ctx context.Context, in *ExtendLeaseRequest, opts ...grpc.CallOption) (*ExtendLeaseResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(ExtendLeaseResponse)
err := c.cc.Invoke(ctx, WaymakerService_ExtendLease_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *waymakerServiceClient) MultiLock(ctx context.Context, in *MultiLockRequest, opts ...grpc.CallOption) (*MultiLockResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(MultiLockResponse)
err := c.cc.Invoke(ctx, WaymakerService_MultiLock_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *waymakerServiceClient) ListAcquiredLocks(ctx context.Context, in *ListAcquiredLocksRequest, opts ...grpc.CallOption) (*ListAcquiredLocksResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(ListAcquiredLocksResponse)
err := c.cc.Invoke(ctx, WaymakerService_ListAcquiredLocks_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
// WaymakerServiceServer is the server API for WaymakerService service.
// All implementations must embed UnimplementedWaymakerServiceServer
// for forward compatibility.
//
// WaymakerService defines a gRPC service for managing distributed locks.
type WaymakerServiceServer interface {
// Lock attempts to acquire a lock based on the provided LockRequest.
// The response is a stream of LockEvent messages that provide updates
// on the status of the lock acquisition.
Lock(*LockRequest, grpc.ServerStreamingServer[LockEvent]) error
// ReadLock attempts to acquire a read lock, which allows multiple readers
// but no writers to hold the lock simultaneously. The response is a stream
// of LockEvent messages that provide updates on the status of the lock acquisition.
ReadLock(*LockRequest, grpc.ServerStreamingServer[LockEvent]) error
// UnLock releases a previously acquired lock based on the provided UnLockRequest.
// The response is an UnLockResponse indicating the success or failure of the operation.
UnLock(context.Context, *UnLockRequest) (*UnLockResponse, error)
// LeaseStatus retrieves the current status of a lock lease based on the provided
// LeaseStatusRequest. The response is a LeaseStatusResponse containing details
// about the lease.
LeaseStatus(context.Context, *LeaseStatusRequest) (*LeaseStatusResponse, error)
// ExtendLease extends the lease of an already acquired lock based on the provided
// ExtendLeaseRequest. The response is an ExtendLeaseResponse indicating the success
// or failure of the operation and the updated lease information.
ExtendLease(context.Context, *ExtendLeaseRequest) (*ExtendLeaseResponse, error)
// MultiLock acquires N locks atomically — all keys are granted or none are.
// The server sorts keys lexicographically to guarantee deadlock-free
// ordering between any two MultiLock callers (without this, callers asking
// for (k1,k2) and (k2,k1) could deadlock under contention). `max_wait_period`
// applies to the whole batch as a single deadline, not per key. On any
// failure the server releases every key it already acquired in this batch
// before returning. Returns a unary response — no streaming.
MultiLock(context.Context, *MultiLockRequest) (*MultiLockResponse, error)
// ListAcquiredLocks returns every lock CURRENTLY HELD on the node serving the
// request (the node that owns each key via the consistent-hash ring). It is a
// read-only operator/introspection surface (waymaker-ctl `locks list`); it does
// NOT include waiters. An optional `key_prefix` filters the result server-side.
// In a multi-node cluster, call it on each node to see the full picture, since
// each node only holds the locks for the keys it owns.
ListAcquiredLocks(context.Context, *ListAcquiredLocksRequest) (*ListAcquiredLocksResponse, error)
mustEmbedUnimplementedWaymakerServiceServer()
}
// UnimplementedWaymakerServiceServer must be embedded to have
// forward compatible implementations.
//
// NOTE: this should be embedded by value instead of pointer to avoid a nil
// pointer dereference when methods are called.
type UnimplementedWaymakerServiceServer struct{}
func (UnimplementedWaymakerServiceServer) Lock(*LockRequest, grpc.ServerStreamingServer[LockEvent]) error {
return status.Error(codes.Unimplemented, "method Lock not implemented")
}
func (UnimplementedWaymakerServiceServer) ReadLock(*LockRequest, grpc.ServerStreamingServer[LockEvent]) error {
return status.Error(codes.Unimplemented, "method ReadLock not implemented")
}
func (UnimplementedWaymakerServiceServer) UnLock(context.Context, *UnLockRequest) (*UnLockResponse, error) {
return nil, status.Error(codes.Unimplemented, "method UnLock not implemented")
}
func (UnimplementedWaymakerServiceServer) LeaseStatus(context.Context, *LeaseStatusRequest) (*LeaseStatusResponse, error) {
return nil, status.Error(codes.Unimplemented, "method LeaseStatus not implemented")
}
func (UnimplementedWaymakerServiceServer) ExtendLease(context.Context, *ExtendLeaseRequest) (*ExtendLeaseResponse, error) {
return nil, status.Error(codes.Unimplemented, "method ExtendLease not implemented")
}
func (UnimplementedWaymakerServiceServer) MultiLock(context.Context, *MultiLockRequest) (*MultiLockResponse, error) {
return nil, status.Error(codes.Unimplemented, "method MultiLock not implemented")
}
func (UnimplementedWaymakerServiceServer) ListAcquiredLocks(context.Context, *ListAcquiredLocksRequest) (*ListAcquiredLocksResponse, error) {
return nil, status.Error(codes.Unimplemented, "method ListAcquiredLocks not implemented")
}
func (UnimplementedWaymakerServiceServer) mustEmbedUnimplementedWaymakerServiceServer() {}
func (UnimplementedWaymakerServiceServer) testEmbeddedByValue() {}
// UnsafeWaymakerServiceServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to WaymakerServiceServer will
// result in compilation errors.
type UnsafeWaymakerServiceServer interface {
mustEmbedUnimplementedWaymakerServiceServer()
}
func RegisterWaymakerServiceServer(s grpc.ServiceRegistrar, srv WaymakerServiceServer) {
// If the following call panics, it indicates UnimplementedWaymakerServiceServer was
// embedded by pointer and is nil. This will cause panics if an
// unimplemented method is ever invoked, so we test this at initialization
// time to prevent it from happening at runtime later due to I/O.
if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
t.testEmbeddedByValue()
}
s.RegisterService(&WaymakerService_ServiceDesc, srv)
}
func _WaymakerService_Lock_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(LockRequest)
if err := stream.RecvMsg(m); err != nil {
return err
}
return srv.(WaymakerServiceServer).Lock(m, &grpc.GenericServerStream[LockRequest, LockEvent]{ServerStream: stream})
}
// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type WaymakerService_LockServer = grpc.ServerStreamingServer[LockEvent]
func _WaymakerService_ReadLock_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(LockRequest)
if err := stream.RecvMsg(m); err != nil {
return err
}
return srv.(WaymakerServiceServer).ReadLock(m, &grpc.GenericServerStream[LockRequest, LockEvent]{ServerStream: stream})
}
// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type WaymakerService_ReadLockServer = grpc.ServerStreamingServer[LockEvent]
func _WaymakerService_UnLock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(UnLockRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(WaymakerServiceServer).UnLock(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: WaymakerService_UnLock_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(WaymakerServiceServer).UnLock(ctx, req.(*UnLockRequest))
}
return interceptor(ctx, in, info, handler)
}
func _WaymakerService_LeaseStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(LeaseStatusRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(WaymakerServiceServer).LeaseStatus(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: WaymakerService_LeaseStatus_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(WaymakerServiceServer).LeaseStatus(ctx, req.(*LeaseStatusRequest))
}
return interceptor(ctx, in, info, handler)
}
func _WaymakerService_ExtendLease_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ExtendLeaseRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(WaymakerServiceServer).ExtendLease(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: WaymakerService_ExtendLease_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(WaymakerServiceServer).ExtendLease(ctx, req.(*ExtendLeaseRequest))
}
return interceptor(ctx, in, info, handler)
}
func _WaymakerService_MultiLock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(MultiLockRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(WaymakerServiceServer).MultiLock(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: WaymakerService_MultiLock_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(WaymakerServiceServer).MultiLock(ctx, req.(*MultiLockRequest))
}
return interceptor(ctx, in, info, handler)
}
func _WaymakerService_ListAcquiredLocks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ListAcquiredLocksRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(WaymakerServiceServer).ListAcquiredLocks(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: WaymakerService_ListAcquiredLocks_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(WaymakerServiceServer).ListAcquiredLocks(ctx, req.(*ListAcquiredLocksRequest))
}
return interceptor(ctx, in, info, handler)
}
// WaymakerService_ServiceDesc is the grpc.ServiceDesc for WaymakerService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var WaymakerService_ServiceDesc = grpc.ServiceDesc{
ServiceName: "waymaker.WaymakerService",
HandlerType: (*WaymakerServiceServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "UnLock",
Handler: _WaymakerService_UnLock_Handler,
},
{
MethodName: "LeaseStatus",
Handler: _WaymakerService_LeaseStatus_Handler,
},
{
MethodName: "ExtendLease",
Handler: _WaymakerService_ExtendLease_Handler,
},
{
MethodName: "MultiLock",
Handler: _WaymakerService_MultiLock_Handler,
},
{
MethodName: "ListAcquiredLocks",
Handler: _WaymakerService_ListAcquiredLocks_Handler,
},
},
Streams: []grpc.StreamDesc{
{
StreamName: "Lock",
Handler: _WaymakerService_Lock_Handler,
ServerStreams: true,
},
{
StreamName: "ReadLock",
Handler: _WaymakerService_ReadLock_Handler,
ServerStreams: true,
},
},
Metadata: "waymaker_locks.proto",
}