JdwpPacket
public
final
class
JdwpPacket
extends Object
| java.lang.Object | |
| ↳ | com.android.tradefed.device.server.jdwp.chunkhandler.JdwpPacket |
ByteBuffer의 시작 부분에 있는 JDWP 패킷입니다.
이를 통해 패킷을 디코딩한 결과로 데이터에 대한 '포인터'를 래핑할 수 있습니다.
여기서는 어떤 작업도 동기화되지 않습니다. 여러 스레드가 동일한 ByteBuffers에 액세스하는 경우 외부 동기화가 필요합니다.
생성자를 사용하여 빈 패킷을 만들거나 'findPacket()'을 사용하여 기존 데이터 주위에 JdwpPacket을 래핑합니다.
요약
상수 | |
|---|---|
int |
JDWP_HEADER_LEN
|
공개 생성자 | |
|---|---|
JdwpPacket(ByteBuffer buf)
'buf'에 비어 있는 새 패킷을 만듭니다. |
|
공개 메서드 | |
|---|---|
void
|
consume()
JDWP 패킷을 사용합니다. |
void
|
copy(ByteBuffer into)
패킷을 새 버퍼에 복사하는 도우미 함수 |
static
JdwpPacket
|
findPacket(ByteBuffer buf)
|
static
JdwpPacket
|
findPacketHeader(ByteBuffer buf)
|
void
|
finishPacket(int cmdSet, int cmd, int payloadLength)
newPacket()으로 생성된 패킷을 완료합니다. |
int
|
getId()
패킷의 ID를 반환합니다. |
int
|
getLength()
패킷의 길이를 반환합니다. |
static
int
|
getPacketLength(ByteBuffer buf)
'buf'에 JdwpPackets가 포함된 경우 처음 4바이트는 패킷의 길이입니다. |
ByteBuffer
|
getPayload()
JDWP 헤더를 지나 청크 헤더의 시작 부분에 위치한 바이트 버퍼의 슬라이스를 반환합니다. |
boolean
|
is(int cmdSet, int cmd)
|
boolean
|
isEmpty()
이 JDWP 패킷에 데이터가 없으면 'true'를 반환합니다. |
boolean
|
isError()
이 JDWP 패킷이 0이 아닌 오류 코드가 있는 응답인 경우 'true'를 반환합니다. |
boolean
|
isReply()
이 JDWP 패킷이 응답으로 태그된 경우 'true'를 반환합니다. |
void
|
log(String action)
|
void
|
move(ByteBuffer buf)
현재 위치에서 패킷 데이터를 버퍼에서 buf로 이동합니다. |
void
|
setPayload(ByteBuffer buf)
패키지의 페이로드를 버퍼로 바꿉니다. |
String
|
toString()
|
void
|
write(SocketChannel chan)
패킷을 'chan'에 씁니다. |
상수
JDWP_HEADER_LEN
public static final int JDWP_HEADER_LEN
상수 값: 11 (0x0000000b)
공개 생성자
JdwpPacket
public JdwpPacket (ByteBuffer buf)
'buf'에 비어 있는 새 패킷을 만듭니다.
| 매개변수 | |
|---|---|
buf |
ByteBuffer |
공개 메서드
consume
public void consume ()
JDWP 패킷을 사용합니다.
진입 및 종료 시 'position'은 버퍼의 데이터 끝에 있습니다.
복사
public void copy (ByteBuffer into)
패킷을 새 버퍼에 복사하는 도우미 함수
| 매개변수 | |
|---|---|
into |
ByteBuffer |
findPacketHeader
public static JdwpPacket findPacketHeader (ByteBuffer buf)
| 매개변수 | |
|---|---|
buf |
ByteBuffer |
| 반환 값 | |
|---|---|
JdwpPacket |
|
finishPacket
public void finishPacket (int cmdSet,
int cmd,
int payloadLength)newPacket()으로 생성된 패킷을 완료합니다.
이렇게 하면 항상 순서대로 다음 일련번호가 있는 명령 패킷이 생성됩니다.
getPayload()에서 반환된 '슬라이스'의 위치를 확인할 수 없으므로 'payloadLength'를 인수로 사용해야 합니다. 청크 헤더에서 가져올 수도 있지만 JDWP 패킷에 청크가 두 개 이상 있을 수 있습니다.
종료 시 'position'은 데이터의 끝을 가리킵니다.
| 매개변수 | |
|---|---|
cmdSet |
int |
cmd |
int |
payloadLength |
int |
getId
public int getId ()
패킷의 ID를 반환합니다. 답장 패킷의 경우 이를 통해 답장을 원래 요청과 일치시킬 수 있습니다.
| 반환 값 | |
|---|---|
int |
|
getLength
public int getLength ()
패킷의 길이를 반환합니다. 여기에는 헤더가 포함되므로 빈 패킷의 길이는 11바이트입니다.
| 반환 값 | |
|---|---|
int |
|
getPacketLength
public static int getPacketLength (ByteBuffer buf)
'buf'에 JdwpPackets가 포함된 경우 처음 4바이트는 패킷의 길이입니다. 이 도우미 함수는 처음 4바이트를 읽고 길이가 JDWP 헤더 크기 이상인지 확인합니다.
| 매개변수 | |
|---|---|
buf |
ByteBuffer: jdwp 패킷을 포함하는 것으로 가정되는 버퍼입니다. |
| 반환 값 | |
|---|---|
int |
길이가 잘못된 경우 -1, 그렇지 않으면 패킷의 길이입니다. |
getPayload
public ByteBuffer getPayload ()
JDWP 헤더를 지나 청크 헤더의 시작 부분에 위치한 바이트 버퍼의 슬라이스를 반환합니다. 크기를 알 수 있는 경우 버퍼의 제한은 페이로드 크기로 설정됩니다. 구성 중인 패킷인 경우 제한은 버퍼의 끝으로 설정됩니다.
패킷을 전혀 검사하지 않으며 빈 버퍼에서 작동합니다.
| 반환 값 | |
|---|---|
ByteBuffer |
|
is
public boolean is (int cmdSet,
int cmd)| 매개변수 | |
|---|---|
cmdSet |
int |
cmd |
int |
| 반환 값 | |
|---|---|
boolean |
|
isEmpty
public boolean isEmpty ()
이 JDWP 패킷에 데이터가 없으면 'true'를 반환합니다.
| 반환 값 | |
|---|---|
boolean |
|
isError
public boolean isError ()
이 JDWP 패킷이 0이 아닌 오류 코드가 있는 응답인 경우 'true'를 반환합니다.
| 반환 값 | |
|---|---|
boolean |
|
isReply
public boolean isReply ()
이 JDWP 패킷이 응답으로 태그된 경우 'true'를 반환합니다.
| 반환 값 | |
|---|---|
boolean |
|
log
public void log (String action)
| 매개변수 | |
|---|---|
action |
String |
move
public void move (ByteBuffer buf)
현재 위치에서 패킷 데이터를 버퍼에서 buf로 이동합니다.
| 매개변수 | |
|---|---|
buf |
ByteBuffer |
setPayload
public void setPayload (ByteBuffer buf)
패키지의 페이로드를 버퍼로 바꿉니다. 현재 위치는 변경되지 않습니다.
| 매개변수 | |
|---|---|
buf |
ByteBuffer |
toString
public String toString ()
| 반환 값 | |
|---|---|
String |
|
도와줘
public void write (SocketChannel chan)
'chan'에 패킷을 작성합니다.
JDWP 패킷은 오프셋 0에서 시작하여 mBuffer.position()에서 끝납니다.
| 매개변수 | |
|---|---|
chan |
SocketChannel |