Documentation
¶
Overview ¶
Package client is an AgentCommunication client library.
Index ¶
- Variables
- func NewClient(ctx context.Context, regional bool, opts ...option.ClientOption) (*agentcommunication.Client, error)
- func SendAgentMessage(ctx context.Context, channelID string, client *agentcommunication.Client, ...) (*acpb.SendAgentMessageResponse, error)
- type Connection
- type ErrUnsupportedUniverse
- type MetadataInitData
Constants ¶
This section is empty.
Variables ¶
var ( // DebugLogging enables debug logging. DebugLogging = false // ErrConnectionClosed is an error indicating that the connection was closed by the caller. ErrConnectionClosed = errors.New("connection closed") // ErrMessageTimeout is an error indicating message send timed out. ErrMessageTimeout = errors.New("timed out waiting for response") // ErrResourceExhausted is an error indicating that the server responded to the send with // ResourceExhausted. ErrResourceExhausted = errors.New("resource exhausted") // ErrGettingInstanceToken is an error indicating that the instance token could not be retrieved. ErrGettingInstanceToken = errors.New("error getting instance token") )
var ( // MetadataInitFunc is a function that initializes the metadata. If not set, the metadata will be // initialized for GCE. MetadataInitFunc func() (*MetadataInitData, error) = initGCEMetadata )
Functions ¶
func NewClient ¶
func NewClient(ctx context.Context, regional bool, opts ...option.ClientOption) (*agentcommunication.Client, error)
NewClient creates a new agent communication grpc client. Caller must close the returned client when it is done being used to clean up its underlying connections.
func SendAgentMessage ¶
func SendAgentMessage(ctx context.Context, channelID string, client *agentcommunication.Client, msg *acpb.MessageBody) (*acpb.SendAgentMessageResponse, error)
SendAgentMessage sends a message to the client. This is equivalent to sending a message via StreamAgentMessages with a single message and waiting for the response.
Types ¶
type Connection ¶
type Connection struct {
// contains filtered or unexported fields
}
Connection is an AgentCommunication connection.
func CreateConnection ¶
func CreateConnection(ctx context.Context, channelID string, regional bool, opts ...option.ClientOption) (*Connection, error)
CreateConnection creates a new connection. DEPRECATED: Use NewConnection instead.
func NewConnection ¶
func NewConnection(ctx context.Context, channelID string, client *agentcommunication.Client) (*Connection, error)
NewConnection creates a new streaming connection. Caller is responsible for calling Close() on the connection when done, certain errors will cause the connection to be closed automatically. The passed in client will not be closed and can be reused.
func (*Connection) MessageBandwidthLimit ¶
func (c *Connection) MessageBandwidthLimit() int
MessageBandwidthLimit returns the message bandwidth limit (in bytes/minute) for the connection.
func (*Connection) MessageRateLimit ¶
func (c *Connection) MessageRateLimit() int
MessageRateLimit returns the message limit (in messages/minute) for the connection.
func (*Connection) Receive ¶
func (c *Connection) Receive() (*acpb.MessageBody, error)
Receive messages, Receive should be called continuously for the life of the stream connection, any delay in Receive when there are queued messages will cause the server to disconnect the stream. This means handling the MessageBody from Receive should not be blocking, offload message handling to another goroutine and immediately call Receive again.
func (*Connection) SendMessage ¶
func (c *Connection) SendMessage(msg *acpb.MessageBody) error
SendMessage sends a message to the client. Will automatically retry on message timeout (temporary disconnects) and in the case of ResourceExhausted with a backoff. Because retries are limited the returned error can in some cases be one of ErrMessageTimeout or ErrResourceExhausted, in which case send should be retried by the caller.
type ErrUnsupportedUniverse ¶
type ErrUnsupportedUniverse struct {
// contains filtered or unexported fields
}
ErrUnsupportedUniverse is an error indicating that ACS is not supported in the specified TPC universe.
func (*ErrUnsupportedUniverse) Error ¶
func (e *ErrUnsupportedUniverse) Error() string
Error returns the error message for ErrUnsupportedUniverse.
func (*ErrUnsupportedUniverse) Is ¶
func (e *ErrUnsupportedUniverse) Is(target error) bool
Is returns true if the error is an ErrUnsupportedUniverse.
Directories
¶
| Path | Synopsis |
|---|---|
|
Example usage of the ACS client library.
|
Example usage of the ACS client library. |
|
Package agentcommunication is an auto-generated package for the Agent Communication API.
|
Package agentcommunication is an auto-generated package for the Agent Communication API. |