• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang e.New函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/fcavani/e.New函数的典型用法代码示例。如果您正苦于以下问题:Golang New函数的具体用法?Golang New怎么用?Golang New使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了New函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: ExportDel

func (i *Instances) ExportDel(sess, inst, method string, retval int) error {
	i.lck.Lock()
	defer i.lck.Unlock()
	s, found := i.Insts[sess]
	if !found {
		return e.New(ErrSessionNotFound)
	}
	in, found := s.Insts[inst]
	if !found {
		return e.New(ErrInstanceNotFound)
	}
	retvals, found := in.Export()[method]
	if !found {
		return e.New(ErrMethodNotFound)
	}
	_, found = retvals[retval]
	if !found {
		return e.New(ErrReturnValueNotFound)
	}
	delete(retvals, retval)
	if len(retvals) == 0 {
		delete(in.Export(), method)
	}
	return nil
}
开发者ID:fcavani,项目名称:gormethods,代码行数:25,代码来源:instances.go


示例2: NewMongoDb

func NewMongoDb(rawurl, collection string, safe *mgo.Safe, entry Entry, timeout time.Duration) (Storer, error) {
	var err error
	m := &MongoDb{}
	err = chkData(entry)
	if err != nil {
		return nil, e.Forward(err)
	}
	m.tentry = reflect.TypeOf(entry)
	if m.tentry.Kind() != reflect.Ptr {
		m.tentry = reflect.PtrTo(m.tentry)
	}
	m.session, err = mgo.DialWithTimeout(rawurl, timeout)
	if err != nil {
		return nil, e.New(err)
	}
	parsed, err := url.Parse(rawurl)
	if err != nil {
		return nil, e.New(err)
	}
	if safe == nil {
		safe = &mgo.Safe{}
	}
	m.session.SetSafe(safe)
	m.dbname = strings.Trim(parsed.Path, "/")
	m.db = m.session.DB(m.dbname)
	m.collection = collection
	m.c = m.db.C(collection)
	return m, nil
}
开发者ID:fcavani,项目名称:log,代码行数:29,代码来源:storemgo.go


示例3: Init

func (c *clone) Init(inst string) error {
	if c.Num <= 0 {
		return e.New("number of clones invalid")
	}
	if c.Session == nil {
		return e.New("nil Session")
	}
	if c.Num > c.MaxNum {
		return e.New("number of initial streams is greater than the maximun")
	}
	c.inst = inst
	c.once.Do(func() {
		c.conns = make([]connInst, 0, c.Num)
		log.ProtoLevel().Tag("gormethods", "client", "clone").Println("Init clones.")
		for i := 0; i < c.Num; i++ {
			conn, err := c.Session.NamedInstance(c.inst)
			if err != nil {
				log.ProtoLevel().Tag("gormethods", "client", "clone").Printf("New instance failed: %v.", err)
				continue
			}
			c.conns = append(c.conns, conn)
		}
	})
	return nil
}
开发者ID:fcavani,项目名称:gormethods,代码行数:25,代码来源:clone.go


示例4: Export

func (i *Instances) Export(sess, inst string, exp *ToExport) error {
	i.lck.Lock()
	defer i.lck.Unlock()
	s, found := i.Insts[sess]
	if !found {
		return e.New(ErrSessionNotFound)
	}
	in, found := s.Insts[inst]
	if !found {
		return e.New(ErrInstanceNotFound)
	}
	m, ok := in.Instance().Type().MethodByName(exp.Method)
	if !ok {
		return e.New(ErrMethodNotFound)
	}
	if exp.RetvalPos >= m.Type.NumOut() {
		return e.New(ErrInvRetval)
	}
	retvals, found := in.Export()[exp.Method]
	if !found {
		retvals = make(map[int]*Export)
		in.Export()[exp.Method] = retvals
	}
	if exp.Export.Client == nil {
		return e.New(ErrInvClient)
	}
	retvals[exp.RetvalPos] = exp.Export
	return nil
}
开发者ID:fcavani,项目名称:gormethods,代码行数:29,代码来源:instances.go


示例5: NewMulti

//NewMulti creates a MultiLog
func NewMulti(vals ...interface{}) LogBackend {
	if len(vals)%2 != 0 {
		Fail(e.New("parameters must be in pair of LogBackend and Formatter"))
		return nil
	}
	l := len(vals) / 2
	mp := make([]LogBackend, 0, l)
	for i := 0; i < len(vals); i += 2 {
		bak, ok := vals[i].(LogBackend)
		if !ok {
			Fail(e.New("not a LogBackend"))
			return nil
		}
		f, ok := vals[i+1].(Formatter)
		if !ok {
			Fail(e.New("not a Formatter"))
			return nil
		}
		bak.F(f)
		mp = append(mp, bak)
	}
	return &MultiLog{
		mp: mp,
	}
}
开发者ID:fcavani,项目名称:monlite,代码行数:26,代码来源:persistence.go


示例6: bind

func (a *Server) bind() (conn *net.UDPConn, err error) {
	if !a.NotMulticast && a.iface.Flags&net.FlagMulticast == net.FlagMulticast {
		gaddr, err := a.groupAddr()
		if err != nil {
			return nil, e.Forward(err)
		}
		conn, err = net.ListenMulticastUDP(a.Proto(), a.iface, gaddr)
		if err != nil {
			return nil, e.New(err)
		}
	} else {
		server, err := net.ResolveUDPAddr(a.Proto(), ":"+a.Port)
		if err != nil {
			return nil, e.New(err)
		}
		conn, err = net.ListenUDP(a.Proto(), server)
		if err != nil {
			return nil, e.New(err)
		}
	}
	a.ipver(conn.LocalAddr())
	_, a.Port, err = utilNet.SplitHostPort(conn.LocalAddr().String())
	if err != nil {
		return nil, e.Forward(err)
	}
	return
}
开发者ID:fcavani,项目名称:discover,代码行数:27,代码来源:server.go


示例7: Put

// Put inserts in the database the struct in v, v must have the fild _id and
// the field _rev both strings. Like the TestStruct struct.
func (c *Couch) Put(v interface{}) (id, rev string, err error) {
	data, err := json.Marshal(v)
	if err != nil {
		return "", "", e.Push(err, "can't serialize the data")
	}
	id = grepId(data)
	if id == "" {
		return "", "", e.New("document have no id")
	}
	code, resp, err := c.put(id, "", data)
	if err != nil && code == 409 {
		return "", "", e.Push(err, ErrDocConflict)
	} else if err != nil {
		return "", "", e.Push(err, "can't put the document")
	}
	if code == http.StatusCreated {
		ir := new(response)
		err := json.Unmarshal(resp, ir)
		if err != nil {
			return "", "", e.Push(e.Push(err, "can't desserialize returned data"), "can't put the document")
		}
		if !ir.Ok {
			return "", "", e.New("put failed")
		}
		return ir.Id, ir.Rev, nil
	}
	return "", "", e.Push(e.Push(err, e.New("received wrong response code, %v", code)), "can't put the document")
}
开发者ID:fcavani,项目名称:monlite,代码行数:30,代码来源:couch.go


示例8: PingHttp

// PingHttp connect a http or https server and try to
// receive something. If the server return a code different
// of 2xx, it will fail. Ignores insecure certificates.
func PingHttp(url *url.URL) error {
	resp, err := httpClient.Get(url.String())
	if e.Contains(err, "connection refused") {
		return e.Push(e.New(err), "get failed: connection refused")
	} else if err != nil {
		return e.Push(e.New(err), "get failed")
	}
	defer resp.Body.Close()
	buf := make([]byte, 4096)
	if resp.StatusCode < http.StatusOK || resp.StatusCode >= http.StatusMultipleChoices {
		n, err := resp.Body.Read(buf)
		if err != nil && err != io.EOF {
			return e.Forward(err)
		}
		buf = buf[:n]
		//status.Log(status.Protocol, "PingHttp status code is %v and received it from server: %v", resp.StatusCode, string(buf))
		log.ProtoLevel().Printf("PingHttp status code is %v and received it from server: %v", resp.StatusCode, string(buf))
		return e.New("returned status code %v, expected 2xx", resp.StatusCode)
	}
	_, err = resp.Body.Read(buf)
	if err != nil && err != io.EOF {
		return e.Forward(err)
	}
	return nil
}
开发者ID:fcavani,项目名称:ping,代码行数:28,代码来源:http.go


示例9: TypeOf

// TypeOf returns the type of val. If samething wrong occur return a error.
// This functoin don't panic.
func TypeOf(val reflect.Value) (t reflect.Type, err error) {
	defer func() {
		r := recover()
		if r != nil {
			switch v := r.(type) {
			case error:
				err = e.Forward(v)
			case string:
				if strings.Contains(v, "runtime error") {
					panic(r)
				}
				err = e.New(v)
			default:
				err = e.New("unable to type switch the recover data")
			}
		}
	}()
	t = val.Type()
	if t.Kind() == reflect.Interface {
		if val.Elem().IsValid() {
			t = val.Elem().Type()
		} else {
			err = e.New("invalid interface")
		}
	}
	return
}
开发者ID:fcavani,项目名称:gormethods,代码行数:29,代码来源:reflect.go


示例10: Put

func (t *transaction) Put(key string, data interface{}) error {
	if !t.write {
		return e.New(ErrReadOnly)
	}
	if key == "" {
		return e.New(ErrInvKey)
	}
	t.m[key] = data
	idx := *t.idx
	defer func() {
		*t.idx = idx
	}()
	if len(idx) == 0 {
		idx = append(idx, key)
		return nil
	}
	i := searchString(idx, key)
	if i >= len(idx) || idx[i] != key {
		if i+1 > len(idx) {
			idx = append(idx, key)
			return nil
		}
		idx = append(idx[:i], append([]string{key}, idx[i:]...)...)
	}
	return nil
}
开发者ID:fcavani,项目名称:log,代码行数:26,代码来源:storemap.go


示例11: Delete

// Delete deletes from database the id id with rev revision.
// If rev is empty Delete deletes the last revision.
func (c *Couch) Delete(id, rev string) (string, error) {
	if rev == "" {
		revision := new(idRev)
		err := c.Get(id, "", revision)
		if e.Equal(err, ErrCantGetDoc) {
			return "", e.Push(err, ErrDocDontExist)
		} else if err != nil {
			return "", e.Push(err, "not deleted")
		}
		rev = revision.Rev
	}
	rev = "rev=" + rev
	code, resp, err := c.delete(id, rev, nil)
	if err != nil && code == 404 {
		return "", e.Push(err, ErrDocDontExist)
	} else if err != nil {
		return "", e.Push(err, "not deleted")
	}
	if code != http.StatusOK && code != http.StatusAccepted {
		return "", e.New("can't delete the document, wrong code: %v", code)
	}
	dr := new(response)
	err = json.Unmarshal(resp, dr)
	if err != nil {
		return "", e.Push(e.Push(err, "can't desserialize returned data"), "can't put the document")
	}
	if !dr.Ok {
		return "", e.New("delete failed")
	}
	if dr.Id != id {
		return "", e.New("response with the wrong id")
	}
	return dr.Rev, nil
}
开发者ID:fcavani,项目名称:monlite,代码行数:36,代码来源:couch.go


示例12: do

func (c *client) do(method, path, params string, body []byte) (int, []byte, error) {
	url := utilUrl.Copy(c.url)
	url.Path += path
	url.RawQuery = params

	var buf io.Reader
	if len(body) > 0 {
		buf = bytes.NewBuffer(body)
	}

	req, err := http.NewRequest(method, url.String(), buf)
	if err != nil {
		return 0, nil, e.New("can't create request")
	}

	if c.url.User != nil {
		req.Header.Set("Authorization", authorizationHeader(url.User.String()))
	}
	req.Header.Set("Content-Type", "application/json")

	resp, err := HttpClient.Do(req)
	if err != nil {
		return 0, nil, e.Push(err, "can't put")
	}
	defer resp.Body.Close()

	if resp.StatusCode < http.StatusOK || resp.StatusCode >= http.StatusMultipleChoices {
		return resp.StatusCode, nil, e.New("wrong status code - %v: %v", resp.StatusCode, resp.Status)
	}

	var data []byte
	data, _ = ioutil.ReadAll(resp.Body)

	return resp.StatusCode, data, nil
}
开发者ID:fcavani,项目名称:monlite,代码行数:35,代码来源:couch.go


示例13: Construct

func (c *Constructors) Construct(name string, args ...interface{}) (reflect.Value, error) {
	c.lck.Lock()
	defer c.lck.Unlock()
	con, found := c.constructors[name]
	if !found {
		t, err := types.GetType(name)
		if err != nil {
			return reflect.Value{}, e.New(ErrTypeNotFound)
		}
		return types.Make(t), nil
	}
	vals := make([]reflect.Value, 0, len(args))
	for _, arg := range args {
		vals = append(vals, reflect.ValueOf(arg))
	}
	retvals := con.Call(vals)
	if len(retvals) != 2 {
		return reflect.Value{}, e.New(ErrInvReturn)
	}
	if retvals[1].Interface() != nil {
		err, ok := retvals[1].Interface().(error)
		if !ok {
			return reflect.Value{}, e.New(ErrInvReturn)
		}
		if err != nil {
			return reflect.Value{}, e.Forward(err)
		}
	}
	return retvals[0], nil
}
开发者ID:fcavani,项目名称:gormethods,代码行数:30,代码来源:constructor.go


示例14: getInt

func (i *Intface) getInt() error {
	if i.Interface != "" && i.iface == nil {
		ints, err := net.Interfaces()
		if err != nil {
			return e.New(err)
		}
		for _, in := range ints {
			if in.Name == i.Interface {
				i.iface = &in
				return nil
			}
		}
		return e.New("none interface with this name")
	} else if i.Interface == "" && i.iface == nil {
		ints, err := net.Interfaces()
		if err != nil {
			return e.New(err)
		}
		var intName string
		for _, in := range ints {
			if in.Flags&net.FlagMulticast == net.FlagMulticast || in.Flags&net.FlagBroadcast == net.FlagBroadcast || in.Flags&net.FlagBroadcast == net.FlagBroadcast {
				_, intName = getInterface(in)
				if intName == "" {
					continue
				}
				i.Interface = intName
				i.iface = &in
				break
			}
		}
	}
	return nil
}
开发者ID:fcavani,项目名称:discover,代码行数:33,代码来源:interface.go


示例15: NewStdFormatter

// NewStdFormatter crete a new formatter.
func NewStdFormatter(delim, tmpl string, entry Entry, values map[string]interface{}, timeformat string) (Formatter, error) {
	if delim == "" {
		return nil, e.New("invalid delimitator")
	}
	if tmpl == "" {
		return nil, e.New("invalid template")
	}
	if entry == nil {
		return nil, e.New("invalid entry")
	}
	if values == nil {
		return nil, e.New("invalid values")
	}
	if timeformat == "" {
		timeformat = TimeDateFormat
	}
	return &StdFormatter{
		Delim:      []byte(delim),
		Tmpl:       []byte(tmpl),
		E:          entry,
		Map:        values,
		Idx:        mkindex(entry),
		TimeFormat: timeformat,
	}, nil
}
开发者ID:fcavani,项目名称:log,代码行数:26,代码来源:formatter.go


示例16: makeFunction

func makeFunction(f *Func) (*Function, error) {
	var args []*Argument
	if len(f.Params.Arguments) >= 1 {
		args = f.Params.Arguments[0]
	}
	var results []*Argument
	if len(f.Params.Arguments) >= 2 {
		results = f.Params.Arguments[1]
	}
	found := -1
	for i, r := range results {
		if r.Type == "error" {
			found = i
		}
	}
	if found >= 0 && found != len(results)-1 {
		return nil, e.New("one error must be the last result")
	}
	named := false
	for i, r := range results {
		if len(r.Names) > 0 && i == 0 {
			named = true
		}
		if len(r.Names) == 0 && named {
			return nil, e.New("all results must be named")
		} else if len(r.Names) > 0 && !named {
			return nil, e.New("all results must be unnamed")
		}
		if r.Type == "error" && len(r.Names) > 0 && r.Names[len(r.Names)-1] != "err" {
			return nil, e.New("last error must be named err")
		}
	}
	if !named {
		for i, r := range results {
			if r.Type == "error" {
				r.Names = []string{"err"}
				continue
			}
			r.Names = []string{fmt.Sprintf("arg%v", i)}
		}
	}
	for i, arg := range args {
		for j, name := range arg.Names {
			if name == "_" {
				arg.Names[j] = "param" + strconv.Itoa(i) + strconv.Itoa(j)
			}
		}
	}
	function := &Function{
		Name:      f.Name,
		RecvVar:   f.Recv,
		RecvType:  f.RecvType,
		Arguments: args,
		Results:   results,
		ReturnErr: found >= 0,
		Comments:  f.Comments,
	}
	return function, nil
}
开发者ID:fcavani,项目名称:gormethods,代码行数:59,代码来源:file.go


示例17: CheckTag

// Check if a tag is formed with the corrects characters
func CheckTag(tag string) error {
	for _, v := range tag {
		if !u.IsLetter(v) && !unicode.IsDigit(v) && v != ' ' && v != '-' && v != '_' && v != '.' && v != '/' && v != ':' {
			return e.Push(e.New(ErrInvalidTagChar), e.New("the character '%v' is invalid", string([]byte{byte(v)})))
		}
	}
	return nil
}
开发者ID:fcavani,项目名称:tags,代码行数:9,代码来源:tags.go


示例18: CheckDomain

func CheckDomain(domain string) error {
	for _, v := range domain {
		if !uni.IsLetter(v) && !unicode.IsDigit(v) && v != '.' {
			return e.Push(e.New("invalid domain name"), e.New("the character '%v' in redirect is invalid", string([]byte{byte(v)})))
		}
	}
	return nil
}
开发者ID:fcavani,项目名称:text,代码行数:8,代码来源:validation.go


示例19: CheckObjectName

func CheckObjectName(name string) error {
	for _, v := range name {
		if !uni.IsLetter(v) && !unicode.IsDigit(v) && v != '-' && v != '_' && v != '*' && v != '{' && v != '}' && v != '/' && v != '.' && v != '[' && v != ']' {
			return e.Push(e.New(text.ErrInvCharacter), e.New("the character '%v' in object name is invalid", string([]byte{byte(v)})))
		}
	}
	return nil
}
开发者ID:fcavani,项目名称:gormethods,代码行数:8,代码来源:validate.go


示例20: CheckHash

// CheckHash the hash of a password.
func CheckHash(name string) error {
	for _, v := range name {
		if !uni.IsLetter(v) && !unicode.IsDigit(v) && v != '-' && v != '_' && v != '.' && v != '=' {
			return e.Push(e.New(text.ErrInvCharacter), e.New("the character '%v' in instance name is invalid", string([]byte{byte(v)})))
		}
	}
	return nil
}
开发者ID:fcavani,项目名称:gormethods,代码行数:9,代码来源:auth.go



注:本文中的github.com/fcavani/e.New函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang e.Push函数代码示例发布时间:2022-05-23
下一篇:
Golang e.Forward函数代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap