本文整理汇总了Golang中github.com/cosiner/gohper/unsafe2.Bytes函数的典型用法代码示例。如果您正苦于以下问题:Golang Bytes函数的具体用法?Golang Bytes怎么用?Golang Bytes使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Bytes函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: initRoutes
func initRoutes() bool {
if inited {
return false
}
inited = true
Handle("/goroutine", "Get goroutine info",
pprofLookupHandler("goroutine"))
Handle("/heap", "Get heap info",
pprofLookupHandler("heap"))
Handle("/thread", "Get thread create info",
pprofLookupHandler("threadcreate"))
Handle("/block", "Get block info",
pprofLookupHandler("block"))
Handle("/cpu", "Get CPU info, default seconds is 30, use ?seconds= to reset",
func(req zerver.Request, resp zerver.Response) {
var t int
if secs := req.Param("seconds"); secs != "" {
var err error
if t, err = strconv.Atoi(secs); err != nil {
resp.ReportBadRequest()
resp.WriteString(secs + " is not a integer number\n")
return
}
}
if t <= 0 {
t = 30
}
pprof.StartCPUProfile(resp)
time.Sleep(time.Duration(t) * time.Second)
pprof.StopCPUProfile()
})
Handle("/memory", "Get memory info",
func(req zerver.Request, resp zerver.Response) {
runtime.GC()
pprof.WriteHeapProfile(resp)
})
Handle("/routes", "Get all routes",
func(req zerver.Request, resp zerver.Response) {
req.Server().PrintRouteTree(resp)
})
Handle("/options", "Get all pprof options",
func(req zerver.Request, resp zerver.Response) {
if from := req.Param("from"); from != "" {
resp.Write(unsafe2.Bytes("There is no this pprof option: " + from + "\n"))
}
for i := range options {
resp.Write(unsafe2.Bytes(options[i]))
}
})
return inited
}
示例2: base
func base(out io.Writer, tmpl gotmpl.Tmpl, data interface{}) error {
var err error
_, err = out.Write(unsafe2.Bytes(``))
if err != nil {
return err
}
_, err = out.Write(unsafe2.Bytes(`
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
`))
if err != nil {
return err
}
err = tmpl.Encode(out, fmt.Sprint(data))
if err != nil {
return err
}
_, err = out.Write(unsafe2.Bytes(`
</body>
</html>
`))
if err != nil {
return err
}
err = tmpl.Encode(out, "aa")
if err != nil {
return err
}
_, err = out.Write(unsafe2.Bytes(`
`))
if err != nil {
return err
}
err = tmpl.Render(out, "tests/extend", "aa")
if err != nil {
return err
}
_, err = out.Write(unsafe2.Bytes(``))
if err != nil {
return err
}
return err
}
示例3: RenderTo
// RenderTo render string to writer
func (r *Renderer) RenderTo(w io.Writer, str string) (int, error) {
if str == "" || !r.enable {
return w.Write(unsafe2.Bytes(str))
}
if err := r.Begin(w); err == nil {
c, err := w.Write(unsafe2.Bytes(str))
r.End(w)
return c, err
} else {
return 0, err
}
}
示例4: VerifyFor
func (x *Xsrf) VerifyFor(req zerver.Request) bool {
m := req.ReqMethod()
if !x.FilterGet && (m == zerver.METHOD_GET || m == zerver.METHOD_HEAD || m == zerver.METHOD_OPTIONS) {
return true
}
token := req.GetHeader(_HEADER_XSRFTOKEN)
if token == "" {
token = req.GetHeader(_HEADER_CSRFTOKEN)
if token == "" {
token = req.Vars().QueryVar(_XSRF_PARAM_NAME)
if token == "" {
return false
}
}
}
data := x.verify(unsafe2.Bytes(token))
if data != nil {
x.Pool.Put(data)
t, ip := x.TokenInfo.Unmarshal(data)
return t != -1 &&
t+x.Timeout >= time2.Now().Unix() &&
ip == http2.IpOfAddr(req.RemoteAddr())
}
return false
}
示例5: VerifyFor
func (x *Xsrf) VerifyFor(req zerver.Request) bool {
m := req.Method()
if !x.FilterGet && (m == "GET" || m == "HEAD" || m == "OPTIONS") {
return true
}
token := req.Header(_HEADER_XSRFTOKEN)
if token == "" {
token = req.Header(_HEADER_CSRFTOKEN)
if token == "" {
token = req.Param(_XSRF_PARAM_NAME)
if token == "" {
return false
}
}
}
data := x.verify(unsafe2.Bytes(token))
if data != nil {
x.Pool.Put(data)
t, ip, agent := x.TokenInfo.Unmarshal(data)
return t != -1 &&
t+x.Timeout >= time2.Now().Unix() &&
ip == req.RemoteIP() &&
agent == req.UserAgent()
}
return false
}
示例6: WriteString
// WriteString write string to writer
func (m WriteMode) WriteString(fname, str string) (c int, err error) {
err = file.OpenOrCreate(fname, bool(m), func(fd *os.File) error {
c, err = fd.Write(unsafe2.Bytes(str))
return err
})
return
}
示例7: TestCipher
func TestCipher(t *testing.T) {
tt := testing2.Wrap(t)
c := NewCipher([]byte("12345"), time.Second*100, md5.New, encoding.Base64URL)
for _, s := range []string{"a", "b", "c", "d", "e", "fdddddddddddddddddddddd"} {
tok := c.Encode(unsafe2.Bytes(s))
tt.Log(string(tok), len(tok))
ds, err := c.Decode(tok)
tt.DeepEq(unsafe2.Bytes(s), ds).Nil(err)
}
for _, s := range []string{"a", "b", "c", "d", ""} {
tok := c.Encode(unsafe2.Bytes(s))
ds, err := c.Decode(tok)
tt.DeepEq(unsafe2.Bytes(s), ds).Nil(err)
}
}
示例8: WriteLString
// WriteL write a string list to writer, return total bytes writed
func WriteLString(w io.Writer, strs ...string) (n int, err error) {
var c int
for i := range strs {
if c, err = w.Write(unsafe2.Bytes(strs[i])); err == nil {
n += c
} else {
break
}
}
return
}
示例9: RenderStringTo
func (r *Renderer) RenderStringTo(w io.Writer, str ...string) (int, error) {
err := r.Begin(w)
var (
n int
c int
)
for i := 0; err == nil && i < len(str); i++ {
c, err = w.Write(unsafe2.Bytes(str[i]))
n += c
}
r.End(w)
return n, err
}
示例10: Write
func (w Writer) Write(bs []byte) (int, error) {
i, err := w.Writer.Write(unsafe2.Bytes(w.Prefix))
if err != nil {
return 0, err
}
n, err := w.RenderTo(w.Writer, unsafe2.String(bs))
if err != nil {
return 0, err
}
return n + i, nil
}
示例11: WriteIfString
func WriteIfString(w io.Writer, v interface{}) (bool, error) {
switch s := v.(type) {
case string:
_, err := w.Write(unsafe2.Bytes(s))
return true, err
case []byte:
_, err := w.Write(s)
return true, err
}
return false, nil
}
示例12: WriteGZIP
func WriteGZIP(w io.Writer, v interface{}) (err error) {
gw := gzip.NewWriter(w)
switch v := v.(type) {
case string:
_, err = gw.Write(unsafe2.Bytes(v))
case []byte:
_, err = gw.Write(v)
default:
err = errors.Err("Only support string and []byte")
}
gw.Close()
return
}
示例13: BenchmarkConn
func BenchmarkConn(b *testing.B) {
buf := make([]byte, 1024)
for i := 0; i < b.N; i++ {
fmt.Println(b.N, conn == nil)
conn.Write(unsafe2.Bytes("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"))
fmt.Println(b.N, conn == nil)
n, err := conn.Read(buf)
if err != nil {
return
}
buf = buf[:n]
buf = buf[:1024]
}
}
示例14: ReadCommenttedJSON
func ReadCommenttedJSON(fname, comment string, v interface{}) error {
var trim = func(line, delim []byte) []byte {
if len(delim) > 0 && bytes.HasPrefix(bytes.TrimSpace(line), delim) {
return nil
}
return line
}
return file.Read(fname, func(fd *os.File) error {
bs, err := ioutil.ReadAll(fd)
if err != nil {
return err
}
bs = bytes2.MultipleLineOperate(bs, unsafe2.Bytes(comment), trim)
return json.Unmarshal(bs, v)
})
}
示例15: printRouteTree
// printRouteTree print route tree with given parent path
func (rt *router) printRouteTree(w io.Writer, parentPath string) {
if parentPath != "" {
parentPath = parentPath + _PRINT_SEP
}
s := []byte(rt.str)
for i := range s {
if s[i] == _WILDCARD {
s[i] = _MATCH_WILDCARD
} else if s[i] == _REMAINSALL {
s[i] = _MATCH_REMAINSALL
}
}
cur := parentPath + string(s)
if _, e := w.Write(unsafe2.Bytes(cur + "\n")); e == nil {
rt.accessAllChilds(func(n *router) bool {
n.printRouteTree(w, cur)
return true
})
}
}