6 poolDictionaries:'' |
6 poolDictionaries:'' |
7 category:'Monticello-Storing' |
7 category:'Monticello-Storing' |
8 ! |
8 ! |
9 |
9 |
10 |
10 |
|
11 !MCMczWriter class methodsFor:'initialization'! |
|
12 |
|
13 new |
|
14 ^self basicNew initialize |
|
15 ! ! |
|
16 |
11 !MCMczWriter class methodsFor:'as yet unclassified'! |
17 !MCMczWriter class methodsFor:'as yet unclassified'! |
12 |
18 |
13 fileOut: aVersion on: aStream |
19 fileOut: aVersion on: aStream |
14 | inst | |
20 | inst | |
|
21 inst := self on: aStream. |
|
22 inst writeVersion: aVersion. |
|
23 inst flush. |
|
24 |
15 |
25 |
16 inst _ self on: aStream. |
|
17 inst writeVersion: aVersion. |
|
18 inst flush. |
|
19 ! |
|
20 |
|
21 new |
|
22 ^ self basicNew initialize |
|
23 ! |
26 ! |
24 |
27 |
25 readerClass |
28 readerClass |
26 ^ MCMczReader |
29 ^ MCMczReader |
27 ! ! |
30 ! ! |
34 |
37 |
35 snapshotWriterClass |
38 snapshotWriterClass |
36 ^ MCStWriter |
39 ^ MCStWriter |
37 ! |
40 ! |
38 |
41 |
|
42 stream: aStream |
|
43 |
|
44 super stream: aStream. |
|
45 self zip. |
|
46 |
|
47 "Created: / 11-09-2010 / 14:18:43 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
48 ! |
|
49 |
39 zip |
50 zip |
40 ^ zip |
51 |
|
52 zip ifNil:[zip := ZipArchive writingTo: stream]. |
|
53 ^ zip |
|
54 |
|
55 "Modified: / 11-09-2010 / 14:17:41 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
41 ! ! |
56 ! ! |
42 |
57 |
43 !MCMczWriter methodsFor:'initializing'! |
58 !MCMczWriter methodsFor:'initializing'! |
44 |
59 |
45 initialize |
60 initialize |
46 zip _ ZipArchive new. |
61 super initialize. |
|
62 "/zip := ZipArchive new. |
|
63 |
|
64 "Modified: / 11-09-2010 / 14:13:56 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
47 ! ! |
65 ! ! |
48 |
66 |
49 !MCMczWriter methodsFor:'serializing'! |
67 !MCMczWriter methodsFor:'serializing'! |
50 |
68 |
51 serializeDefinitions: aCollection |
69 serializeDefinitions: aCollection |
52 | writer s | |
70 | writer s | |
53 |
71 s := WriteStream on: (String new: 64). |
54 Smalltalk isSmalltalkX ifTrue:[ |
72 writer := self snapshotWriterClass on: s. |
55 s _ WriteStream on: String new. |
|
56 ] ifFalse:[ |
|
57 s _ RWBinaryOrTextStream on: String new. |
|
58 ]. |
|
59 writer _ self snapshotWriterClass on: s. |
|
60 writer writeDefinitions: aCollection. |
73 writer writeDefinitions: aCollection. |
61 ^ s contents |
74 ^ s contents |
|
75 |
|
76 "Modified: / 11-09-2010 / 14:26:04 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
62 ! |
77 ! |
63 |
78 |
64 serializeInBinary: aSnapshot |
79 serializeInBinary:aSnapshot |
65 | writer s | |
80 |writer s| |
66 |
81 |
67 Smalltalk isSmalltalkX ifTrue:[ |
82 s := ReadWriteStream on:ByteArray new. |
68 ^ aSnapshot binaryStoreBytes |
83 writer := DataStream on:s. |
69 ]. |
84 writer nextPut:aSnapshot. |
|
85 ^ s contents |
70 |
86 |
71 s _ RWBinaryOrTextStream on: String new. |
87 "Modified: / 11-09-2010 / 19:24:59 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
72 writer _ DataStream on: s. |
|
73 writer nextPut: aSnapshot. |
|
74 ^ s contents |
|
75 ! |
88 ! |
76 |
89 |
77 serializePackage: aPackage |
90 serializePackage: aPackage |
78 ^ '(name ''', aPackage name, ''')' |
91 ^ '(name ''', aPackage name, ''')' |
79 ! |
92 ! |
80 |
93 |
81 serializeVersionInfo: aVersionInfo |
94 serializeVersionInfo: aVersionInfo |
82 infoWriter ifNil: [infoWriter _ MCVersionInfoWriter new]. |
95 infoWriter ifNil: [infoWriter := MCVersionInfoWriter new]. |
83 ^ String streamContents: |
96 ^ String streamContents: |
84 [:s | |
97 [:s | |
85 infoWriter stream: s. |
98 infoWriter stream: s. |
86 infoWriter writeVersionInfo: aVersionInfo] |
99 infoWriter writeVersionInfo: aVersionInfo] |
87 ! ! |
100 ! ! |
113 aVersion dependencies do: [:ea | self writeVersionDependency: ea] |
126 aVersion dependencies do: [:ea | self writeVersionDependency: ea] |
114 ! |
127 ! |
115 |
128 |
116 writeVersionDependency: aVersionDependency |
129 writeVersionDependency: aVersionDependency |
117 | string | |
130 | string | |
118 string _ (self serializeVersionInfo: aVersionDependency versionInfo). |
131 string := (self serializeVersionInfo: aVersionDependency versionInfo). |
119 self addString: string at: 'dependencies/', aVersionDependency package name |
132 self addString: string at: 'dependencies/', aVersionDependency package name |
120 ! |
133 ! |
121 |
134 |
122 writeVersionInfo: aVersionInfo |
135 writeVersionInfo: aVersionInfo |
123 | string | |
136 | string | |
124 string _ self serializeVersionInfo: aVersionInfo. |
137 string := self serializeVersionInfo: aVersionInfo. |
125 self addString: string at: 'version'. |
138 self addString: string at: 'version'. |
|
139 |
126 ! ! |
140 ! ! |
127 |
141 |
128 !MCMczWriter methodsFor:'writing'! |
142 !MCMczWriter methodsFor:'writing'! |
129 |
143 |
130 addString: string at: path |
144 addString: string at: path |
131 | member | |
145 | member | |
|
146 member := zip addString: string as: path. |
|
147 "/member desiredCompressionMethod: ZipArchive compressionDeflated |
132 |
148 |
133 Smalltalk isSmalltalkX ifTrue:[ |
149 "Modified: / 11-09-2010 / 14:19:02 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
134 zip addFile:path fromStream:(string readStream) compressMethod:(ZipArchive compressionDeflated) |
|
135 ] ifFalse:[ |
|
136 member _ zip addString: string as: path. |
|
137 member desiredCompressionMethod: ZipArchive compressionDeflated |
|
138 ] |
|
139 ! |
150 ! |
140 |
151 |
141 flush |
152 flush |
142 Smalltalk isSmalltalkX ifTrue:[ |
153 "zip writeTo: stream." |
143 zip close. |
154 zip closeFile. |
144 stream close. |
155 stream close |
145 ^ self. |
|
146 ]. |
|
147 |
156 |
148 zip writeTo: stream. |
157 "Modified: / 11-09-2010 / 19:36:43 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
149 stream close |
|
150 ! ! |
158 ! ! |
151 |
159 |
152 !MCMczWriter class methodsFor:'documentation'! |
160 !MCMczWriter class methodsFor:'documentation'! |
153 |
161 |
154 version |
162 version_CVS |
155 ^ '$Header: /cvs/stx/stx/goodies/monticello/MCMczWriter.st,v 1.2 2009-10-26 15:25:10 cg Exp $' |
163 ^ '$Header: /cvs/stx/stx/goodies/monticello/MCMczWriter.st,v 1.3 2011-08-20 11:42:17 cg Exp $' |
156 ! |
164 ! |
157 |
165 |
158 version_CVS |
166 version_SVN |
159 ^ '$Header: /cvs/stx/stx/goodies/monticello/MCMczWriter.st,v 1.2 2009-10-26 15:25:10 cg Exp $' |
167 ^ '§Id: MCMczWriter.st 7 2010-09-12 07:18:55Z vranyj1 §' |
160 ! ! |
168 ! ! |