ChunkHandler
public
abstract
class
ChunkHandler
extends JdwpInterceptor
| java.lang.Object | ||
| ↳ | com.android.tradefed.device.server.jdwp.JdwpInterceptor | |
| ↳ | com.android.tradefed.device.server.jdwp.chunkhandler.ChunkHandler | |
하나 이상의 청크 유형을 처리하는 클래스로 이를 서브클래스화합니다.
요약
상수 | |
|---|---|
int |
CHUNK_HEADER_LEN
|
int |
DDMS_CMD
|
int |
DDMS_CMD_SET
|
필드 | |
|---|---|
public
static
final
int |
CHUNK_FAIL
|
public
static
final
ByteOrder |
CHUNK_ORDER
|
공개 생성자 | |
|---|---|
ChunkHandler()
|
|
공개 메서드 | |
|---|---|
static
ByteBuffer
|
allocBuffer(int maxChunkLen)
생성되는 청크의 요구사항 외에 JDWP 패킷 헤더와 청크 헤더 하나를 보유할 충분한 공간이 있는 ByteBuffer를 할당합니다. |
abstract
void
|
clientDisconnected(ClientImpl client)
클라이언트가 사라졌습니다. |
abstract
void
|
clientReady(ClientImpl client)
클라이언트가 준비되었습니다. |
static
void
|
finishChunkPacket(JdwpPacket packet, int type, int chunkLen)
청크 시작 부분에 청크 헤더를 작성합니다. |
static
ByteBuffer
|
getChunkDataBuf(ByteBuffer jdwpBuf)
청크 데이터만 보유하는 JDWP 패킷 버퍼의 슬라이스를 반환합니다. |
abstract
void
|
handleChunk(ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)
수신되는 청크를 처리합니다. |
void
|
handlePacket(ClientImpl client, JdwpPacket packet)
|
JdwpPacket
|
intercept(JdwpAgent agent, JdwpPacket packet)
|
static
int
|
type(String typeName)
4자리 문자열을 32비트 유형으로 변환합니다. |
보호된 메서드 | |
|---|---|
void
|
handleUnknownChunk(ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)
핸들 청크가 핸들러에 의해 인식되지 않습니다. |
상수
CHUNK_HEADER_LEN
public static final int CHUNK_HEADER_LEN
상수 값: 8 (0x00000008)
DDMS_CMD
public static final int DDMS_CMD
상수 값: 1 (0x00000001)
DDMS_CMD_SET
public static final int DDMS_CMD_SET
상수 값: 199 (0x000000c7)
필드
CHUNK_FAIL
public static final int CHUNK_FAIL
CHUNK_ORDER
public static final ByteOrder CHUNK_ORDER
공개 생성자
ChunkHandler
public ChunkHandler ()
공개 메서드
allocBuffer
public static ByteBuffer allocBuffer (int maxChunkLen)
생성되는 청크의 요구사항 외에 JDWP 패킷 헤더와 청크 헤더 하나를 보유할 충분한 공간이 있는 ByteBuffer를 할당합니다.
'maxChunkLen'은 청크 콘텐츠의 크기만 나타냅니다.
| 매개변수 | |
|---|---|
maxChunkLen |
int |
| 반환 값 | |
|---|---|
ByteBuffer |
|
clientDisconnected
public abstract void clientDisconnected (ClientImpl client)
클라이언트가 사라졌습니다. 이 클라이언트 연결과 연결된 리소스를 정리하는 데 사용할 수 있습니다.
| 매개변수 | |
|---|---|
client |
ClientImpl |
clientReady
public abstract void clientReady (ClientImpl client)
클라이언트가 준비되었습니다. 모니터 스레드는 클라이언트가 DDM 인식으로 확인될 때 (일반적으로 HELO 응답을 수신한 후) 모든 핸들러에서 이 메서드를 호출합니다.
핸들러는 이 기회를 사용하여 클라이언트 측 활동을 초기화할 수 있습니다. 클라이언트에 메시지를 보낼 가능성이 있으므로 이 메서드는 IOException을 발생시킬 수 있습니다.
| 매개변수 | |
|---|---|
client |
ClientImpl |
finishChunkPacket
public static void finishChunkPacket (JdwpPacket packet, int type, int chunkLen)
청크 시작 부분에 청크 헤더를 작성합니다.
JdwpPacket.getPayload()에서 반환된 바이트 버퍼를 전달합니다.
| 매개변수 | |
|---|---|
packet |
JdwpPacket |
type |
int |
chunkLen |
int |
getChunkDataBuf
public static ByteBuffer getChunkDataBuf (ByteBuffer jdwpBuf)
청크 데이터만 보유하는 JDWP 패킷 버퍼의 슬라이스를 반환합니다.
| 매개변수 | |
|---|---|
jdwpBuf |
ByteBuffer |
| 반환 값 | |
|---|---|
ByteBuffer |
|
handleChunk
public abstract void handleChunk (ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)
수신되는 청크를 처리합니다. 청크 유형 'type'의 데이터는 'data'의 시작 부분에서 시작하여 data.limit()까지 계속됩니다.
'isReply'가 설정된 경우 'msgId'는 클라이언트에 전송된 요청의 ID입니다. 그렇지 않으면 클라이언트가 이 이벤트에 대해 생성한 ID입니다. 등록되지 않은 청크가 응답 패킷에 포함될 수 있습니다.
핸들러는 'data'의 콘텐츠를 수정할 수 없습니다.
| 매개변수 | |
|---|---|
client |
ClientImpl |
type |
int |
data |
ByteBuffer |
isReply |
boolean |
msgId |
int |
handlePacket
public void handlePacket (ClientImpl client, JdwpPacket packet)
| 매개변수 | |
|---|---|
client |
ClientImpl |
packet |
JdwpPacket |
가로채기
public JdwpPacket intercept (JdwpAgent agent, JdwpPacket packet)
| 매개변수 | |
|---|---|
agent |
JdwpAgent |
packet |
JdwpPacket |
| 반환 값 | |
|---|---|
JdwpPacket |
|
유형
public static int type (String typeName)
4자리 문자열을 32비트 유형으로 변환합니다.
| 매개변수 | |
|---|---|
typeName |
String |
| 반환 값 | |
|---|---|
int |
|
보호된 메서드
handleUnknownChunk
protected void handleUnknownChunk (ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)
핸들 청크가 핸들러에 의해 인식되지 않습니다. 청크 유형이 인식되지 않으면 서브클래스의 handleChunk() 메서드가 이를 호출해야 합니다.
| 매개변수 | |
|---|---|
client |
ClientImpl |
type |
int |
data |
ByteBuffer |
isReply |
boolean |
msgId |
int |