github.com/livekit/protocol@v1.16.1-0.20240517185851-47e4c6bba773/rpc/egress.psrpc.go (about) 1 // Code generated by protoc-gen-psrpc v0.5.1, DO NOT EDIT. 2 // source: rpc/egress.proto 3 4 package rpc 5 6 import ( 7 "context" 8 9 "github.com/livekit/psrpc" 10 "github.com/livekit/psrpc/pkg/client" 11 "github.com/livekit/psrpc/pkg/info" 12 "github.com/livekit/psrpc/pkg/rand" 13 "github.com/livekit/psrpc/pkg/server" 14 "github.com/livekit/psrpc/version" 15 ) 16 import livekit2 "github.com/livekit/protocol/livekit" 17 18 var _ = version.PsrpcVersion_0_5 19 20 // =============================== 21 // EgressInternal Client Interface 22 // =============================== 23 24 type EgressInternalClient interface { 25 StartEgress(ctx context.Context, topic string, req *StartEgressRequest, opts ...psrpc.RequestOption) (*livekit2.EgressInfo, error) 26 27 ListActiveEgress(ctx context.Context, topic string, req *ListActiveEgressRequest, opts ...psrpc.RequestOption) (<-chan *psrpc.Response[*ListActiveEgressResponse], error) 28 } 29 30 // =================================== 31 // EgressInternal ServerImpl Interface 32 // =================================== 33 34 type EgressInternalServerImpl interface { 35 StartEgress(context.Context, *StartEgressRequest) (*livekit2.EgressInfo, error) 36 StartEgressAffinity(context.Context, *StartEgressRequest) float32 37 38 ListActiveEgress(context.Context, *ListActiveEgressRequest) (*ListActiveEgressResponse, error) 39 } 40 41 // =============================== 42 // EgressInternal Server Interface 43 // =============================== 44 45 type EgressInternalServer interface { 46 RegisterStartEgressTopic(topic string) error 47 DeregisterStartEgressTopic(topic string) 48 RegisterListActiveEgressTopic(topic string) error 49 DeregisterListActiveEgressTopic(topic string) 50 51 // Close and wait for pending RPCs to complete 52 Shutdown() 53 54 // Close immediately, without waiting for pending RPCs 55 Kill() 56 } 57 58 // ===================== 59 // EgressInternal Client 60 // ===================== 61 62 type egressInternalClient struct { 63 client *client.RPCClient 64 } 65 66 // NewEgressInternalClient creates a psrpc client that implements the EgressInternalClient interface. 67 func NewEgressInternalClient(bus psrpc.MessageBus, opts ...psrpc.ClientOption) (EgressInternalClient, error) { 68 sd := &info.ServiceDefinition{ 69 Name: "EgressInternal", 70 ID: rand.NewClientID(), 71 } 72 73 sd.RegisterMethod("StartEgress", true, false, true, false) 74 sd.RegisterMethod("ListActiveEgress", false, true, false, false) 75 76 rpcClient, err := client.NewRPCClient(sd, bus, opts...) 77 if err != nil { 78 return nil, err 79 } 80 81 return &egressInternalClient{ 82 client: rpcClient, 83 }, nil 84 } 85 86 func (c *egressInternalClient) StartEgress(ctx context.Context, topic string, req *StartEgressRequest, opts ...psrpc.RequestOption) (*livekit2.EgressInfo, error) { 87 return client.RequestSingle[*livekit2.EgressInfo](ctx, c.client, "StartEgress", []string{topic}, req, opts...) 88 } 89 90 func (c *egressInternalClient) ListActiveEgress(ctx context.Context, topic string, req *ListActiveEgressRequest, opts ...psrpc.RequestOption) (<-chan *psrpc.Response[*ListActiveEgressResponse], error) { 91 return client.RequestMulti[*ListActiveEgressResponse](ctx, c.client, "ListActiveEgress", []string{topic}, req, opts...) 92 } 93 94 // ===================== 95 // EgressInternal Server 96 // ===================== 97 98 type egressInternalServer struct { 99 svc EgressInternalServerImpl 100 rpc *server.RPCServer 101 } 102 103 // NewEgressInternalServer builds a RPCServer that will route requests 104 // to the corresponding method in the provided svc implementation. 105 func NewEgressInternalServer(svc EgressInternalServerImpl, bus psrpc.MessageBus, opts ...psrpc.ServerOption) (EgressInternalServer, error) { 106 sd := &info.ServiceDefinition{ 107 Name: "EgressInternal", 108 ID: rand.NewServerID(), 109 } 110 111 s := server.NewRPCServer(sd, bus, opts...) 112 113 sd.RegisterMethod("StartEgress", true, false, true, false) 114 sd.RegisterMethod("ListActiveEgress", false, true, false, false) 115 return &egressInternalServer{ 116 svc: svc, 117 rpc: s, 118 }, nil 119 } 120 121 func (s *egressInternalServer) RegisterStartEgressTopic(topic string) error { 122 return server.RegisterHandler(s.rpc, "StartEgress", []string{topic}, s.svc.StartEgress, s.svc.StartEgressAffinity) 123 } 124 125 func (s *egressInternalServer) DeregisterStartEgressTopic(topic string) { 126 s.rpc.DeregisterHandler("StartEgress", []string{topic}) 127 } 128 129 func (s *egressInternalServer) RegisterListActiveEgressTopic(topic string) error { 130 return server.RegisterHandler(s.rpc, "ListActiveEgress", []string{topic}, s.svc.ListActiveEgress, nil) 131 } 132 133 func (s *egressInternalServer) DeregisterListActiveEgressTopic(topic string) { 134 s.rpc.DeregisterHandler("ListActiveEgress", []string{topic}) 135 } 136 137 func (s *egressInternalServer) Shutdown() { 138 s.rpc.Close(false) 139 } 140 141 func (s *egressInternalServer) Kill() { 142 s.rpc.Close(true) 143 } 144 145 // ============================== 146 // EgressHandler Client Interface 147 // ============================== 148 149 type EgressHandlerClient interface { 150 UpdateStream(ctx context.Context, topic string, req *livekit2.UpdateStreamRequest, opts ...psrpc.RequestOption) (*livekit2.EgressInfo, error) 151 152 StopEgress(ctx context.Context, topic string, req *livekit2.StopEgressRequest, opts ...psrpc.RequestOption) (*livekit2.EgressInfo, error) 153 } 154 155 // ================================== 156 // EgressHandler ServerImpl Interface 157 // ================================== 158 159 type EgressHandlerServerImpl interface { 160 UpdateStream(context.Context, *livekit2.UpdateStreamRequest) (*livekit2.EgressInfo, error) 161 162 StopEgress(context.Context, *livekit2.StopEgressRequest) (*livekit2.EgressInfo, error) 163 } 164 165 // ============================== 166 // EgressHandler Server Interface 167 // ============================== 168 169 type EgressHandlerServer interface { 170 RegisterUpdateStreamTopic(topic string) error 171 DeregisterUpdateStreamTopic(topic string) 172 RegisterStopEgressTopic(topic string) error 173 DeregisterStopEgressTopic(topic string) 174 175 // Close and wait for pending RPCs to complete 176 Shutdown() 177 178 // Close immediately, without waiting for pending RPCs 179 Kill() 180 } 181 182 // ==================== 183 // EgressHandler Client 184 // ==================== 185 186 type egressHandlerClient struct { 187 client *client.RPCClient 188 } 189 190 // NewEgressHandlerClient creates a psrpc client that implements the EgressHandlerClient interface. 191 func NewEgressHandlerClient(bus psrpc.MessageBus, opts ...psrpc.ClientOption) (EgressHandlerClient, error) { 192 sd := &info.ServiceDefinition{ 193 Name: "EgressHandler", 194 ID: rand.NewClientID(), 195 } 196 197 sd.RegisterMethod("UpdateStream", false, false, true, true) 198 sd.RegisterMethod("StopEgress", false, false, true, true) 199 200 rpcClient, err := client.NewRPCClient(sd, bus, opts...) 201 if err != nil { 202 return nil, err 203 } 204 205 return &egressHandlerClient{ 206 client: rpcClient, 207 }, nil 208 } 209 210 func (c *egressHandlerClient) UpdateStream(ctx context.Context, topic string, req *livekit2.UpdateStreamRequest, opts ...psrpc.RequestOption) (*livekit2.EgressInfo, error) { 211 return client.RequestSingle[*livekit2.EgressInfo](ctx, c.client, "UpdateStream", []string{topic}, req, opts...) 212 } 213 214 func (c *egressHandlerClient) StopEgress(ctx context.Context, topic string, req *livekit2.StopEgressRequest, opts ...psrpc.RequestOption) (*livekit2.EgressInfo, error) { 215 return client.RequestSingle[*livekit2.EgressInfo](ctx, c.client, "StopEgress", []string{topic}, req, opts...) 216 } 217 218 // ==================== 219 // EgressHandler Server 220 // ==================== 221 222 type egressHandlerServer struct { 223 svc EgressHandlerServerImpl 224 rpc *server.RPCServer 225 } 226 227 // NewEgressHandlerServer builds a RPCServer that will route requests 228 // to the corresponding method in the provided svc implementation. 229 func NewEgressHandlerServer(svc EgressHandlerServerImpl, bus psrpc.MessageBus, opts ...psrpc.ServerOption) (EgressHandlerServer, error) { 230 sd := &info.ServiceDefinition{ 231 Name: "EgressHandler", 232 ID: rand.NewServerID(), 233 } 234 235 s := server.NewRPCServer(sd, bus, opts...) 236 237 sd.RegisterMethod("UpdateStream", false, false, true, true) 238 sd.RegisterMethod("StopEgress", false, false, true, true) 239 return &egressHandlerServer{ 240 svc: svc, 241 rpc: s, 242 }, nil 243 } 244 245 func (s *egressHandlerServer) RegisterUpdateStreamTopic(topic string) error { 246 return server.RegisterHandler(s.rpc, "UpdateStream", []string{topic}, s.svc.UpdateStream, nil) 247 } 248 249 func (s *egressHandlerServer) DeregisterUpdateStreamTopic(topic string) { 250 s.rpc.DeregisterHandler("UpdateStream", []string{topic}) 251 } 252 253 func (s *egressHandlerServer) RegisterStopEgressTopic(topic string) error { 254 return server.RegisterHandler(s.rpc, "StopEgress", []string{topic}, s.svc.StopEgress, nil) 255 } 256 257 func (s *egressHandlerServer) DeregisterStopEgressTopic(topic string) { 258 s.rpc.DeregisterHandler("StopEgress", []string{topic}) 259 } 260 261 func (s *egressHandlerServer) Shutdown() { 262 s.rpc.Close(false) 263 } 264 265 func (s *egressHandlerServer) Kill() { 266 s.rpc.Close(true) 267 } 268 269 var psrpcFileDescriptor1 = []byte{ 270 // 491 bytes of a gzipped FileDescriptorProto 271 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xd1, 0x6e, 0x12, 0x41, 272 0x14, 0x86, 0x9d, 0x12, 0x96, 0xee, 0x41, 0x90, 0x8c, 0x35, 0x4c, 0x69, 0x1b, 0x29, 0x7a, 0xc1, 273 0x8d, 0x8b, 0xa1, 0x57, 0xde, 0x69, 0x0d, 0xb1, 0x24, 0x4d, 0x34, 0x60, 0x63, 0xa2, 0x17, 0x64, 274 0x99, 0x1d, 0xeb, 0x84, 0xdd, 0x9d, 0x71, 0xe6, 0x50, 0x9e, 0xa1, 0x8f, 0xe1, 0x2b, 0xf4, 0xc2, 275 0xa7, 0xf0, 0xa1, 0x0c, 0xb3, 0xb0, 0x5d, 0x68, 0x30, 0x5e, 0xce, 0xff, 0x9f, 0xff, 0xdb, 0x73, 276 0xce, 0xcc, 0x42, 0xc3, 0x68, 0xde, 0x13, 0xd7, 0x46, 0x58, 0x1b, 0x68, 0xa3, 0x50, 0xd1, 0x92, 277 0xd1, 0xbc, 0x55, 0x53, 0x1a, 0xa5, 0x4a, 0x57, 0x5a, 0xeb, 0x20, 0x96, 0x37, 0x62, 0x26, 0x71, 278 0x52, 0xac, 0xec, 0xfc, 0x29, 0x01, 0x1d, 0x63, 0x68, 0x70, 0xe0, 0xd4, 0x91, 0xf8, 0x39, 0x17, 279 0x16, 0xe9, 0x11, 0xf8, 0x59, 0xd9, 0x44, 0x46, 0x8c, 0xb4, 0x49, 0xd7, 0x1f, 0xed, 0x67, 0xc2, 280 0x30, 0xa2, 0x97, 0x50, 0x37, 0x4a, 0x25, 0x13, 0xae, 0x12, 0xad, 0xac, 0x44, 0xc1, 0xca, 0x6d, 281 0xd2, 0xad, 0xf6, 0x5f, 0x04, 0xab, 0x4f, 0x04, 0x23, 0xa5, 0x92, 0xf7, 0x6b, 0x77, 0x83, 0x7c, 282 0xf1, 0x68, 0x54, 0x33, 0x45, 0x97, 0xbe, 0x82, 0xd2, 0x42, 0x4c, 0x59, 0xd5, 0x21, 0x0e, 0x73, 283 0xc4, 0x17, 0x31, 0xdd, 0x0e, 0x2e, 0xeb, 0xe8, 0x00, 0xaa, 0x3a, 0x34, 0x28, 0xb9, 0xd4, 0x61, 284 0x8a, 0xac, 0xe6, 0x62, 0xa7, 0x79, 0xec, 0xd3, 0xbd, 0xb7, 0x1d, 0x2f, 0xe6, 0xe8, 0x47, 0x78, 285 0x82, 0x26, 0xe4, 0xb3, 0xc2, 0x10, 0x9e, 0x43, 0xbd, 0xcc, 0x51, 0x9f, 0x97, 0xfe, 0xce, 0x29, 286 0xea, 0xb8, 0x61, 0xd3, 0x33, 0x28, 0x3b, 0x85, 0x55, 0x1c, 0xe6, 0x68, 0x13, 0xb3, 0x9d, 0xce, 287 0x6a, 0x69, 0x13, 0x2a, 0x6e, 0x93, 0x32, 0x62, 0x25, 0xb7, 0x64, 0x6f, 0x79, 0x1c, 0x46, 0xf4, 288 0x00, 0xca, 0xa8, 0x66, 0x22, 0x65, 0xfb, 0x4e, 0xce, 0x0e, 0xf4, 0x19, 0x78, 0x0b, 0x3b, 0x99, 289 0x9b, 0x98, 0xf9, 0x99, 0xbc, 0xb0, 0x57, 0x26, 0x3e, 0xf7, 0xa1, 0x62, 0x32, 0x72, 0xe7, 0x10, 290 0x9a, 0x97, 0xd2, 0xe2, 0x3b, 0x8e, 0xf2, 0x66, 0xb3, 0xe5, 0xce, 0x1b, 0x60, 0x0f, 0x2d, 0xab, 291 0x55, 0x6a, 0x05, 0x3d, 0x01, 0xc8, 0xaf, 0xdb, 0x32, 0xd2, 0x2e, 0x75, 0xfd, 0x91, 0xbf, 0xbe, 292 0x6f, 0xdb, 0xff, 0x4d, 0xa0, 0x9e, 0x25, 0x86, 0x29, 0x0a, 0x93, 0x86, 0x31, 0xfd, 0x00, 0xd5, 293 0xc2, 0xb3, 0xa1, 0xcd, 0xc0, 0x68, 0x1e, 0x3c, 0x7c, 0x48, 0xad, 0xa7, 0xf9, 0x1e, 0xd6, 0x80, 294 0xef, 0xaa, 0x03, 0x77, 0xb7, 0xc4, 0x6b, 0x90, 0xb7, 0xe4, 0x35, 0xa1, 0xdf, 0xa0, 0xb1, 0xdd, 295 0x16, 0x3d, 0x76, 0xb4, 0x1d, 0x83, 0xb4, 0x4e, 0x76, 0xb8, 0xd9, 0x2c, 0x39, 0x7c, 0xaf, 0x4b, 296 0xfa, 0xbf, 0x08, 0xd4, 0x32, 0xfb, 0x22, 0x4c, 0xa3, 0x58, 0x18, 0x3a, 0x84, 0xc7, 0x57, 0x3a, 297 0x0a, 0x51, 0x8c, 0xd1, 0x88, 0x30, 0xa1, 0xc7, 0x79, 0x7f, 0x45, 0xf9, 0x9f, 0xdd, 0x7b, 0x77, 298 0xb7, 0x64, 0xaf, 0x41, 0xe8, 0x00, 0x60, 0x8c, 0x4a, 0xaf, 0x7a, 0x6e, 0xe5, 0xa5, 0xf7, 0xe2, 299 0xff, 0x60, 0xce, 0x4f, 0xbf, 0x3e, 0xbf, 0x96, 0xf8, 0x63, 0x3e, 0x0d, 0xb8, 0x4a, 0x7a, 0xab, 300 0xc2, 0x9e, 0xfb, 0x3b, 0xb9, 0x8a, 0x7b, 0x46, 0xf3, 0xa9, 0xe7, 0x4e, 0x67, 0x7f, 0x03, 0x00, 301 0x00, 0xff, 0xff, 0x47, 0x4e, 0x8e, 0x31, 0xe9, 0x03, 0x00, 0x00, 302 }