plugins

package
v1.4.8 Latest Latest
Warning

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

Go to latest
Published: Mar 22, 2021 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.

* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.

* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.

Index

Constants

View Source
const (
	PluginServicecenter PluginType = iota

	BUILDIN = "buildin"
	STATIC  = "static"
	DYNAMIC = "dynamic"
)

Variables

This section is empty.

Functions

func DynamicPluginFunc

func DynamicPluginFunc(pn PluginType, funcName string) pg.Symbol

func LoadPlugins

func LoadPlugins()

func RegisterPlugin

func RegisterPlugin(p *Plugin)

func SetPluginConfig

func SetPluginConfig(key, val string)

func ToSCConfig

func ToSCConfig(opts ...SCConfigOption) client.Config

Types

type Adaptor

type Adaptor interface {
	New(opts ...SCConfigOption) (Servicecenter, error)
}

Adaptor the plugin adaptor of repository

type Manager

type Manager map[PluginType]*pluginMap

func Plugins

func Plugins() Manager

func (Manager) Get

func (m Manager) Get(pn PluginType, name string) *Plugin

func (Manager) Instance

func (m Manager) Instance(pn PluginType) PluginInstance

func (Manager) New

func (m Manager) New(pn PluginType)

func (Manager) Register

func (m Manager) Register(p *Plugin)

func (Manager) Servicecenter

func (m Manager) Servicecenter() Adaptor

type Plugin

type Plugin struct {
	Kind PluginType
	Name string
	New  func() PluginInstance
}

type PluginInstance

type PluginInstance interface{}

type PluginType

type PluginType int

func (PluginType) String

func (p PluginType) String() string

type SCConfigOption

type SCConfigOption func(*scOption)

func WithEndpoints

func WithEndpoints(endpoints []string) SCConfigOption

func WithTLSCAFile

func WithTLSCAFile(tlsCAFile string) SCConfigOption

func WithTLSCertFile

func WithTLSCertFile(tlsCertFile string) SCConfigOption

func WithTLSEnabled

func WithTLSEnabled(tlsEnabled bool) SCConfigOption

func WithTLSKeyFile

func WithTLSKeyFile(tlsKeyFile string) SCConfigOption

func WithTLSPassphrase

func WithTLSPassphrase(tlsPassphrase string) SCConfigOption

func WithTLSVerifyPeer

func WithTLSVerifyPeer(tlsVerifyPeer bool) SCConfigOption

type Servicecenter

type Servicecenter interface {
	GetAll(ctx context.Context) (*pb.SyncData, error)
	CreateService(ctx context.Context, domainProject string, service *pb.SyncService) (string, error)
	DeleteService(ctx context.Context, domainProject, serviceId string) error
	ServiceExistence(ctx context.Context, domainProject string, service *pb.SyncService) (string, error)
	RegisterInstance(ctx context.Context, domainProject, serviceId string, instance *pb.SyncInstance) (string, error)
	UnregisterInstance(ctx context.Context, domainProject, serviceId, instanceId string) error
	Heartbeat(ctx context.Context, domainProject, serviceId, instanceId string) error
}

Servicecenter servicecenter interface

Directories

Path Synopsis
* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.
* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.
* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.
* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.

Jump to

Keyboard shortcuts

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