Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BuildRegistry

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

func (*BuildRegistry) BuildStatus

func (br *BuildRegistry) BuildStatus(ccid string) (*BuildStatus, bool)

BuildStatus returns a BuildStatus for the ccid, and whether the caller is waiting in line (true), or this build status is new and their responsibility. If the build status is new, then the caller must call Notify with the error (or nil) upon completion.

func (*BuildRegistry) ResetBuildStatus

func (br *BuildRegistry) ResetBuildStatus(ccid string) *BuildStatus

ResetBuildStatus returns a new BuildStatus for the ccid. This build status is new and the caller's responsibility. The caller must use external locking to ensure the build status is not reset by another install request and must call Notify with the error (or nil) upon completion.

type BuildStatus

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

func NewBuildStatus

func NewBuildStatus() *BuildStatus

func (*BuildStatus) Done

func (bs *BuildStatus) Done() <-chan struct{}

func (*BuildStatus) Err

func (bs *BuildStatus) Err() error

func (*BuildStatus) Notify

func (bs *BuildStatus) Notify(err error)

type DockerBuilder

type DockerBuilder interface {
	Build(ccid string, metadata *persistence.ChaincodePackageMetadata, codePackageStream io.Reader) (Instance, error)
}

DockerBuilder is what is exposed by the dockercontroller

type ExternalBuilder

type ExternalBuilder interface {
	Build(ccid string, metadata []byte, codePackageStream io.Reader) (Instance, error)
}

ExternalBuilder is what is exposed by the dockercontroller

type Instance

type Instance interface {
	Start(peerConnection *ccintf.PeerConnection) error
	ChaincodeServerInfo() (*ccintf.ChaincodeServerInfo, error)
	Stop() error
	Wait() (int, error)
}

Instance represents a built chaincode instance, because of the docker legacy, calling this a built 'container' would be very misleading, and going forward with the external launcher 'image' also seemed inappropriate. So, the vague 'Instance' is used here.

type PackageProvider

type PackageProvider interface {
	GetChaincodePackage(packageID string) (md *persistence.ChaincodePackageMetadata, mdBytes []byte, codeStream io.ReadCloser, err error)
}

PackageProvider gets chaincode packages from the filesystem.

type Router

type Router struct {
	ExternalBuilder ExternalBuilder
	DockerBuilder   DockerBuilder

	PackageProvider PackageProvider
	// contains filtered or unexported fields
}

func (*Router) Build

func (r *Router) Build(ccid string) error

func (*Router) ChaincodeServerInfo

func (r *Router) ChaincodeServerInfo(ccid string) (*ccintf.ChaincodeServerInfo, error)

func (*Router) Start

func (r *Router) Start(ccid string, peerConnection *ccintf.PeerConnection) error

func (*Router) Stop

func (r *Router) Stop(ccid string) error

func (*Router) Wait

func (r *Router) Wait(ccid string) (int, error)

type UninitializedInstance

type UninitializedInstance struct{}

func (UninitializedInstance) ChaincodeServerInfo

func (UninitializedInstance) ChaincodeServerInfo() (*ccintf.ChaincodeServerInfo, error)

func (UninitializedInstance) Start

func (UninitializedInstance) Start(peerConnection *ccintf.PeerConnection) error

func (UninitializedInstance) Stop

func (UninitializedInstance) Wait

func (UninitializedInstance) Wait() (int, error)

Directories

Path Synopsis
mock
Code generated by counterfeiter.
Code generated by counterfeiter.
Code generated by counterfeiter.
Code generated by counterfeiter.