ó
[³XMc           @   sY   d  Z  d d l m Z d d l m Z d d l m Z d d l Z d d d „  ƒ  YZ d S(	   s?   Logging that uses pickles.

TODO: add log that logs to a file.
iÿÿÿÿ(   t   dirdbm(   t   defer(   t
   implementsNt	   DirDBMLogc           B   s?   e  Z d  Z e e j ƒ d „  Z d „  Z d „  Z d „  Z	 RS(   s    Log pickles to DirDBM directory.c         C   sO   t  j | ƒ |  _ t t |  j j ƒ  ƒ } | rB t | ƒ |  _ n	 d |  _ d  S(   Ni    (   R    t   Shelft   dbt   mapt   intt   keyst   maxt   currentIndex(   t   selft   logPatht   indexs(    (    sG   /usr/lib/python2.7/dist-packages/twisted/persisted/journal/picklelog.pyt   __init__   s
    c         C   s8   |  j  d 7_  | | f |  j t |  j  ƒ <t j d ƒ S(   s   Log a command.i   (   R
   R   t   strR   t   succeed(   R   t   commandt   time(    (    sG   /usr/lib/python2.7/dist-packages/twisted/persisted/journal/picklelog.pyt
   logCommand"   s    c         C   s   |  j  S(   s$   Return index of last command logged.(   R
   (   R   (    (    sG   /usr/lib/python2.7/dist-packages/twisted/persisted/journal/picklelog.pyt   getCurrentIndex(   s    c         C   sE   g  } x8 t  | |  j d ƒ D]  } | j |  j t | ƒ ƒ q W| S(   Ni   (   t   rangeR
   t   appendR   R   (   R   t   indext   resultt   i(    (    sG   /usr/lib/python2.7/dist-packages/twisted/persisted/journal/picklelog.pyt   getCommandsSince,   s    (
   t   __name__t
   __module__t   __doc__R   t   baset   ICommandLogR   R   R   R   (    (    (    sG   /usr/lib/python2.7/dist-packages/twisted/persisted/journal/picklelog.pyR      s   			(    (	   R   t   twisted.persistedR    t   twisted.internetR   t   zope.interfaceR   R   R   (    (    (    sG   /usr/lib/python2.7/dist-packages/twisted/persisted/journal/picklelog.pyt   <module>
   s
   