Class PickleReader


  • class PickleReader
    extends java.lang.Object
    generic Python Pickle file reader only utilizing records needed for PyMOL. It appears we must read integers littleEndian and doubles bigEndian. 2013.04.06 -- added memo functions. PyMOL pickling is using LONG_BINPUT way too often. This results in a huge unnecessary memory overhead. My only solution is to only cache Strings in memo, and then only selectively -- not parts of movie; not when markCount > 5 (residues). This seems to work, but it is still way overkill, since each atom generates several items. see http://www.picklingtools.com/
    Author:
    Bob Hanson hansonr@stolaf.edu
    • Constructor Summary

      Constructors 
      Constructor Description
      PickleReader​(javajs.api.GenericBinaryDocument doc, Viewer vwr)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private java.lang.String bytesToString​(java.lang.Object o)  
      (package private) java.util.Map<java.lang.String,​java.lang.Object> getMap​(boolean logging)  
      private int getMark()  
      private java.lang.Object getMemo​(int i)  
      private javajs.util.Lst<java.lang.Object> getObjects​(int mark)  
      private void log​(java.lang.String s)  
      private java.lang.Object peek()  
      private java.lang.Object pop()  
      private void push​(java.lang.Object o)  
      private void putMark​(int i)  
      private void putMemo​(int i, boolean doCheck)  
      private byte[] readStringAsBytes()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • PickleReader

        PickleReader​(javajs.api.GenericBinaryDocument doc,
                     Viewer vwr)
    • Method Detail

      • log

        private void log​(java.lang.String s)
      • getMap

        java.util.Map<java.lang.String,​java.lang.Object> getMap​(boolean logging)
                                                               throws java.lang.Exception
        Throws:
        java.lang.Exception
      • bytesToString

        private java.lang.String bytesToString​(java.lang.Object o)
      • putMemo

        private void putMemo​(int i,
                             boolean doCheck)
      • getMemo

        private java.lang.Object getMemo​(int i)
      • getObjects

        private javajs.util.Lst<java.lang.Object> getObjects​(int mark)
      • readStringAsBytes

        private byte[] readStringAsBytes()
                                  throws java.lang.Exception
        Throws:
        java.lang.Exception
      • putMark

        private void putMark​(int i)
      • getMark

        private int getMark()
      • push

        private void push​(java.lang.Object o)
      • peek

        private java.lang.Object peek()
      • pop

        private java.lang.Object pop()