package com.navercorp.pinpoint.bootstrap.context;
import com.navercorp.pinpoint.common.trace.AnnotationKey;
import com.navercorp.pinpoint.common.trace.ServiceType;
public interface SpanEventRecorder extends FrameAttachment {
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);
ParsingResult recordSqlInfo(String sql);
void recordSqlParsingResult(ParsingResult parsingResult);
void recordSqlParsingResult(ParsingResult parsingResult, String bindValue);
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 recordDestinationId(String destinationId);
void recordEndPoint(String endPoint);
void recordNextSpanId(long spanId);
void recordAsyncId(int asyncId);
void recordNextAsyncId(int asyncId);
void recordAsyncSequence(short sequence);
}