MCMczWriter.st
changeset 199 6e1b0c7e6685
parent 142 4a05a68fe582
child 295 1fa997fa1eae
equal deleted inserted replaced
198:ea2870255a06 199:6e1b0c7e6685
     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 ! !