aboutsummaryrefslogtreecommitdiffstats
path: root/FuseArchive/Serializer.py
diff options
context:
space:
mode:
authorSteve Slaven <bpk@hoopajoo.net>2009-08-04 04:47:05 (GMT)
committerSteve Slaven <bpk@hoopajoo.net>2009-08-04 04:47:05 (GMT)
commit8f02874e8e45d21a90f3c880eaf1aafc3e852951 (patch)
tree359153b38dd1ebce4dd1294333b8735651d15108 /FuseArchive/Serializer.py
parentc73b1bfa6b1de28934f93dd2a773a67f647b7824 (diff)
downloadfusearchive-8f02874e8e45d21a90f3c880eaf1aafc3e852951.zip
fusearchive-8f02874e8e45d21a90f3c880eaf1aafc3e852951.tar.gz
fusearchive-8f02874e8e45d21a90f3c880eaf1aafc3e852951.tar.bz2
Split up main classes
Diffstat (limited to 'FuseArchive/Serializer.py')
-rw-r--r--FuseArchive/Serializer.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/FuseArchive/Serializer.py b/FuseArchive/Serializer.py
new file mode 100644
index 0000000..b2e1592
--- /dev/null
+++ b/FuseArchive/Serializer.py
@@ -0,0 +1,40 @@
+import gzip, FuseArchive
+
+class Serializer:
+ """This lets us experiment with different main file serializers"""
+ @staticmethod
+ def dump( f, obj ):
+ out = FuseArchiveStream.open( f, "wb" )
+ Serializer.dumpfh( obj, out ) # new file format
+ out.close()
+
+ @staticmethod
+ def dumpfh( fh, obj ):
+ logging.debug( "Going to serialize %s to %s" % ( obj, fh ) )
+ fh.truncate( 0 )
+ fh.seek( 0 )
+ f = gzip.GzipFile( None, "wb", gzip_compress_level, fh )
+ #f = fh
+ cPickle.dump( obj, f, -1 )
+ del f
+ fh.flush()
+
+ @staticmethod
+ def load( f ):
+ if FuseArchive.magic_profiling:
+ return { 'size': 0, 'chunks': 0, 'chunk_size': 0 }
+
+ inp = open( f, "rb" )
+ magic = Serializer.loadfh( inp )
+ inp.close()
+ return magic
+
+ @staticmethod
+ def loadfh( fh ):
+ logging.debug( "Going to load from %s" % fh )
+ fh.seek( 0 )
+ f = gzip.GzipFile( None, "rb", gzip_compress_level, fh )
+ #f = fh
+ magic = cPickle.load( f )
+ return( magic )
+