client

package module
v0.0.0-...-51115e0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 25, 2022 License: AGPL-3.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	UnaryClientInterceptors  []grpc.UnaryClientInterceptor
	StreamClientInterceptors []grpc.StreamClientInterceptor
	// contains filtered or unexported fields
}

func (*Client) Auth

func (c *Client) Auth() auth.AuthClient

func (*Client) Changelog

func (c *Client) Changelog() changelog.ChangelogClient

func (*Client) Cluster

func (c *Client) Cluster() cluster.ClusterClient

func (*Client) Container

func (c *Client) Container() container.ContainerSvcClient

func (*Client) Event

func (c *Client) Event() event.EventClient

func (*Client) File

func (c *Client) File() file.FileSvcClient

func (*Client) GitServer

func (c *Client) GitServer() gitserver.GitServerClient

func (*Client) Mars

func (c *Client) Mars() mars.MarsClient

func (*Client) Metrics

func (c *Client) Metrics() metrics.MetricsClient

func (*Client) Namespace

func (c *Client) Namespace() namespace.NamespaceClient

func (*Client) Picture

func (c *Client) Picture() picture.PictureClient

func (*Client) Project

func (c *Client) Project() project.ProjectClient

func (*Client) Version

func (c *Client) Version() version.VersionClient

type Group

type Group struct {
	// contains filtered or unexported fields
}

Group represents a class of work and forms a namespace in which units of work can be executed with duplicate suppression.

func (*Group) Do

func (g *Group) Do(key string, fn func() (interface{}, error)) (v interface{}, err error, shared bool)

Do executes and returns the results of the given function, making sure that only one execution is in-flight for a given key at a time. If a duplicate comes in, the duplicate caller waits for the original to complete and receives the same results. The return value shared indicates whether v was given to multiple callers.

func (*Group) DoChan

func (g *Group) DoChan(key string, fn func() (interface{}, error)) (<-chan Result, bool)

DoChan is like Do but returns a channel that will receive the results when they are ready. The second result is true if the function will eventually be called, false if it will not (because there is a pending request with this key).

func (*Group) ForgetUnshared

func (g *Group) ForgetUnshared(key string) bool

ForgetUnshared tells the singleflight to forget about a key if it is not shared with any other goroutines. Future calls to Do for a forgotten key will call the function rather than waiting for an earlier call to complete. Returns whether the key was forgotten or unknown--that is, whether no other goroutines are waiting for the result.

type Interface

type Interface interface {
	Auth() auth.AuthClient
	Changelog() changelog.ChangelogClient
	Cluster() cluster.ClusterClient
	Container() container.ContainerSvcClient
	Event() event.EventClient
	GitServer() gitserver.GitServerClient
	Mars() mars.MarsClient
	Metrics() metrics.MetricsClient
	Namespace() namespace.NamespaceClient
	Picture() picture.PictureClient
	File() file.FileSvcClient
	Project() project.ProjectClient
	Version() version.VersionClient
}

func NewClient

func NewClient(addr string, opts ...Option) (Interface, error)

type Option

type Option func(*Client)

func WithAuth

func WithAuth(username, password string) Option

func WithBearerToken

func WithBearerToken(token string) Option

func WithStreamClientInterceptor

func WithStreamClientInterceptor(op grpc.StreamClientInterceptor) Option

func WithTokenAutoRefresh

func WithTokenAutoRefresh() Option

WithTokenAutoRefresh TODO c.StreamClientInterceptors 有点难搞,好在目前没用到,之后用到了需要搞一下

func WithUnaryClientInterceptor

func WithUnaryClientInterceptor(op grpc.UnaryClientInterceptor) Option

type Result

type Result struct {
	Val    interface{}
	Err    error
	Shared bool
}

Result holds the results of Do, so they can be passed on a channel.

Directories

Path Synopsis
Package auth is a reverse proxy.
Package auth is a reverse proxy.
Package changelog is a reverse proxy.
Package changelog is a reverse proxy.
Package cluster is a reverse proxy.
Package cluster is a reverse proxy.
Package container is a reverse proxy.
Package container is a reverse proxy.
Package event is a reverse proxy.
Package event is a reverse proxy.
Package file is a reverse proxy.
Package file is a reverse proxy.
Package gitserver is a reverse proxy.
Package gitserver is a reverse proxy.
Package mars is a reverse proxy.
Package mars is a reverse proxy.
Package metrics is a reverse proxy.
Package metrics is a reverse proxy.
Package namespace is a reverse proxy.
Package namespace is a reverse proxy.
Package picture is a reverse proxy.
Package picture is a reverse proxy.
Package project is a reverse proxy.
Package project is a reverse proxy.
Package version is a reverse proxy.
Package version is a reverse proxy.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL