+
    QDbq  c                   s0   ^ RI t ^ RIt]P                  ! R4       ^ RIt^ RIt^ RIHt ^ RIHt ^ RIt^ RI	5 ^ RI
t
^ RIt]P                  ! ] P                  ] P                  R7       ^ RIt^ RIt^ RIHt ^<t^tR tR	 t ! R
 R]P                  4      t]R8X  df    ! R R4      t]! R4       ]! 4       t]! ]4       ]P7                  4        ]P8                  ! 4       t ]P=                  4        ]P?                  4        R# R#   ]P?                  4        i ; i)i    Nz1.9.50)GObject)GLib)*)Zdomain	localedir)StateReasonc                 s    V P                  R 4      '       g]   V P                  R4      '       gF   V P                  R4      '       g/   V P                  R4      '       g   V P                  R4      '       d   R# R# )zmoving-to-pausedZpausedZshutdownZstoppingzstopped-partlyTF)
startswith)reason   &+/usr/share/system-config-printer/monitor.pystate_reason_is_harmlessr	   '   s_    -..8$$:&&:&&+,,    c           	      sL   / p V P                  4       pTP                  4        F_  w  rETR ,          pT FK  pTR8X  d    K  \	        T4      '       d   K   YB9  d   . Y$&   Y$,          P                  \        YGT4      4       KM  	  Ka  	  T#   \        P                   d    Tu # i ; i)printer-state-reasonsnone)getPrinterscupsIPPErroritemsr	   appendr   )Z
connectionppdcacheZresultprintersnameprinterreasonsr   s   &&      r   collect_printer_state_reasonsr   0   s    F)), "*12F'00!!LdH!EF  + M == s   B	 	B#"B#c            !       s~  a  ] tR t^Ct o R]P
                  P                  RR$3R]P
                  P                  RR$3R]P
                  P                  R]P                  33R]P
                  P                  R]P                  33R]P
                  P                  R]P                  33R]P
                  P                  R]33R]P
                  P                  R]	]]P                  ]P                  33R	]P
                  P                  R]	]]P                  ]P                  33R
]P
                  P                  R]	]]P                  33R]P
                  P                  R]33R]P
                  P                  R]]]P                  33R]P
                  P                  R]33R]P
                  P                  RR$3R]P
                  P                  RR$3R]P
                  P                  R]	]33/t
RtRtR%R ltR tR tR tR tR tR t/ 3R lt]! 4       / 3R ltR tR&R ltR tR'R ltR  tR! tR" tR#tV tR# )(MonitorrefreshNmonitor-exitedstate-reason-addedstate-reason-removedstill-connectingnow-connected	job-added	job-eventjob-removedprinter-addedprinter-eventprinter-removedcups-connection-errorcups-connection-recoveredcups-ipp-errorz/com/redhat/PrinterSpoolerzcom.redhat.PrinterSpoolerc                s>   \         P                   P                  V 4       W n        W0n        W@n        / V n        / V n        \        4       V n        R V n	        RV n
        RV n        V'       d   \        P                  ! V4       V'       d   \        P                  ! V4       V'       d   \        P                  ! V4       \        P                   ! 4       V n        \        P$                  ! 4       V n        \        P(                  ! 4       V n        \        P,                  ! 4       V n        \0        P2                  ! V P&                  V P*                  V P.                  R7      V n        RV n        / V n        / V n        \        4       V n        / V n        RV n        RV n         Vf    \B        PD                  ! 4       pWn%        Ve3   VPM                  V PN                  V PP                  V PR                  R7       RV n*        R#   \B        PF                  PH                   d     Lfi ; i)TNFhostport
encryptionznot-completedZpathZdbus_interface)+r    __init__my_jobsspecific_destsmonitor_jobsjobsprinter_state_reasonssetr   process_pending_eventsfetch_jobs_timercups_connection_in_errorr   Z	setServerZsetPortZsetEncryptiongetUseruserZ	getServerr)   ZgetPortr*   ZgetEncryptionr+   r   ZPPDCache
which_jobsreasons_seenconnecting_timersstill_connectingconnecting_to_devicereceived_any_dbus_signalsupdate_timerdbusZ	SystemBusZ
exceptionsZDBusExceptionbusZadd_signal_receiverhandle_dbus_signal	DBUS_PATH
DBUS_IFACEsub_id)selfrB   r/   r0   r1   r)   r*   r+   s   &&&&&&&&r   r.   ZMonitor.__init__k   s    	  $',(	%'"&*# $(-%NND!LL$
+LLO	NN%	LLO	,,/ ))		04		6:ooG *!# #$&!).& ;nn'
 ?##T%<%<*...48OO $ E  ??00 s    G: :HHc                6    V P                   P                  4       # N)r   copyrG   r   r   get_printersZMonitor.get_printers   s    }}!!$$r
   c                rH   rI   )r2   rJ   rK   r   r   get_jobsZMonitor.get_jobs   s    yy~~  r
   c                s    V P                   # rI   )r   rK   r   r   get_ppdcacheZMonitor.get_ppdcache   s    }}r
   c                sX   V P                   R8w  d   \        P                  ! 4       p \        P                  ! V P                  4       \        P
                  ! V P                  V P                  V P                  R7      pVP                  V P                   4       \        RV P                   ,          4       \        P                  ! T4       V P                  e=   V P                  P                  V P                  V P                  V P                  R7       \!        V P"                  P%                  4       4      pV P&                  V P(                  3 F  pV'       g   K  VP+                  V4       K   	  V F  p\,        P.                  ! V4       K  	  V P1                  R4       R#     L; i)i   r(   Canceled subscription %dNr,   r   r-   )rF   r   r8   setUserr9   
Connectionr)   r*   r+   cancelSubscription
debugprintrB   Zremove_signal_receiverrC   rD   rE   listr<   Zvaluesr@   r6   r   r   source_removeemit)rG   r9   cZtimerstimers   &    r   cleanupZMonitor.cleanup   s8   ;;"<<?Ddii(OO$))*.))04A $$dkk26DE LL$88HH++T-D-D26..<@OO , M d,,3367'')>)>?Euu% @ E&  			#$!s   BF% %F)c                s    Wn         R # rI   )r5   )rG   Zwhether   &&r   set_process_pendingZMonitor.set_process_pending   s    &-#r
   c                s2   V P                   '       g3   \        P                  ! ^V P                  V4      pW P                  V&   R# WP                  9   d   V P                  V \        RV,          4       V P                  4       w  r4V P                  V4       R# )z8Timer callback to check on connecting-to-device reasons.Fz%Still-connecting timer fired for `%s')r5   r   timeout_addcheck_still_connectingr<   rS   sort_jobs_by_printerupdate_connecting_devices)rG   r   rX   printer_jobsmy_printerss   &&   r   r]   ZMonitor.check_still_connecting   s    ***$$c4+F+F&-/E.3""7+,,,&&w/;gEF&*&?&?&B#&&5 r
   c                s   \         P                   ! 4       p/ pRpV P                  P                  4        EF  w  rVRpV EF  pVP                  4       R8X  g   K  Rp	VP	                  V/ 4      P                  4        F>  w  rVP	                  R\
        P                  4      pV\
        P                  8X  g   K<  Rp	 M	  V	'       g   \        R4       K  VP                  4       pV P                  P	                  WR4      pWV&   \        RW-,
          ,          4       W-,
          \        8  d   V	'       d   WPP                  9  d.   V P                  P                  V4       V P                  RV4       WPP                  9   dG   \         P"                  ! V P                  V,          4       V P                  V \        RV,          4       Rp M	  V'       g   EK  WPP                  9   g   EK  \         P"                  ! V P                  V,          4       V P                  V \        RV,          4       EK  	  \%        4       pV P                   F  pWS9  g   K  VP                  V4       V P                  R	V4       WPP                  9   g   K@  \         P"                  ! V P                  V,          4       V P                  V \        RV,          4       K  	  V P                  P'                  V4      V n        W0n
        R
# )z;Updates connecting_to_device dict and still_connecting set.FTconnecting-to-device	job-statez%Ignoring stale connecting-to-device xzConnecting time: %dr   z!Stopped connecting timer for `%s'r   N)timer3   r   
get_reasongetr   IPP_JOB_CANCELEDIPP_JOB_PROCESSINGrS   get_printerr>   CONNECTING_TIMEOUTr=   addrV   r<   r   rU   r4   Z
difference)rG   r`   Ztime_nowr>   Ztroubler   r   Z	connectedr   have_processing_jobjobdatastatetremoves   &&             r   r_   Z!Monitor.update_connecting_devices   s{   99<! $ : : @ @ CGI!$$'+AA*/'%1%5%5w%C%I%I%L	 $+*.*?*?!A D$;$;;26/! &M /"$KL  %003G1155wIA451 5 FG|'99.&.C.CC $ 5 5 9 97 C $		+=v F&*@*@@ $ 2 2D4J4J5<5> !?$($:$:7$C * -79@-A !B !&IC "F yW(>(>>""D$:$:7$CD**73?'IJQ !DV ,,G2

G$		?G4444&&(>(>w(GH..w7 Cg MN - !% 5 5 @ @& I$8!r
   c                s  a  \        S P                  P                  4       4      p\        4       pS P                  P                  4        EF  w  rVV EF  pVP                  4       pVP                  4       pVP                  V4       VS P                  9  d+   \        P                  ! V 3R  lV4       VS P                  V&   VP                  4       R8X  g   K  VS P                  9  g   K  Rp	VP                  V/ 4      P                  4        F>  w  rVP                  R\        P                  4      pV\        P                   8X  g   K<  Rp	 M	  V	'       dR   \        P"                  ! ^\$        ,           S P&                  V4      pVS P(                  V&   \+        RV,          4       EKW  \+        R4       \-        4       '       g   EKu  \+        \.        P0                  ! V4      4       EK  	  EK  	  S P3                  V4       \        S P                  P                  4       4      pV FF  pW9   d   K  S P                  V,          pS P                  V \        P                  ! V 3R lV4       KH  	  R# )	c                 (   < SP                  R V 4      # )r   rV   ZxrG      &r   <lambda>-Monitor.check_state_reasons.<locals>.<lambda>   s    '+yy2F'Jr
   rb   Frc   TzStart connecting timer for `%s'z#Ignoring stale connecting-to-devicec                 rr   )r   rs   rt   ru   r   rv   rw   F  s    4JA)Nr
   N)rT   r;   keysr4   r3   r   Z	get_tupleri   rk   r   idle_addre   r>   rf   r   rg   rh   timeout_add_secondsrj   r]   r<   rS   get_debuggingpprintpformatr_   )rG   ra   r`   Zold_reasons_seen_keysZreasons_nowr   r   r   tuplerl   rm   rn   ro   rp   r   s   f&&            r   check_state_reasonsZMonitor.check_state_reasons  s    $T%6%6%;%;%> ?e $ : : @ @ CG!((+ ,,/' 1 11MM $K#)+ 06D%%e,%%(,BB4#<#<< +0'%1%5%5w%C%I%I%L	 $+*.*?*?!A D$;$;;26/! &M + 44!33 77#% ;<..w7"$E$+%, - #$IJ(++&(EFG " !DL 	&&5T&&++./E'**51%%e,N%' r
   c           	     s   V P                   '       d!   \        P                  ! V P                   4       R V n         V P                  '       g4   \        P                  ! ^V P
                  4      V n         \        R4       R# \        R4       \        P                  ! 4       p \        P                  ! V P                  4       \        P                  ! V P                  V P                  V P                  R7      p  VP                  V P                   .V P"                  ^,           .4      pT P4                  '       d$   RT n        \        R4       T P/                  R4       \        P                  ! T4       T P6                  P9                  4       pTR,           EF  pTR,          pYn        TR,          p	\        RYTR,          3,          4       \;        4       '       d    \        \<        P>                  ! T4      4       T	PA                  R4      '       Ed   TR,          p
T	R8X  d@   YPB                  9  d0   T PB                  PE                  T
4       T P/                  RT
4       EMVT	R8X  d   YPB                  9   d   T PB                  PG                  T
4       \I        T PJ                  PM                  4       4      pT FE  pT^,          T
8X  g   K  T PJ                  T,          pT PJ                  T T P/                  RT4       KG  	  YPN                  9   d   T PN                  T
 T P/                  RT
4       MYPB                  9   dw   TR,          p. pT FD  pTR8X  d    M<\Q        T4      '       d   K  TPS                  \U        YT PV                  4      4       KF  	  YPN                  T
&   T P/                  RYT4       EK&  T	PA                  R4      '       g   \        R\Y        T	4      ,          4       EK[  TR,          pT	R8X  g+   T	R8X  d   TT9  d   TR,          \        PZ                  8X  d   T P\                  e   TR,          T P\                  9  d   EK   TP_                  T4      pT P`                  '       d%   TR ,          \        P                  ! 4       8w  d   EK  TTT&   T P/                  R"TYTT,          P9                  4       4       MUT	R#8X  g$   T	R8X  dH   TR,          \        Pd                  8X  d,   T Pf                  R+9   g    TT T P/                  R$TY4       EK   TT,          pT P\                  e2   TR,          T P\                  9  d   TT T P/                  R$TY4       EK  R, F  pTT,          TT&   K  	  R%T9   d   TR%,          TR&&   T P/                  R'TYTP9                  4       4       EK   	  T Pi                  R4       T Pk                  T4       Y`n        T Pi                  R4       T Pl                  '       gD   TR(,          p\        Pn                  ! TT P
                  4      p\        R)T,          4       TT n         R#   \$         d!    TP                  T P                   .4      p ELJi ; i  \        P&                   d   pTP(                  w  rE\        P                  ! T4       T\        P*                  8X  d)   R*T n        \        R4       T P-                  4         R p?R# T P/                  RYE4       T\        P0                  8X  d    R p?R# \        RYE3,          4        R p?R# R p?ii ; i  \2         d>    \        P                  ! T4       \        R	4       RT n        T P/                  R
4        R# i ; i  \b         d    R!^ /TT&    EL\        P&                   d3   pTP(                  w  rET P/                  RYE4       R!^ /TT&    R p?EL:R p?ii ; i  \b         d     ELi ; i  \b         d     EKn  i ; i)-Nz#Deferred get_notifications by 200msFget_notificationsr(   z$Subscription not found, will refreshr'   z$getNotifications failed with %d (%s)Tz!cups-connection-error, will retryr%   r&   eventsznotify-sequence-numberznotify-subscribed-eventz%d %s %sznotify-textzprinter-zprinter-namer"   printer-deletedr   r$   r   r   r#   zjob-zUnhandled nse %sznotify-job-idjob-createdjob-state-changedrc   job-originating-user-namejob-k-octetsr   job-completedr!   znotify-printer-urijob-printer-urir    znotify-get-intervalNext notifications fetch in %dsr-   )	completedall)rc   job-name)8r@   r   rU   r5   r\   r   rS   r   r8   rP   r9   rQ   r)   r*   r+   ZgetNotificationsrF   sub_seqAttributeErrorr   argsZIPP_NOT_FOUNDr   rV   ZIPP_FORBIDDENRuntimeErrorr7   r2   rJ   r{   r|   r}   r   r   rk   rq   rT   r;   rx   r3   r	   r   r   r   reprrh   r0   ZgetJobAttributesr/   KeyErrorZIPP_JOB_COMPLETEDr:   r[   update_jobsr?   rz   )rG   r9   rW   Znotificationsemr2   eventZseqZnser   r   r~   r   r3   r   jobidZattrsrm   Z	attributeZintervalrp   s   &                     r   r   ZMonitor.get_notificationsI  s    1 12 *** $ 0 0#595K5K!MD=>'(||!	LL$))$dii&*ii,0OO=AG$%$6$69=9I8J%LM6 (((,1D)34II23dyy~~ "8,,E01CL12C
cm0D%EEFFNNE23~~z**^,/)d--.GMM%%t,II5--$--2GMM(($/ !2!2!7!7!:;E!& 8t+%)%6%6u%=F $ 1 1% 8 II'=vF	 "' 999 66t<II0$7]]*,12I,J) G"7!V+!3V<<$T59]])D E #8 8?..t4II5A >>6** .s;</*E}$++d"{#t'>'>>''3.)1D1DD6..6E9:dlloM "'DK 		;s4;;K;K;NO(--%)?)??+?? K		=%D 5k ##/n%T-@-@@K		=%<*	!&y!1I* $u,)./C)D%&II{E3sxx{CK -N 	  %($	  $' ---$%:;H(((*.*@*@BA9HDE !Dk & G$%$6$6$FMG== d#***"$DK FGLLO 		+Q2*** BaVKL   	LL$;<,0D)II./	^   6#11"5DK}} 6VVFQII/6#11"5DK6 $   s    A\: 9/Y "^8!^^_#!	_5'Y3/Y6 2Y33Y6 6\7A\2&\: ,'\2\: \2,\: 2\77\: :A^^_ _ -_ .'__ #_21_25``c                s  a  \        R 4       S P                  R 4       Ve   VS n        \        P                  ! 4       p \        P
                  ! S P                  4       \        P                  ! S P                  S P                  S P                  R7      pS P                  R8w  dr    TP                  S P                  4       S P$                  '       d!   \        P&                  ! S P$                  4       RS n        \        RS P                  ,          4        S =. ROpS P,                  '       d   TP/                  . RO4        TP1                  RTR7      S n        \        RS P                  \3        T4      3,          4       \        P
                  ! T4       S P                  R8w  ds   S P$                  '       d!   \        P&                  ! S P$                  4       \        P4                  ! \6        S P8                  4      S n        \        R
\6        ,          4       S P,                  '       d   S P:                  P=                  4       pS P                  R9  dW   / p	TP?                  4        F>  w  rTPA                  R\        PB                  4      \        PB                  8  g   K:  YT
&   K@  	  T	p^S n"        S PF                  '       d!   \        P&                  ! S PF                  4       \        PH                  ! ^S PJ                  T4      S n#        M/ p \M        TS PN                  4      pTS n(        TPS                  4       p\U        TPW                  4       4      S n,        S PZ                  ea   TPW                  4        FL  p
Y,          PA                  RR4      pTP]                  R4      pY^,           R pTS PZ                  9  g   KJ  Y KN  	  S P_                  R4       S PX                   F  p\        P                  ! T 3R lT4       K   	  TP?                  4        F   w  r\        P                  ! T 3R lY4       K"  	  S Pa                  T4       TS n        S P_                  R4       R#   \         d<    \        P                  ! S P                  R4       \        P
                  ! T4        R# i ; i  \        P                    d5   pTP"                  w  rV\        P                  ! T 3R lYV4        Rp?EL5Rp?ii ; i  \*         d     ELi ; i  \        P                    d5   pTP"                  w  rV\        P                  ! T 3R	 lYV4        Rp?ELRp?ii ; i  \        P                    d5   pTP"                  w  rV\        P                  ! T 3R lYV4        Rp?R# Rp?i\         d&    \        P                  ! S P                  R4        R# i ; i)r   Nr(   r%   c                 (   < SP                  R W4      # r'   rs   r   r   rG      &&r   rv   !Monitor.refresh.<locals>.<lambda>  s    DII7G,Nr
   rO   /)r   z"Created subscription %d, events=%sc                 r   r   rs   r   r   r   rv   r   .      		3CQ(Jr
   r   rc   c                 r   r   rs   r   r   r   rv   r   W  r   r
   r   Fc                 rr   )r"   rs   rt   ru   r   rv   r   h  s    TYY%Cr
   c                 s.   < SP                  R V R/ V4      # )r    rs   )r   rm   rG   r   r   rv   r   j  s    "&))[%R"Mr
   Tr-   )r"   zprinter-modifiedr   zprinter-state-changed)r   r   zjob-stoppedr   zjob-progress)r   r   )1rS   rV   r:   r   r8   rP   r9   rQ   r)   r*   r+   r   r   ry   rF   rR   r   r   r@   rU   r   r   r1   ZextendZcreateSubscriptionr   rz   MIN_REFRESH_INTERVALr   r2   rJ   r   rf   rg   fetch_first_job_idr6   r\   
fetch_jobsr   r   r3   r   r4   rx   r   r0   rfindr[   r   )rG   r:   refresh_allr9   rW   r   r   r   r2   Zfilteredr   rm   rZdestsuriir   s   f&&              r   r   ZMonitor.refresh  s   I		9!(DO||	LL$))$dii&*ii,0OO=A ;;"%$$dkk2    ""D$5$56 $D2T[[@A	+ MM , -	!..F.CDK<@Df@O O P 	d;;"   ""D$5$56 $ 8 8$&&!(D 9,- . 99>>$D&::"&**-JEww $ 5 579=9N9NO*- #0  &'D#$$$""D$9$9:$($4$4a6A%CD! D	-q$--@A)*D&MM$E

.DM *koo&7=IIsO!ef+$"5"55 & 	  %(}}GMMCWM %**-JEMM N ' ( 	$	  $'W  	MM499&=>LL$	 == %N % %%  		$ }} 	!VVFQMMJ! !	!R }} 	VVFQMMJ! 	MM499&=>	sz   AQ+ (R4 T  ?T AU +AR10R14S=	)S88S= TTU')UUW3)V""W/"WWc           	     s8   V P                   '       g   R # \        P                  ! 4       p \        P                  ! V P                  4       \        P
                  ! V P                  V P                  V P                  R7      p^p. ROp TP                  T P                  T P                  T P                  TTR7      p\        P                  ! T4       \%        T4      p	\'        RT	: R	T: 24       T P(                  P+                  4       p
\-        TP/                  4       4      pTP1                  4        T	^ 8  da   Y^,
          ,          pYP                  8  dA   T P                  T,           ^,
          p\'        R
\3        T4      ,          4       \'        R4       MT P                  T,           ^,
          p\5        T P                  T^,           4       F  p Ym,          pT P6                  eG   TP9                  RR4      pTP;                  R4      pTT^,           R pTT P6                  9  d   \<        hY9   d   RpMRpYT&   T P                  TTR/ TP+                  4       4       K  	  \-        T
P/                  4       4      pTP1                  4        Y8  dW   Rp\5        \%        T4      4       F<  pTT,          pT'       g	   Y8  d   R pT'       g   K&  Y T P                  RTR/ 4       K>  	  T P?                  T
4       Yn        Y8  d
   RT n        R# X^,           pT'       g   TT P(                  9   d   T^,          pK$  TT n        R #   \         d3    T P                  R4       RT n        \        P                  ! T4        R# i ; i  \        P                    dI   pTP"                  w  rxT P                  RYx4       RT n        \        P                  ! T4        Rp?R# Rp?ii ; i  \<         d&    Y9   d   Y T P                  RTR/ 4        EKB   EKF  i ; i)Tr(   r%   NFr   )r:   r/   Zfirst_job_idlimitZrequested_attributesr'   zGot z jobs, asked for zUnexpected job IDs returned: %szThat's not what we asked for!r   r    r   r   r!   )zjob-idr   rc   r   r   r   ztime-at-creation) r5   r   r8   rP   r9   rQ   r)   r*   r+   r   rV   r6   ZgetJobsr:   r/   r   r   r   ZlenrS   r2   rJ   rT   rx   Zsortr   Zranger0   rf   r   r   r   )rG   r   r9   rW   r   r   Zfetchedr   r   Zgotr2   ZjobidsZ
last_jobidr   rm   r   r   r   ZnZtrimZnexts   &&                   r   r   ZMonitor.fetch_jobsr  sW   ***||		LL$))$dii&*ii,0OO=A !	iiDOO)-.2.E.E',67	   9G 	d7m3>?yy~~ gllo&7aJ333!44u<q@
=fMN;<00581<JD33Z!^DE=n&&2''"3S9C		3A!!a%&kGd&9&99&=#A#A!U		1eRSXX[9! E. diil#;DCL)q	 2D4II}eR< * 	$	;$(D! qy$$))"3AID"&{  	II./$(D!LL$		( }} 	VVFQII'.$(D!LL$	N  ==II}eR<< !=s=   AM	 	4N	 BO)	9NN	O&=O!!O&)'PPc                s   Vf   V P                   p\        4       p/ pVP                  4        F  w  rEVP                  R\        P
                  4      pV\        P
                  8  d   K<  VP                  RR4      pVP                  R4      pVR8X  d   Kh  Wx^,           R  p	VP                  V	4       W9  d   / W9&   WSV	,          V&   K  	  W23# )Nrc   r   r   r   r-   )r2   r4   r   rf   r   rg   r   rk   )
rG   r2   ra   r`   rm   rn   ro   r   r   r   s
   &&        r   r^   ZMonitor.sort_jobs_by_printer  s    <99DeICHHk4+@+@AE---((-r2C		3ABwa%&kGOOW%*(*%)-!#& ' **r
   c                sd    \        R 4       V P                  V4      w  r#V P                  W24       R# )r   N)rS   r^   r   )rG   r2   r`   ra   s   &&  r   r   ZMonitor.update_jobs  s+    M"&*&?&?&F#  +<r
   c                s    V P                   '       d!   \        P                  ! V P                   4       \        P                  ! ^V P                  4      V n         \        R4       R# )i   z1Next notifications fetch in 200ms (update called)N)r@   r   rU   r\   r   rS   rK   r   r   updateZMonitor.update  sF     1 12 ,,c43I3IJGHr
   c                sr    \        R 4       V P                  4        V P                  '       g
   RV n        R# R# )z(D-Bus signal from CUPS... calling updateTN)rS   r   r?   )rG   r   s   &*r   rC   ZMonitor.handle_dbus_signal  s-    >?----1D* .r
   )rB   r<   r>   r7   r+   r   r6   r)   r2   r1   r/   r*   r   r3   r   r5   r;   r?   r0   r=   rF   r   r@   r9   r:    )NTNTNNN)NTrI   ) __name__
__module____qualname____firstlineno__r    ZSignalFlagsZRUN_LASTZTYPE_PYOBJECTZstrZintZ__gsignals__rD   rE   r.   rL   rM   rN   rY   r[   r]   r_   r4   r   r   r   r   r^   r   r   rC   __static_attributes____classdictcell__Z__classdict__   @r   r   r   C   s    '"5"5">">b!I'"5"5">">b!I'"5"5">">#*#8#8":"<'"5"5">">#*#8#8":"<'"5"5">">#*#8#8":"<'"5"5">">#&&"*'"5"5">">#&#*#8#8#*#8#8#;"< 	'"5"5">">#&#*#8#8#*#8#8#;"< 	'"5"5">">#&#*#8#8#;"< 	'"5"5">">#&&"*'"5"5">">#&#*#8#8#;"< 	'"5"5">">#&&"*'"5"5">">b!I#g&9&9&B&BD"%M'"5"5">">#&+"/?!
LH +I*J0d%!%8.& 68 ;9z /2e" 2'hm^xthT+,=
I2 2r
   r   Z__main__c                   st   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tRtV tR# )SignalWatcheri  c                s   VP                  R V P                  4       VP                  RV P                  4       VP                  RV P                  4       VP                  RV P                  4       VP                  RV P
                  4       VP                  RV P                  4       VP                  RV P                  4       VP                  RV P                  4       VP                  RV P                  4       VP                  R	V P                  4       VP                  R
V P                  4       VP                  RV P                  4       VP                  RV P                  4       R# )r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r'   N)Zconnecton_monitor_exitedon_state_reason_addedon_state_reason_removedon_still_connectingon_now_connectedon_job_addedon_job_eventon_job_removedon_printer_addedon_printer_eventon_printer_removedon_cups_connection_erroron_cups_ipp_error)rG   ZmonitorrZ   r   r.   ZSignalWatcher.__init__  s   OO-t/E/EFOO143M3MNOO3!99;OO/1I1IJOO_d.C.CDOO[$*;*;<OO[$*;*;<OO]D,?,?@OO_d.C.CDOO_d.C.CDOO.0G0GHOO4!::<OO-t/E/EFr
   c                *    \        R V,          4       R# )z*%s: monitor exitedNZprintrG   objrZ   r   r   ZSignalWatcher.on_monitor_exited  s    '#-.r
   c                ,    \        R V: RV: 24       R# )r   z: +Nr   rG   r   r      &&&r   r   Z#SignalWatcher.on_state_reason_added      V,-r
   c                r   )r   z: -Nr   r   r   r   r   Z%SignalWatcher.on_state_reason_removed  r   r
   c                r   )r   z: still connecting: Nr   r   r   r   r   Z!SignalWatcher.on_still_connecting   s    f=>r
   c                r   )r   z: now connected: Nr   )rG   r   r   r   r   r   ZSignalWatcher.on_now_connected#  s    c7;<r
   c                s,    \        R W3,          4       R# )z*%s: job %d addedNr   rG   r   r   	eventnamer   Zjobdata   &&&&&&r   r   ZSignalWatcher.on_job_added&  s    %45r
   c                s.    \        R WV3,          4       R# )z*%s: job %d event: %sNr   r   r   r   r   ZSignalWatcher.on_job_event)  s    )S,??@r
   c                .    \        R WV3,          4       R# )z*%s: job %d removed (%s)Nr   )rG   r   r   r   r      &&&&&r   r   ZSignalWatcher.on_job_removed,  s    ,s9.EEFr
   c                r   )r   z: printer added: Nr   rG   r   r   r   r   r   ZSignalWatcher.on_printer_added/  s    c489r
   c                s4    \        R V: RV: RV: 24       R# )r   z: printer event: z: Nr   )rG   r   r   r   r   r   r   r   ZSignalWatcher.on_printer_event2  s    #tYGHr
   c                s.    \        R V: RV: R24       R# )r   z
: printer z removedNr   r   r   r   r   Z SignalWatcher.on_printer_removed5  s    sD9:r
   c                r   )z*%s: cups connection errorNr   r   rZ   r   r   Z&SignalWatcher.on_cups_connection_error8  s    .45r
   c                r   )z*%s: IPP error (%d): %sNr   )rG   r   ZerrZ	errstrings   &&&&r   r   ZSignalWatcher.on_cups_ipp_error;  s    +s.CCDr
   r   N)r   r   r   r   r.   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     sV     	G"	/	.	.	?	=	6	A	G	:	I	;	6	E 	Er
   r   T) Zconfigr   ZrequirerA   Z	dbus.glibZgi.repositoryr    r   rd   Zdebugr|   ZgettextZinstallZPACKAGEr   r   Zstatereasonr   rj   r   r	   r   r   r   r   Zset_debuggingr   r   ZMainLoopZloopZrunrY   r   r
   r   <module>r      s   (   X    !      v~~1A1A B   #  &
2goo 
2B z7E 7Er 4
A1IILD			E D 	
		s   D D