package com.navercorp.pinpoint.common.server.bo.serializer.trace.v2.bitfield; import com.navercorp.pinpoint.common.server.bo.SpanEventBo; import com.navercorp.pinpoint.common.util.BitFieldUtils; /** * @author Woonduk Kang(emeroad) */ public class SpanEventQualifierBitField { public static final int SET_ASYNC = 0; public static byte buildBitField(SpanEventBo firstSpanEvent) { if (firstSpanEvent == null) { // no async bit field return 0; } byte bitField = 0; final int asyncId = firstSpanEvent.getAsyncId(); final short asyncSequence = firstSpanEvent.getAsyncSequence(); if (asyncId == -1 && asyncSequence == -1) { bitField = setAsync(bitField, false); } else { bitField = setAsync(bitField, true); } return bitField; } private SpanEventQualifierBitField() { } public static boolean isSetAsync(byte bitField) { return BitFieldUtils.testBit(bitField, SET_ASYNC); } public static byte setAsync(byte bitField, boolean async) { return BitFieldUtils.setBit(bitField, SET_ASYNC, async); } }