CompUnit::PrecompilationRepository — 사전 컴파일 저장소 인터페이스
CompUnit::PrecompilationRepository — 사전 컴파일 저장소 인터페이스
미리 컴파일된(precompiled) 단위를 저장하고 불러오는 일을 추상화한 클래스가 필요해요. CompUnit::PrecompilationRepository는 그런 저장소가 갖춰야 할 메서드들의 스텁(stub)을 정의하는 역할입니다.
본문
이 클래스는 아래 각 메서드에 대한 스텁을 제공해요. 실제 구현은 PrecompilationRepository::File 같은 서브클래스가 제공합니다. 서브클래스는 구현에 따라 달라요.
메서드
method new-unit
method new-unit(| --> CompUnit::PrecompilationUnit:D)
{ ... }
저장을 위해 구현 특화된 새 PrecompilationUnit을 준비해요.
method load-unit
method load-unit(CompUnit::PrecompilationId $compiler-id,
CompUnit::PrecompilationId $precomp-id)
{ ... }
지정된 컴파일러 ID와 사전 컴파일 ID의 짝으로 식별되는 사전 컴파일을 불러와요.
method load-repo-id
method load-repo-id(CompUnit::PrecompilationId $compiler-id,
CompUnit::PrecompilationId $precomp-id)
{ ... }
지정된 사전 컴파일 파일의 의존성이 검증된 저장소(repo) ID를 반환해요.
method store-file
method store-file(CompUnit::PrecompilationId $compiler-id,
CompUnit::PrecompilationId $precomp-id,
IO::Path:D $path,
:$extension = '')
{ ... }
지정된 경로의 파일을, 주어진 컴파일러 ID와 사전 컴파일 ID 아래 사전 컴파일 저장소에 저장해요.
method store-unit
method store-unit(CompUnit::PrecompilationId $compiler-id,
CompUnit::PrecompilationId $precomp-id,
CompUnit::PrecompilationUnit $unit)
{ ... }
주어진 사전 컴파일 단위를, 주어진 컴파일러 ID와 사전 컴파일 ID 아래 사전 컴파일 저장소에 저장해요.
method store-repo-id
method store-repo-id(CompUnit::PrecompilationId $compiler-id,
CompUnit::PrecompilationId $precomp-id,
:$repo-id!)
{ ... }
주어진 컴파일러 ID와 사전 컴파일 ID 아래 사전 컴파일에 대한 repo-id를 저장해요.
method delete
method delete(CompUnit::PrecompilationId $compiler-id,
CompUnit::PrecompilationId $precomp-id)
{ ... }
개별 사전 컴파일 하나를 삭제해요.
method delete-by-compiler
method delete-by-compiler(CompUnit::PrecompilationId $compiler-id)
{ ... }
특정 컴파일러에 대한 모든 사전 컴파일을 삭제해요.