package com.navercorp.pinpoint.bootstrap.context;
import com.navercorp.pinpoint.common.trace.AnnotationKey;
import com.navercorp.pinpoint.common.trace.LoggingInfo;
import com.navercorp.pinpoint.common.trace.ServiceType;
public interface SpanRecorder extends FrameAttachment {
boolean canSampled();
boolean isRoot();
void recordStartTime(long startTime);
void recordTime(boolean time);
void recordException(Throwable throwable);
void recordException(boolean markError, Throwable throwable);
void recordApiId(int apiId);
void recordApi(MethodDescriptor methodDescriptor);
void recordApi(MethodDescriptor methodDescriptor, Object[] args);
void recordApi(MethodDescriptor methodDescriptor, Object args, int index);
void recordApi(MethodDescriptor methodDescriptor, Object[] args, int start, int end);
void recordApiCachedString(MethodDescriptor methodDescriptor, String args, int index);
void recordAttribute(AnnotationKey key, String value);
void recordAttribute(AnnotationKey key, int value);
void recordAttribute(AnnotationKey key, Object value);
void recordServiceType(ServiceType serviceType);
void recordRpcName(String rpc);
void recordRemoteAddress(String remoteAddress);
void recordEndPoint(String endPoint);
void recordParentApplication(String parentApplicationName, short parentApplicationType);
void recordAcceptorHost(String host);
void recordLogging(LoggingInfo loggingInfo);
}