|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- package internal
-
- import (
- "strings"
- )
-
- func makeEtcdLockRequestKey(reqID string) string {
- return LOCK_REQUEST_DATA_PREFIX + "/" + reqID
- }
-
- func getLockRequestID(key string) string {
- return strings.TrimPrefix(key, LOCK_REQUEST_DATA_PREFIX+"/")
- }
-
- /*
- func parseLockData(str string) (lock lockData, err error) {
- sb := strings.Builder{}
- var comps []string
-
- escaping := false
- for _, ch := range strings.TrimSpace(str) {
- if escaping {
- if ch == 'n' {
- sb.WriteRune('\n')
- } else {
- sb.WriteRune(ch)
- }
-
- escaping = false
- continue
- }
-
- if ch == '/' {
- comps = append(comps, sb.String())
- sb.Reset()
- } else if ch == '\\' {
- escaping = true
- } else {
- sb.WriteRune(ch)
- }
- }
-
- comps = append(comps, sb.String())
-
- if len(comps) < 3 {
- return lockData{}, fmt.Errorf("string must includes 3 components devided by /")
- }
-
- return lockData{
- Path: comps[0 : len(comps)-2],
- Name: comps[len(comps)-2],
- Target: comps[len(comps)-1],
- }, nil
- }
-
- func lockDataToString(lock lockData) string {
- sb := strings.Builder{}
-
- for _, s := range lock.Path {
- sb.WriteString(lockDataEncoding(s))
- sb.WriteRune('/')
- }
-
- sb.WriteString(lockDataEncoding(lock.Name))
- sb.WriteRune('/')
-
- sb.WriteString(lockDataEncoding(lock.Target))
-
- return sb.String()
- }
-
- func lockDataEncoding(str string) string {
- sb := strings.Builder{}
-
- for _, ch := range str {
- if ch == '\\' {
- sb.WriteString("\\\\")
- } else if ch == '/' {
- sb.WriteString("\\/")
- } else if ch == '\n' {
- sb.WriteString("\\n")
- } else {
- sb.WriteRune(ch)
- }
- }
-
- return sb.String()
- }
-
- func lockDataDecoding(str string) string {
- sb := strings.Builder{}
-
- escaping := false
- for _, ch := range str {
- if escaping {
- if ch == 'n' {
- sb.WriteRune('\n')
- } else {
- sb.WriteRune(ch)
- }
-
- escaping = false
- continue
- }
-
- if ch == '\\' {
- escaping = true
-
- } else {
- sb.WriteRune(ch)
- }
- }
-
- return sb.String()
- }
- */
|