github.com/true-sqn/fabric@v2.1.1+incompatible/discovery/support/support.go (about)

     1  /*
     2  Copyright IBM Corp. All Rights Reserved.
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  */
     6  
     7  package support
     8  
     9  import (
    10  	"github.com/hyperledger/fabric/common/channelconfig"
    11  	"github.com/hyperledger/fabric/common/configtx"
    12  	"github.com/hyperledger/fabric/common/policies"
    13  	"github.com/hyperledger/fabric/discovery"
    14  	"github.com/hyperledger/fabric/discovery/support/acl"
    15  	"github.com/hyperledger/fabric/discovery/support/config"
    16  	"github.com/hyperledger/fabric/msp"
    17  )
    18  
    19  //go:generate mockery -dir . -name GossipSupport -case underscore -output mocks/
    20  
    21  // GossipSupport is the local interface used to generate mocks for foreign interface.
    22  type GossipSupport interface {
    23  	discovery.GossipSupport
    24  }
    25  
    26  //go:generate mockery -dir . -name ChannelPolicyManagerGetter -case underscore  -output mocks/
    27  
    28  // ChannelPolicyManagerGetter is the local interface used to generate mocks for foreign interface.
    29  type ChannelPolicyManagerGetter interface {
    30  	acl.ChannelPolicyManagerGetter
    31  }
    32  
    33  //go:generate mockery -dir . -name PolicyManager -case underscore  -output mocks/
    34  
    35  type PolicyManager interface {
    36  	policies.Manager
    37  }
    38  
    39  //go:generate counterfeiter -o mocks/channel_config_getter.go --fake-name ChannelConfigGetter . channelConfigGetter
    40  type channelConfigGetter interface {
    41  	acl.ChannelConfigGetter
    42  }
    43  
    44  //go:generate counterfeiter -o mocks/config_block_getter.go --fake-name ConfigBlockGetter . configBlockGetter
    45  type configBlockGetter interface {
    46  	config.CurrentConfigBlockGetter
    47  }
    48  
    49  //go:generate counterfeiter -o mocks/configtx_validator.go --fake-name ConfigtxValidator . configtxValidator
    50  type configtxValidator interface {
    51  	configtx.Validator
    52  }
    53  
    54  //go:generate counterfeiter -o mocks/evaluator.go --fake-name Evaluator . evaluator
    55  type evaluator interface {
    56  	acl.Evaluator
    57  }
    58  
    59  //go:generate counterfeiter -o mocks/identity.go --fake-name Identity . identity
    60  type identity interface {
    61  	msp.Identity
    62  }
    63  
    64  //go:generate counterfeiter -o mocks/msp_manager.go --fake-name MSPManager . mspManager
    65  type mspManager interface {
    66  	msp.MSPManager
    67  }
    68  
    69  //go:generate counterfeiter -o mocks/resources.go --fake-name Resources . resources
    70  type resources interface {
    71  	channelconfig.Resources
    72  }
    73  
    74  //go:generate counterfeiter -o mocks/verifier.go --fake-name Verifier . verifier
    75  type verifier interface {
    76  	acl.Verifier
    77  }
    78  
    79  // DiscoverySupport aggregates all the support needed for the discovery service
    80  type DiscoverySupport struct {
    81  	discovery.AccessControlSupport
    82  	discovery.GossipSupport
    83  	discovery.EndorsementSupport
    84  	discovery.ConfigSupport
    85  	discovery.ConfigSequenceSupport
    86  }
    87  
    88  // NewDiscoverySupport returns an aggregated discovery support
    89  func NewDiscoverySupport(
    90  	access discovery.AccessControlSupport,
    91  	gossip discovery.GossipSupport,
    92  	endorsement discovery.EndorsementSupport,
    93  	config discovery.ConfigSupport,
    94  	sequence discovery.ConfigSequenceSupport,
    95  ) *DiscoverySupport {
    96  	return &DiscoverySupport{
    97  		AccessControlSupport:  access,
    98  		GossipSupport:         gossip,
    99  		EndorsementSupport:    endorsement,
   100  		ConfigSupport:         config,
   101  		ConfigSequenceSupport: sequence,
   102  	}
   103  }