NAME

OpenTracing::Interface::ContextReference - Defines the ContextReference

SYNOPSIS

package OpenTracing::Implementation::MyBackendService::ContextReference;
    
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

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

ContextReference->new_child_of( $span_context );
Required Positional Parameter(s)
span_context, a required SpanContext

The sapn context that the returned context reference should should refer to.

Returns
ContextReference

The newly instantiated reference.

new_follows_from

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

ContextReference->new_follows_from( $span_context );
Required Positional Parameter
span_context, a required SpanContext

The context the returned context reference should should refer to.

Returns
ContextReference

A newly instantiated context reference

INSTANCE METHODS

get_referenced_context

Returns the original referenced SpanContext.

$span_context = $reference->get_referenced_context;
Parameter(s)

    none

Returns
SpanContext

The span context 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;
Parameter(s)

    none

Returns
Bool

Ctype_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;
Parameter(s)

    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

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.

AUTHOR

Theo van Hoesel <tvanhoesel@perceptyx.com>

COPYRIGHT AND LICENSE

'OpenTracing API for Perl' is Copyright (C) 2019 .. 2020, Perceptyx Inc

This library is free software; you can redistribute it and/or modify it under the terms of the Artistic License 2.0.

This library is distributed in the hope that it will be useful, but it is provided "as is" and without any express or implied warranties.

For details, see the full text of the license in the file LICENSE.