Files
kubesphere/vendor/openpitrix.io/openpitrix/pkg/util/ctxutil/message.go
hongming 1b5681c12b refactor: openpitrix module
Signed-off-by: hongming <talonwan@yunify.com>
2019-09-26 13:41:00 +08:00

36 lines
892 B
Go

// Copyright 2018 The OpenPitrix Authors. All rights reserved.
// Use of this source code is governed by a Apache license
// that can be found in the LICENSE file.
package ctxutil
import (
"context"
"google.golang.org/grpc/metadata"
)
func GetMessageId(ctx context.Context) []string {
return GetValueFromContext(ctx, messageIdKey)
}
func SetMessageId(ctx context.Context, messageId []string) context.Context {
ctx = context.WithValue(ctx, messageIdKey, messageId)
md, ok := metadata.FromOutgoingContext(ctx)
if !ok {
md = metadata.MD{}
}
md[messageIdKey] = messageId
return metadata.NewOutgoingContext(ctx, md)
}
func AddMessageId(ctx context.Context, messageId ...string) context.Context {
m := GetMessageId(ctx)
m = append(m, messageId...)
return SetMessageId(ctx, m)
}
func ClearMessageId(ctx context.Context) context.Context {
return SetMessageId(ctx, []string{})
}