Skip to content

Commit 8558d7c

Browse files
committed
added extractWithFormat in objc tracer
1 parent a456e56 commit 8558d7c

File tree

4 files changed

+16
-8
lines changed

4 files changed

+16
-8
lines changed

Sources/Datadog/Tracing/Propagation/OpenTracing/HTTPHeadersReader.swift

+4-4
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@
66

77
import Foundation
88

9-
internal class HTTPHeadersReader: OTHTTPHeadersReader, TracePropagationHeadersExtractor {
9+
public class HTTPHeadersReader: OTHTTPHeadersReader, TracePropagationHeadersExtractor {
1010
private let httpHeaderFields: [String: String]
1111
private var baggageItemQueue: DispatchQueue?
1212

13-
init(httpHeaderFields: [String: String]) {
13+
public init(httpHeaderFields: [String: String]) {
1414
self.httpHeaderFields = httpHeaderFields
1515
}
1616

17-
func use(baggageItemQueue: DispatchQueue) {
17+
public func use(baggageItemQueue: DispatchQueue) {
1818
self.baggageItemQueue = baggageItemQueue
1919
}
2020

21-
func extract() -> OTSpanContext? {
21+
public func extract() -> OTSpanContext? {
2222
guard let baggageItemQueue = baggageItemQueue,
2323
let traceIDValue = httpHeaderFields[TracingHTTPHeaders.traceIDField],
2424
let spanIDValue = httpHeaderFields[TracingHTTPHeaders.parentSpanIDField],

Sources/DatadogObjc/OpenTracing/OTTracer+objc.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,5 @@ public protocol OTTracer {
2020
func startSpan(_ operationName: String, childOf parent: OTSpanContext?, tags: NSDictionary?) -> OTSpan
2121
func startSpan(_ operationName: String, childOf parent: OTSpanContext?, tags: NSDictionary?, startTime: Date?) -> OTSpan
2222
func inject(_ spanContext: OTSpanContext, format: String, carrier: Any) throws
23-
func extractWithFormat(_ format: String, carrier: Any) throws
23+
func extractWithFormat(_ format: String, carrier: Any) -> OTSpanContext?
2424
}

Sources/DatadogObjc/Tracer+objc.swift

+11-3
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import class Datadog.Tracer
1010
import protocol Datadog.OTTracer
1111
import struct Datadog.OTReference
1212
import class Datadog.HTTPHeadersWriter
13+
import class Datadog.HTTPHeadersReader
1314

1415
@objc
1516
public class DDTracer: NSObject, DatadogObjc.OTTracer {
@@ -143,10 +144,17 @@ public class DDTracer: NSObject, DatadogObjc.OTTracer {
143144
throw error
144145
}
145146
}
146-
147+
147148
@objc
148-
public func extractWithFormat(_ format: String, carrier: Any) throws {
149-
// TODO: RUMM-385 - we don't need to support it now
149+
public func extractWithFormat(_ format: String, carrier: Any) -> OTSpanContext? {
150+
if format == OT.formatTextMap, let headers = carrier as? [String: String] {
151+
let reader = HTTPHeadersReader(httpHeaderFields: headers)
152+
if let context = swiftTracer.extract(reader: reader) {
153+
return DDSpanContextObjc(swiftSpanContext: context)
154+
}
155+
}
156+
157+
return nil
150158
}
151159

152160
// MARK: - Private

0 commit comments

Comments
 (0)