forked from hyperledger/fabric
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ccintf.go
48 lines (38 loc) · 1.11 KB
/
ccintf.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/*
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package ccintf
//This package defines the interfaces that support runtime and
//communication between chaincode and peer (chaincode support).
//Currently inproccontroller uses it. dockercontroller does not.
import (
"fmt"
pb "github.com/hyperledger/fabric/protos/peer"
)
// ChaincodeStream interface for stream between Peer and chaincode instance.
type ChaincodeStream interface {
Send(*pb.ChaincodeMessage) error
Recv() (*pb.ChaincodeMessage, error)
}
// CCSupport must be implemented by the chaincode support side in peer
// (such as chaincode_support)
type CCSupport interface {
HandleChaincodeStream(ChaincodeStream) error
}
// GetCCHandlerKey is used to pass CCSupport via context
func GetCCHandlerKey() string {
return "CCHANDLER"
}
//CCID encapsulates chaincode ID
type CCID struct {
Name string
Version string
}
//GetName returns canonical chaincode name based on the fields of CCID
func (ccid *CCID) GetName() string {
if ccid.Version != "" {
return fmt.Sprintf("%s-%s", ccid.Name, ccid.Version)
}
return ccid.Name
}