File

class rm.file.RmFileHeader(page: PfPage, offset: int, limit: int)[소스]

기반 클래스: PfLayoutView

file의 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
property first_available_pid: RmPageId
SIZE: int = 8

layout view의 크기.

class rm.file.RmFile(pf_file: PfFile, record_size: int)[소스]

기반 클래스: object

file을 나타내는 클래스입니다.

변수:
  • _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.

반환 형식:

RmPage

예외 발생:

RmInvalidPidErrorpid 가 유효하지 않은 경우.

find_next_page(pid: RmPageId) RmPage[소스]

TODO: 설명

매개변수:

pid (RmPageId) – 대상 page의 ID.

반환:

pid 다음에 있는 page.

반환 형식:

RmPage

예외 발생:

RmNoNextPageFoundErrorpid 다음에 있는 page를 찾을 수 없는 경우.

get_record(key: RmRecordKey) RmRecord[소스]

TODO: 설명

매개변수:

key (RmRecordKey) – 대상 record의 key.

반환:

가져온 record.

반환 형식:

RmRecord

예외 발생:
insert_record(data: RmRecordData) RmRecordKey[소스]

TODO: 설명

매개변수:

data (RmRecordData) – 삽입할 record data.

반환:

생성된 record의 key.

반환 형식:

RmRecordKey

예외 발생:

RmInvalidRecordDataSizeErrordata 의 크기가 유효하지 않은 경우.

delete_record(key: RmRecordKey) None[소스]

TODO: 설명

매개변수:

key (RmRecordKey) – 대상 record의 key.

예외 발생:
update_record(key: RmRecordKey, data: RmRecordData) None[소스]

TODO: 설명

매개변수:
예외 발생: