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) ChaincodeServerInfo ¶
func (r *Router) ChaincodeServerInfo(ccid string) (*ccintf.ChaincodeServerInfo, 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) Stop() error
func (UninitializedInstance) Wait ¶
func (UninitializedInstance) Wait() (int, error)