github.com/MetalBlockchain/metalgo@v1.11.9/snow/engine/common/traced_state_syncer.go (about) 1 // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved. 2 // See the file LICENSE for licensing terms. 3 4 package common 5 6 import ( 7 "context" 8 9 "github.com/MetalBlockchain/metalgo/trace" 10 ) 11 12 var _ StateSyncer = (*tracedStateSyncer)(nil) 13 14 type tracedStateSyncer struct { 15 Engine 16 stateSyncer StateSyncer 17 tracer trace.Tracer 18 } 19 20 func TraceStateSyncer(stateSyncer StateSyncer, tracer trace.Tracer) StateSyncer { 21 return &tracedStateSyncer{ 22 Engine: TraceEngine(stateSyncer, tracer), 23 stateSyncer: stateSyncer, 24 tracer: tracer, 25 } 26 } 27 28 func (e *tracedStateSyncer) IsEnabled(ctx context.Context) (bool, error) { 29 ctx, span := e.tracer.Start(ctx, "tracedStateSyncer.IsEnabled") 30 defer span.End() 31 32 return e.stateSyncer.IsEnabled(ctx) 33 }