public class DeviceController {
...
public void sendShutDown() {
DeviceHandle handle =getHandle(DEV1);
if (handle != DeviceHandle.INVALID) {
retrieveDeviceRecord(handle);
if (record.getStatus() != DEVICE_SUSPENDED) {
pauseDevice(handle);
clearDeviceWorkQueue(handle);
closeDevice(handle);
} else {
logger.log("Device suspended.Unable to shut down");
}
} else {
logger. log("Invalid handle for: " + DEV1. toString());
}
}
...
}
위의 코드는 DeviceController 클래스의 일부분이다.
대부분 이름만 봐도 알아볼 수 있도록 네이밍을 하기 때문에, 차근차근 한줄 씩 읽다보면 알아볼 수 있다.
- DeviceController 클래스: 이 클래스는 장치를 제어하는 기능을 가지고 있는 컨트롤러 클래스이다.
- sendShutDown() 메서드: 이 메서드는 장치를 종료하는 기능을 수행한다.
- getHandle(DEV1) 호출: getHandle() 메서드를 호출하여 DEV1을 파라미터로 전달하여 DeviceHandle 객체를 반환한다. DeviceHandle은 장치를 다루기 위한 핸들(참조)이다.
- handle != DeviceHandle.INVALID 체크: handle이 DeviceHandle.INVALID와 같지 않은지 확인한다. 이는 getHandle() 호출이 유효한 핸들을 반환했는지 확인하는 것이다.
- retrieveDeviceRecord(handle) 호출: 유효한 핸들을 사용하여 장치 레코드를 검색한다.
- record.getStatus() != DEVICE_SUSPENDED 체크: record의 상태가 DEVICE_SUSPENDED와 같지 않은지 확인한다. 이는 장치의 상태가 일시 중지 상태인지 확인하는 것이다. retrieveDeviceRecord(handle) 메서드를 호출하여 장치 레코드를 검색하는 것인데, 이 레코드는 아마도 장치의 상태와 관련된 정보를 포함하고 있을 것이다.
- retrieveDeviceRecord(handle) 메서드를 통해 장치 레코드를 검색한 후, 해당 레코드에는 장치의 상태와 관련된 정보가 저장되어 있을 것으로 예상되고, 이후 코드에서 record.getStatus()를 호출하여 장치의 상태를 가져왔을 것이다. - pauseDevice(handle) 호출: 장치를 일시 중지시킨다.
- clearDeviceWorkQueue(handle) 호출: 장치의 작업 큐를 비운다.
- closeDevice(handle) 호출: 장치를 닫습니다.
- logger.log("Device suspended. Unable to shut down"): 장치가 일시 중지 상태이므로 종료할 수 없다는 메시지를 로깅합니다.
- logger.log("Invalid handle for: " + DEV1.toString()): 잘못된 핸들이 반환되었으므로 해당 핸들에 대한 오류 메시지를 로깅합니다.
위의 코드는 장치를 종료하기 위한 로직을 담고 있다. 유효한 핸들을 얻은 후 장치의 상태를 확인하고 일시 중지 상태가 아니라면 장치를 종료하는 절차를 수행한다. 그렇지 않은 경우, 해당 상태에 대한 메시지를 로깅한다.
'Study > Java' 카테고리의 다른 글
[JAVA] 의존성이라는 비용이 이익보다 크다? Mock? (0) | 2023.06.15 |
---|---|
[JAVA] 체크 예외(Checked Exception, 확인된 예외)란? (0) | 2023.06.14 |
왕초보를 위한!! 자바 기초 코드 해석 방법 3) 인스턴스 생성 (0) | 2023.06.13 |
왕초보를 위한!! 자바 기초 코드 해석 방법 2) 메서드, 타입 (0) | 2023.06.13 |
[Java] JVM 구조 (0) | 2022.10.19 |
댓글