File
- class rm.file.RmFileHeader(page: PfPage, offset: int, limit: int)[소스]
기반 클래스:
PfLayoutViewfile의 header를 나타내는 클래스입니다.
file header는 1번째 페이지에 저장됩니다. page content의 첫 8바이트를 사용하는 layout view입니다. layout view의 property를 사용 할 때는 항상 해당 page가 pin 되어있어야 합니다.
- 변수:
record_size (int) – record의 크기.
first_available_pid (RmPageId) – file에 있는 가장 첫번째 available page의 ID. NO_AVAILABLE_PAGE 인 경우는 file에 available page가 없다는 뜻입니다.
- PID = 1
file header가 들어있는 page의 ID.
- NO_AVAILABLE_PAGE = -1
file에 available page가 없다는 뜻을 나타내는 상수.
- property record_size: int
- SIZE: int = 8
layout view의 크기.
- class rm.file.RmFile(pf_file: PfFile, record_size: int)[소스]
기반 클래스:
objectfile을 나타내는 클래스입니다.
- 변수:
_pf_file (PfFile) – PF component의 file.
record_size (int) – record의 크기.
- __init__(pf_file: PfFile, record_size: int) None[소스]
file을 초기화합니다.
- 매개변수:
pf_file (PfFile) – PF component의 file.
record_size (int) – record의 크기.
- get_page(pid: RmPageId) RmPage[소스]
TODO: 설명
- 매개변수:
pid (RmPageId) – 대상 page의 ID.
- 반환:
가져온 page.
- 반환 형식:
- 예외 발생:
RmInvalidPidError – pid 가 유효하지 않은 경우.
- find_next_page(pid: RmPageId) RmPage[소스]
TODO: 설명
- 매개변수:
pid (RmPageId) – 대상 page의 ID.
- 반환:
pid 다음에 있는 page.
- 반환 형식:
- 예외 발생:
RmNoNextPageFoundError – pid 다음에 있는 page를 찾을 수 없는 경우.
- get_record(key: RmRecordKey) RmRecord[소스]
TODO: 설명
- 매개변수:
key (RmRecordKey) – 대상 record의 key.
- 반환:
가져온 record.
- 반환 형식:
- 예외 발생:
RmInvalidSidError – key.sid 가 유효하지 않은 경우.
RmUnoccupiedSlotError – key.sid 가 비어있는 경우.
- insert_record(data: RmRecordData) RmRecordKey[소스]
TODO: 설명
- 매개변수:
data (RmRecordData) – 삽입할 record data.
- 반환:
생성된 record의 key.
- 반환 형식:
- 예외 발생:
RmInvalidRecordDataSizeError – data 의 크기가 유효하지 않은 경우.
- delete_record(key: RmRecordKey) None[소스]
TODO: 설명
- 매개변수:
key (RmRecordKey) – 대상 record의 key.
- 예외 발생:
RmInvalidSidError – key.sid 가 유효하지 않은 경우.
RmUnoccupiedSlotError – key.sid 가 비어있는 경우.
- update_record(key: RmRecordKey, data: RmRecordData) None[소스]
TODO: 설명
- 매개변수:
key (RmRecordKey) – 대상 record의 key.
data (RmRecordData) – 갱신할 record data.
- 예외 발생:
RmInvalidSidError – key.sid 가 유효하지 않은 경우.
RmUnoccupiedSlotError – key.sid 가 비어있는 경우.
RmInvalidRecordDataSizeError – data 의 크기가 유효하지 않은 경우.