1 /* 2 * 3 * Copyright 2023 Google LLC 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * https://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 */ 18 19 // Package stream provides an interface for bidirectional streaming to the S2A server. 20 package stream 21 22 import ( 23 s2av2pb "github.com/google/s2a-go/internal/proto/v2/s2a_go_proto" 24 ) 25 26 // S2AStream defines the operation for communicating with the S2A server over a bidirectional stream. 27 type S2AStream interface { 28 // Send sends the message to the S2A server. 29 Send(*s2av2pb.SessionReq) error 30 // Recv receives the message from the S2A server. 31 Recv() (*s2av2pb.SessionResp, error) 32 // Closes the channel to the S2A server. 33 CloseSend() error 34 } 35