github.com/qxnw/lib4go@v0.0.0-20180426074627-c80c7e84b925/mq/mq.options.go (about)

     1  package mq
     2  
     3  import "github.com/qxnw/lib4go/logger"
     4  
     5  type OptionConf struct {
     6  	Logger     logger.ILogger
     7  	Address    string `json:"address"`
     8  	Version    string `json:"version"`
     9  	Persistent string `json:"persistent"`
    10  	Ack        string `json:"ack"`
    11  	Retry      bool   `json:"retry"`
    12  	Key        string `json:"key"`
    13  	Raw        string `json:"raw"`
    14  }
    15  
    16  //Option 配置选项
    17  type Option func(*OptionConf)
    18  
    19  //WithConf 根据配置文件初始化
    20  func WithConf(conf *OptionConf) Option {
    21  	return func(o *OptionConf) {
    22  		o = conf
    23  	}
    24  }
    25  
    26  //WithLogger 设置日志记录组件
    27  func WithLogger(logger logger.ILogger) Option {
    28  	return func(o *OptionConf) {
    29  		o.Logger = logger
    30  	}
    31  }
    32  
    33  //WithVersion 设置版本号
    34  func WithVersion(version string) Option {
    35  	return func(o *OptionConf) {
    36  		o.Version = version
    37  	}
    38  }
    39  
    40  //WithPersistent 设置数据模式
    41  func WithPersistent(persistent string) Option {
    42  	return func(o *OptionConf) {
    43  		o.Persistent = persistent
    44  	}
    45  }
    46  
    47  //WithAck 设置客户端确认模式
    48  func WithAck(ack string) Option {
    49  	return func(o *OptionConf) {
    50  		o.Ack = ack
    51  	}
    52  }
    53  
    54  //WithRaw 设置配置原串
    55  func WithRaw(raw string) Option {
    56  	return func(o *OptionConf) {
    57  		o.Raw = raw
    58  	}
    59  }
    60  
    61  //WithRetrySend 发送失败后重试
    62  func WithRetrySend(b bool) Option {
    63  	return func(o *OptionConf) {
    64  		o.Retry = b
    65  	}
    66  }
    67  
    68  //WithSignKey 设置数据加密key
    69  func WithSignKey(key string) Option {
    70  	return func(o *OptionConf) {
    71  		o.Key = key
    72  	}
    73  }