GnuSmalltalkUsersGuide:BaseChapter 121

From 흡혈양파의 번역工房
Jump to navigation Jump to search
ObjectDumper

ObjectDumper

네임스페이스 Smalltalk에 정의됨

슈퍼클래스: Stream

범주: 스트림-파일


나는 일반 스몰토크 시스템에 속하지 않지만 대부분 스몰토크는 나와 유사한 기능을 제공한다: 즉, 객체를 바이너리 형식으로 보관하는 것을 지원한다는 의미다; #storeOn: 와 스몰토크 컴파일러 대신 나를 사용할 경우 많은 장점이 있다.
데이터는 매우 압축된 형식으로 보관되므로 #storeOn: 이 준비하는 스몰토크 코드의 컴파일과 비교 시 훨씬 빨리 로딩이 된다는 부수적인 효과도 있다. 게다가 나의 인스턴스들은 객체들 간 순환 참조를 지원하는 반면 #storeOn: 은 그러한 참조를 설계 시에 인지한 경우에만 지원하며 이를 처리하기 위해 #storeOn: 을 오버라이드 해야 한다.


ObjectDumper 클래스: 프록시 클래스 구축하기

disableProxyFor: aClass

aClass와 그 종속자들의 인스턴스에 대한 프록시를 비활성화하라.

hasProxyFor: aClass

프록시 클래스가 aClass의 인스턴스를 위해 등록되었는지 여부를 응답하라.

proxyClassFor: anObject

객체에 유효한 프록시의 클래스를 응답하고, 찾을 수 없는 경우 nil을 응답하라.

proxyFor: anObject

객체에 유효한 프록시를 응답하고, 찾을 수 없는 경우 객체 자체를 응답하라.

registerProxyClass: aProxyClass for: aClass

aClass와 그 종속자의 인스턴스에 사용될 프록시 클래스 aProxyClass - DumperProxy의 종속자 - 를 등록하라.


ObjectDumper 클래스: 인스턴스 생성

new

이 클래스의 인스턴스를 대상으로 해당 메서드를 호출해서는 안 된다.

on: aFileStream

aFileStream에서 작업 중인 ObjectDumper 를 응답하라.


ObjectDumper 클래스: 단축키

dump: anObject to: aFileStream

anObject를 aFileStream으로 덤프하라. anObject를 응답하라.

loadFrom: aFileStream

aFileStream으로부터 객체를 로딩하고 객체를 응답하라.


ObjectDumper 클래스: 검사하기

example

정말로 고문 테스트다: 재귀적 객체, 동일한 객체를 여러 번, 클래스, 메타클래스, 정수, 문자, 프록시를 (따라서 좀 더 복잡한 객체의 테스트가 되기도 한다) 출력한다!


ObjectDumper: 접근하기

flush

이전에 보관된 객체에 관한 어떤 정보도 '잊어버려라'.

stream

ObjectDumper가 작성하고 그것을 읽어올 ByteStream을 응답하라.

stream: aByteStream

ObjectDumper가 작성하고 그것을 읽어올 ByteStream을 설정하라.


ObjectDumper: 객체 로딩/dump하기

dump: anObject

수신자와 연관된 스트림에 anObject를 덤프하라. anObject를 응답하라.

load

수신자와 연관된 스트림으로부터 객체를 로딩하여 응답하라.


ObjectDumper: 스트림 인터페이스

atEnd

기본이 되는 스트림이 EOF인지 여부를 응답하라.

next

기본이 되는 스트림으로부터 객체를 로딩하라.

nextPut: anObject

기본이 되는 스트림 상에서 객체를 보관하라.


Notes