The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

OpenTracing::Interface::Reference - Defines the ContextReference interface

SYNOPSIS

    package OpenTracing::Implementation::MyBackendService::Scope;
        
    sub new_child_of {
        ...
    }
    
    sub new_follows_from {
        ...
    }
    
    sub get_referenced_context {
        ...
    }
    
    sub type_is_child_of {
        ...
    }
    
    sub type_is_follows_from {
        ...
    }
    
    BEGIN {
        use Role::Tiny::With;
        with 'OpenTracing::Interface::ContextReference'
            if $ENV{OPENTRACING_INTERFACE};
    } # check at compile time, perl -c will work
    
    1;

DESCRIPTION

This 'role' describes the interface for any OpenTracing ContextReference implementation.

References are used by Tracer methods start_span and start_active_span to create "casual span references"

See OpenTracing References

CONSTRUCTOR METHODS

new_child_of( $span_context )

Creates a SpanContext ContextReference for which type_is_child_of is 'true'.

    ContextReference->new_child_of( $span_context );

Required Positional Parameter

$span_context

The SpanContext the returned ContextReference should should refer to.

Must be a SpanContext form OpenTracing::Types.

Returns

A newly instantiated ContextReference

new_follows_from( $span_context )

Creates a SpanContext ContextReference for which type_is_follows_from is 'true'.

    ContextReference->new_follows_from( $span_context );

Required Positional Parameter

$span_context

The SpanContext the returned ContextReference should should refer to.

Must be a SpanContext form OpenTracing::Types.

Returns

A newly instantiated ContextReference

INSTANCE METHODS

get_referenced_context

Returns the original referenced SpanContext.

    $span_context = $reference->get_referenced_context;

Parameters

none

Returns

SpanContext being referenced.

type_is_child_of

Returns 'true' iff the ContextReference is a CHILD_OF type is, most likely, instantiated with the new_child_of constructor.

    say "I'm a CHILD_OF context reference"
        if $context_reference->type_is_child_of;

Parameters

none

Returns

Bool

type_is_follows_from

Returns 'true' iff the ContextReference is a FOLLOWS_FROM type is, most likely, instantiated with the new_follows_from constructor.

    say "I'm a FOLLOWS_FROM context reference"
        if $context_reference->type_is_child_of;

Parameters

none

Returns

Bool

SEE ALSO

OpenTracing::Interface

Describes the API definition for OpenTransport implementations written in the Perl5 language.

OpenTracing::Types

A library of Type::Tiny type constraints that provides Duck Type checks for all common elements that conform OpenTracing::Interface

CAVEATS

This description is using around method modifiers that basically wraps them around the real implementation. These method modifiers provide a 'readable' and reusable interface, describing the inputs and outputs, using type constraints.

Consumers of this role, or implementors of the interface are MUST implement each method mentioned below. Not doing so will result in compilation errors.

Since this role does nothing else than checking input and output, it is useful during development. Most likely it can be switched off safely in production environments.