38 lines
826 B
Go
38 lines
826 B
Go
package sctx
|
|
|
|
import "context"
|
|
|
|
type (
|
|
HTTPRequestIDKey struct{}
|
|
requestHostKey struct{}
|
|
tagKey struct{}
|
|
)
|
|
|
|
// SetHost sets the http request host in the context
|
|
func SetHost(ctx context.Context, domain string) context.Context {
|
|
return context.WithValue(ctx, requestHostKey{}, domain)
|
|
}
|
|
|
|
// GetHost gets the request host from the context
|
|
func GetHost(ctx context.Context) string {
|
|
v, ok := ctx.Value(requestHostKey{}).(string)
|
|
if ok {
|
|
return v
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// SetTag sets the tag unique identifier in the context
|
|
func SetTag(ctx context.Context, tagId uint32) context.Context {
|
|
return context.WithValue(ctx, tagKey{}, tagId)
|
|
}
|
|
|
|
// GetTag gets the tag unique identifier from the context
|
|
func GetTag(ctx context.Context) uint32 {
|
|
v, ok := ctx.Value(tagKey{}).(uint32)
|
|
if ok {
|
|
return v
|
|
}
|
|
return 0
|
|
}
|