diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2014-10-25 04:45:21 +0200 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2014-10-25 04:46:59 +0200 |
commit | ea1a0d5d76988992227eb30b0baaf8e97678c946 (patch) | |
tree | 8a6e7be43510595a6059a34c921c06c5161c7107 /kamon-core/src/main/scala/kamon/trace/TraceLocal.scala | |
parent | 3e2c2b3ba39ad8cca4874e3be3004f8a182dab36 (diff) | |
download | Kamon-ea1a0d5d76988992227eb30b0baaf8e97678c946.tar.gz Kamon-ea1a0d5d76988992227eb30b0baaf8e97678c946.tar.bz2 Kamon-ea1a0d5d76988992227eb30b0baaf8e97678c946.zip |
! core: replace Option[TraceContext] by empty object pattern and implement basic segments with renaming.
Diffstat (limited to 'kamon-core/src/main/scala/kamon/trace/TraceLocal.scala')
-rw-r--r-- | kamon-core/src/main/scala/kamon/trace/TraceLocal.scala | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/kamon-core/src/main/scala/kamon/trace/TraceLocal.scala b/kamon-core/src/main/scala/kamon/trace/TraceLocal.scala index 3ff074b6..0766af74 100644 --- a/kamon-core/src/main/scala/kamon/trace/TraceLocal.scala +++ b/kamon-core/src/main/scala/kamon/trace/TraceLocal.scala @@ -24,18 +24,20 @@ object TraceLocal { type ValueType } - def store(key: TraceLocalKey)(value: key.ValueType): Unit = - TraceRecorder.currentContext.map(_.traceLocalStorage.store(key)(value)) - - def retrieve(key: TraceLocalKey): Option[key.ValueType] = - TraceRecorder.currentContext.flatMap(_.traceLocalStorage.retrieve(key)) + def store(key: TraceLocalKey)(value: key.ValueType): Unit = TraceRecorder.currentContext match { + case ctx: DefaultTraceContext ⇒ ctx.traceLocalStorage.store(key)(value) + case EmptyTraceContext ⇒ // Can't store in the empty context. + } + def retrieve(key: TraceLocalKey): Option[key.ValueType] = TraceRecorder.currentContext match { + case ctx: DefaultTraceContext ⇒ ctx.traceLocalStorage.retrieve(key) + case EmptyTraceContext ⇒ None // Can't retrieve anything from the empty context. + } } class TraceLocalStorage { val underlyingStorage = TrieMap[TraceLocal.TraceLocalKey, Any]() def store(key: TraceLocalKey)(value: key.ValueType): Unit = underlyingStorage.put(key, value) - def retrieve(key: TraceLocalKey): Option[key.ValueType] = underlyingStorage.get(key).map(_.asInstanceOf[key.ValueType]) } |