ó
¾Ã9Qc           @   sE   d  Z  d Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d „  Z d S(	   sV   This module contains mainloop wrappers.

Currently only glib main loops are supported.t   MainLoopt   set_typec           B   sY   e  Z d  Z d Z d „  Z e d „  ƒ Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z RS(	   s  An abstract main loop wrapper class and factory.

    Use MainLoop() to get a main loop wrapper object for a main loop type
    previously registered with set_type(). Defaults to glib main loops.

    Actual main loop wrapper classes are derived from this class.c         O   s>   t  j d  k r t  j d ƒ n  t t  |  ƒ j t  j | | Ž S(   Nt   glib(   R    t   _mainloop_classt   NoneR   t   supert   __new__t   _MainLoop__mainloop_class(   t   clst   argst   kwargs(    (    s6   /usr/lib/python2.7/site-packages/slip/dbus/mainloop.pyR   )   s    c         C   sp   t  j d k	 r t d ƒ ‚ n  i t d 6} | | k rG | | t  _ n% t d | d j | j ƒ  ƒ f ƒ ‚ d S(   sx   Set a main loop type for non-blocking interfaces.

        mltype: "glib" (currently only glib main loops are supported)s(   The main loop type can only be set once.R   s2   '%s' is not one of the valid main loop types (%s).t   ,N(   R    R   R   t   RuntimeErrort   GlibMainLoopt
   ValueErrort   joint   keys(   R   t   mltypet   ml_type_class(    (    s6   /usr/lib/python2.7/site-packages/slip/dbus/mainloop.pyR   0   s    c         C   s   t  ƒ  ‚ d S(   s$   Returns if there are pending events.N(   t   NotImplementedError(   t   self(    (    s6   /usr/lib/python2.7/site-packages/slip/dbus/mainloop.pyt   pendingA   s    c         C   s   t  ƒ  ‚ d S(   s    Iterates over one pending event.N(   R   (   R   (    (    s6   /usr/lib/python2.7/site-packages/slip/dbus/mainloop.pyt   iterateF   s    c         C   s!   x |  j  ƒ  r |  j ƒ  q Wd S(   s!   Iterates over all pending events.N(   R   R   (   R   (    (    s6   /usr/lib/python2.7/site-packages/slip/dbus/mainloop.pyt   iterate_over_pending_eventsK   s    c         C   s   t  ƒ  ‚ d S(   s   Runs the main loop.N(   R   (   R   (    (    s6   /usr/lib/python2.7/site-packages/slip/dbus/mainloop.pyt   runQ   s    c         C   s   t  ƒ  ‚ d S(   s   Quits the main loop.N(   R   (   R   (    (    s6   /usr/lib/python2.7/site-packages/slip/dbus/mainloop.pyt   quitV   s    N(   t   __name__t
   __module__t   __doc__R   R   R   t   classmethodR   R   R   R   R   R   (    (    (    s6   /usr/lib/python2.7/site-packages/slip/dbus/mainloop.pyR       s   					R   c           B   s   e  Z d  „  Z RS(   c         C   se   d d l  m } | j ƒ  } | j ƒ  } | |  _ | j |  _ | j |  _ | j |  _ | j	 |  _	 d  S(   Niÿÿÿÿ(   t   _gobject(
   t   slip._wrappersR   R    t   get_contextt	   _mainloopR   t	   iterationR   R   R   (   R   R   t   mlt   ctx(    (    s6   /usr/lib/python2.7/site-packages/slip/dbus/mainloop.pyt   __init__^   s    	(   R   R   R%   (    (    (    s6   /usr/lib/python2.7/site-packages/slip/dbus/mainloop.pyR   \   s   c         C   s.   d d l  m } | d t ƒ t j |  ƒ d S(   s¦   Set a main loop type for non-blocking interfaces.

    mltype: "glib" (currently only glib main loops are supported)

    Deprecated, use MainLoop.set_type() instead.iÿÿÿÿ(   t   warns   use MainLoop.set_type() insteadN(   t   warningsR&   t   DeprecationWarningR    R   (   R   R&   (    (    s6   /usr/lib/python2.7/site-packages/slip/dbus/mainloop.pyR   j   s    N(   s   MainLoops   set_type(   R   t   __all__t   objectR    R   R   (    (    (    s6   /usr/lib/python2.7/site-packages/slip/dbus/mainloop.pyt   <module>   s   =