GnuSmalltalkUsersGuide:BaseChapter 121

From 흡혈양파의 번역工房
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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