
    Hfq                     (   d dl Z d dlZ ej                  d       d dlZd dlZd dlmZ d dlmZ d dlZd dl	 d dl
Z
d dlZ ej                  e j                  e j                         d dlZd dlZd dlmZ dZd	Zd
 Zd Z G d dej                        Zedk(  rd G d d      Z ed        e       Z ee       ej7                           ej8                         Z	 ej=                          ej?                          yy# ej?                          w xY w)    Nz1.9.50)GObject)GLib)*)domain	localedir)StateReason<      c                     | j                  d      sD| j                  d      s3| j                  d      s"| j                  d      s| j                  d      ryy)Nzmoving-to-pausedpausedshutdownstoppingzstopped-partlyTF)
startswith)reasons    +/usr/share/system-config-printer/monitor.pystate_reason_is_harmlessr   '   sP    -.8$:&:&+,    c           	          i }	 | j                         }|j                         D ]L  \  }}|d   }|D ]=  }|dk(  r t	        |      r||vrg ||<   ||   j                  t        |||             ? N |S # t        j                  $ r |cY S w xY w)Nprinter-state-reasonsnone)getPrinterscupsIPPErroritemsr   appendr   )
connectionppdcacheresultprintersnameprinterreasonsr   s           r   collect_printer_state_reasonsr#   0   s    F)), "* 	Gg12 	GF'06!!t4LdFH!EF	G	G M == s   A5 5BBc                   J   e Zd Zej                  j
                  ddfej                  j
                  ddfej                  j
                  dej                  ffej                  j
                  dej                  ffej                  j
                  dej                  ffej                  j
                  deffej                  j
                  deeej                  ej                  ffej                  j
                  deeej                  ej                  ffej                  j
                  deeej                  ffej                  j
                  deffej                  j
                  deeej                  ffej                  j
                  deffej                  j
                  ddfej                  j
                  ddfej                  j
                  deeffdZ	dZ
dZ	 	 	 ddZd Zd Zd	 Zd
 Zd Zd Zi fdZ e       i fdZd ZddZd ZddZd Zd Zd Zy)MonitorN )refresh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                    t         j                   j                  |        || _        || _        || _        i | _        i | _        t               | _        d| _	        d | _
        d| _        |rt        j                  |       |rt        j                  |       |rt        j                  |       t        j                          | _        t        j$                         | _        t        j(                         | _        t        j,                         | _        t1        j2                  | j&                  | j*                  | j.                        | _        d| _        i | _        i | _        t               | _        i | _        d| _        d | _         |	 tC        jD                         }|| _%        |2|jM                  | jN                  | jP                  | jR                         d| _*        y # tB        jF                  jH                  $ r Y bw xY w)NTFhostport
encryptionznot-completedpath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   	setServersetPortsetEncryptiongetUseruser	getServerr8   getPortr9   getEncryptionr:   r   PPDCache
which_jobsreasons_seenconnecting_timersstill_connectingconnecting_to_devicereceived_any_dbus_signalsupdate_timerdbus	SystemBus
exceptionsDBusExceptionbusadd_signal_receiverhandle_dbus_signal	DBUS_PATH
DBUS_IFACEsub_id)selfr]   r@   rA   rB   r8   r9   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 G>=G>c                 6    | j                   j                         S N)r   copyrc   s    r   get_printerszMonitor.get_printers   s    }}!!$$r   c                 6    | j                   j                         S re   )rC   rf   rg   s    r   get_jobszMonitor.get_jobs   s    yy~~  r   c                     | j                   S re   )r   rg   s    r   get_ppdcachezMonitor.get_ppdcache   s    }}r   c                 &   | j                   dk7  rt        j                         }	 t        j                  | j                         t        j
                  | j                  | j                  | j                        }|j                  | j                          t        d| j                   z         t        j                  |       | j                  <| j                  j                  | j                  | j                  | j                         t!        | j"                  j%                               }| j&                  | j(                  fD ]  }|s|j+                  |        |D ]  }t-        j.                  |        | j1                  d       y #  Y xY w)Nr>   r7   Canceled subscription %dr;   r(   )rb   r   rL   setUserrM   
Connectionr8   r9   r:   cancelSubscription
debugprintr]   remove_signal_receiverr_   r`   ra   listrT   valuesrX   rG   r   r   source_removeemit)rc   rM   ctimerstimers        r   cleanupzMonitor.cleanup   s?   ;;"<<?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%	&  	'E&	' 			#$!s   BF Fc                     || _         y re   )rF   )rc   whethers     r   set_process_pendingzMonitor.set_process_pending   s
    &-#r   c                    | j                   s1t        j                  d| j                  |      }|| j                  |<   y|| j                  v r| j                  |= t        d|z         | j                         \  }}| j                  |       y)z8Timer callback to check on connecting-to-device reasons.   Fz%Still-connecting timer fired for `%s')rF   r   timeout_addcheck_still_connectingrT   rr   sort_jobs_by_printerupdate_connecting_devices)rc   r!   rz   printer_jobsmy_printerss        r   r   zMonitor.check_still_connecting   s    **$$c4+F+F&-/E.3D""7+d,,,&&w/;gEF&*&?&?&B#{&&5 r   c                 V   t        j                          }i }d}| j                  j                         D ]  \  }}d}|D ]^  }|j                         dk(  sd}	|j	                  |i       j                         D ]<  \  }
}|j	                  dt
        j                        }|t
        j                  k(  s:d}	 n |	st        d       |j                         }| j                  j	                  ||      }|||<   t        d||z
  z         ||z
  t        k\  r|	r|| j                  vr-| j                  j                  |       | j                  d|       || j                  v r=t!        j"                  | j                  |          | j                  |= t        d|z         d} n |sq|| j                  v st!        j"                  | j                  |          | j                  |= t        d|z          t%               }| j                  D ]v  }||vs|j                  |       | j                  d	|       || j                  v s:t!        j"                  | j                  |          | j                  |= t        d|z         x | j                  j'                  |      | _        || _
        y
)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)timerD   r   
get_reasongetr   IPP_JOB_CANCELEDIPP_JOB_PROCESSINGrr   get_printerrV   CONNECTING_TIMEOUTrU   addrw   rT   r   rv   rE   
difference)rc   r   time_nowrV   troubler!   r"   	connectedr   have_processing_jobjobdatastatetremoves                  r   r   z!Monitor.update_connecting_devices   s   99<! $ : : @ @ C (	KGWI! !$$'+AA*/'%1%5%5w%C%I%I%L "	T $+*.*?*?!A D$;$;;26/!" /"$KL  %003G1155wIA45(1 5A FG!|'99.&d.C.CC $ 5 5 9 97 C $		+=v F&$*@*@@ $ 2 2D4J4J5<5> !?$($:$:7$C * -79@-A !B !&IC!F W(>(>>""D$:$:7$CD**73?'IJQ(	KV ,, 	OG22

G$		?G4d444&&(>(>w(GH..w7 Cg MN	O !% 5 5 @ @& I$8!r   c                 v    t         j                  j                               }t               } j                  j                         D ]x  \  }}|D ]l  }|j                         }|j                         }|j                  |       | j                  vr(t        j                   fd|       | j                  |<   |j                         dk(  s| j                  vsd}	|j                  |i       j                         D ]<  \  }
}|j                  dt        j                        }|t        j                   k(  s:d}	 n |	rGt        j"                  dt$        z    j&                  |      }| j(                  |<   t+        d|z         8t+        d       t-               sOt+        t/        j0                  |             o {  j3                  |       t         j                  j                               }|D ]<  }||vs j                  |   } j                  |= t        j                   fd	|       > y )
Nc                 (    j                  d|       S )Nr)   rw   xrc   s    r   <lambda>z-Monitor.check_state_reasons.<locals>.<lambda>   s    '+yy2F'J r   r   Fr   Tr
   zStart connecting timer for `%s'z#Ignoring stale connecting-to-devicec                 (    j                  d|       S )Nr*   r   r   s    r   r   z-Monitor.check_state_reasons.<locals>.<lambda>F  s    4JA)N r   )rt   rS   keysrE   rD   r   	get_tupler   r   r   idle_addr   rV   r   r   r   r   timeout_add_secondsr   r   rT   rr   get_debuggingpprintpformatr   )rc   r   r   old_reasons_seen_keysreasons_nowr!   r"   r   tupler   r   r   r   r   r   s   `              r   check_state_reasonszMonitor.check_state_reasons  s    $T%6%6%;%;%> ?e $ : : @ @ C $	GGW! #G((+ ,,/' 1 11MM $K#)+ 06D%%e,%%(,BB4#<#<< +0'%1%5%5w%C%I%I%L "	T $+*.*?*?!A D$;$;;26/!" + 44!33 77#% ;<..w7"$E$+%, - #$IJ(+&(EFG#G$	GL 	&&5T&&++./ 	'EK'**51%%e,N%'	'r   c           	      8   | j                   rt        j                  | j                          d | _         | j                  s1t        j                  d| j
                        | _         t        d       yt        d       t        j                         }	 t        j                  | j                         t        j                  | j                  | j                  | j                        }	 	 |j                  | j                   g| j"                  dz   g      }| j4                  r#d| _        t        d       | j/                  d       t        j                  |       | j6                  j9                         }|d   D ]z  }|d   }|| _        |d   }	t        d||	|d   fz         t;               rt        t=        j>                  |             |	jA                  d      r~|d   }
|	dk(  r=|
| jB                  vr/| jB                  jE                  |
       | j/                  d|
       n5|	dk(  r|
| jB                  v r| jB                  jG                  |
       tI        | jJ                  jM                               }|D ]9  }|d   |
k(  s| jJ                  |   }| jJ                  |= | j/                  d|       ; |
| jN                  v r| jN                  |
= | j/                  d|
       nx|
| jB                  v rj|d   }g }|D ];  }|dk(  r n4tQ        |      r|jS                  tU        |
|| jV                               = || jN                  |
<   | j/                  d|
|	|       |	jA                  d      st        dtY        |	      z         |d   }|	d k(  s|	d!k(  r||vr|d"   t        jZ                  k(  r| j\                  |d   | j\                  vrS	 |j_                  |      }| j`                  r|d#   t        j                         k7  r|||<   | j/                  d&||	|||   j9                                nH|	d'k(  s|	d!k(  r>|d"   t        jd                  k(  r(| jf                  d(vr	 ||= | j/                  d)||	|       	 ||   }| j\                  *|d   | j\                  vr||= | j/                  d)||	|       =d*D ]
  }||   ||<    d+|v r|d+   |d,<   | j/                  d-||	||j9                                } | ji                  d       | jk                  |       || _        | ji                  d       | jl                  s:|d.   }t        jn                  || j
                        }t        d/|z         || _         y# t$        $ r  |j                  | j                   g      }Y w xY w# t        j&                  $ r}|j(                  \  }}t        j                  |       |t        j*                  k(  r'd| _        t        d       | j-                          Y d }~y| j/                  d	||       |t        j0                  k(  rY d }~yt        d
||fz         Y d }~yd }~ww xY w# t2        $ r; t        j                  |       t        d       d| _        | j/                  d       Y yw xY w# tb        $ r d$d%i||<   Y t        j&                  $ r4}|j(                  \  }}| j/                  d	||       d$d%i||<   Y d }~d }~ww xY w# tb        $ r Y w xY w# tb        $ r Y w xY w)0Nr   z#Deferred get_notifications by 200msFget_notificationsr7   r
   r>   z$Subscription not found, will refreshr5   z$getNotifications failed with %d (%s)Tz!cups-connection-error, will retryr3   r4   eventsznotify-sequence-numberznotify-subscribed-eventz%d %s %sznotify-textzprinter-zprinter-namer0   printer-deletedr*   r2   r   r   r1   zjob-zUnhandled nse %sznotify-job-idjob-createdjob-state-changedr   job-originating-user-namejob-k-octetsr   r-   job-completed)	completedallr/   )r   job-nameznotify-printer-urijob-printer-urir.   znotify-get-intervalNext notifications fetch in %ds)8rX   r   rv   rF   r   r   rr   r   rL   ro   rM   rp   r8   r9   r:   getNotificationsrb   sub_seqAttributeErrorr   argsIPP_NOT_FOUNDr'   rw   IPP_FORBIDDENRuntimeErrorrH   rC   rf   r   r   r   r   r   r   r   rt   rS   r   rD   r   r   r   r   reprr   rA   getJobAttributesr@   KeyErrorIPP_JOB_COMPLETEDrR   r~   update_jobsrW   r   )rc   rM   rx   notificationsemrC   eventseqnser    r   r   r   rD   r"   jobidattrsr   	attributeintervalr   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	DE01CDL12C
c3m0D%EEFFNNE23~~z*^,/)d$--.GMM%%t,II5--$$--2GMM(($/ !2!2!7!7!:;E!& G 8t+%)%6%6u%=F $ 1 1% 8 II'=vF	G t999 66t<II0$7T]]*,12I,J) G"7 E!V+!3V<$T659]])D EE 8?D..t4IIc5A >>6* .s;</*E}$++d"{#t'>'>>''3.)1D1DD6..6E9:dlloM "'DK 		;sE4;;K;K;NO(--%)?)??+?? K		=%eD 5k ##/n%T-@-@@K		=%e<* 2	!&y!1I2 $u,)./C)D%&II{E3sxx{CKe	DN 	  %($	  $' --$%:;H(((*.*@*@BA9HDE !Dk & G$%$6$6$FMG== Ad#***"$DK FGLLO 		+Q2*** BaVKL   	LL$;<,0D)II./	^   6#11"5DK}} 6VVFQII/A6#11"5DK6 $   s   AY '+U4 	7Z Z [<7\4%VV  VV   Y3AYY &Y7Y <YY YY AZZ [93[9)[44[9<	\	\		\\c                 
    t        d        j                  d       || _        t        j                         }	 t        j
                   j                         t        j                   j                   j                   j                        } j                  dk7  rf	 |j                   j                          j$                  rt        j&                   j$                         d  _        t        d j                  z         	  `g d} j,                  r|j/                  g d       	 |j1                  d	|
       _        t        d j                  t3        |      fz         t        j
                  |        j                  dk7  rf j$                  rt        j&                   j$                         t        j4                  t6         j8                         _        t        dt6        z          j,                  rԉ j:                  j=                         } j                  dvrSi }	|j?                         D ]<  \  }
}|jA                  dt        jB                        t        jB                  k  s8||	|
<   > |	}d _"         jF                  rt        j&                   jF                         t        jH                  d jJ                  |       _#        ni }	 tM        | jN                        }| _(        |jS                         }tU        |jW                                _,         jZ                  U|jW                         D ]B  }
||
   jA                  dd	      }|j]                  d	      }||dz   d  }| jZ                  vs@||
= D  j_                  d        jX                  D ]  }t        j                   fd|        |j?                         D ]  \  }
}t        j                   fd|
|       !  ja                  |       | _         j_                  d       y# t        $ r8 t        j                   j                  d       t        j
                  |       Y y w xY w# t        j                   $ r4}|j"                  \  }}t        j                   fd||       Y d }~d }~ww xY w# t*        $ r Y w xY w# t        j                   $ r4}|j"                  \  }}t        j                   fd||       Y d }~d }~ww xY w# t        j                   $ r3}|j"                  \  }}t        j                   fd||       Y d }~y d }~wt        $ r# t        j                   j                  d       Y y w xY w)Nr'   r7   r3   r>   c                 *    j                  d| |      S Nr5   r   r   r   rc   s     r   r   z!Monitor.refresh.<locals>.<lambda>  s    DII7GA,N r   rn   )r0   zprinter-modifiedr   zprinter-state-changed)r   r   zjob-stoppedr   zjob-progress/)r   z"Created subscription %d, events=%sc                 *    j                  d| |      S r   r   r   s     r   r   z!Monitor.refresh.<locals>.<lambda>.      		3CQ(J r   r   )r   r   r   r
      c                 *    j                  d| |      S r   r   r   s     r   r   z!Monitor.refresh.<locals>.<lambda>W  r   r   r   Fc                 (    j                  d|       S )Nr0   r   r   s    r   r   z!Monitor.refresh.<locals>.<lambda>h  s    TYY%C r   c                 .    j                  d| di |      S )Nr-    r   )r   r   rc   s     r   r   z!Monitor.refresh.<locals>.<lambda>j  s    "&))[%R"M r   T)1rr   rw   rR   r   rL   ro   rM   rp   r8   r9   r:   r   r   r   rb   rq   r   r   rX   rv   r   r   rB   extendcreateSubscriptionr   r   MIN_REFRESH_INTERVALr   rC   rf   r   r   r   fetch_first_job_idrG   r   
fetch_jobsr#   r   rD   r   rE   r   r   rA   rfindr~   r   )rc   rR   refresh_allrM   rx   r   r   r   rC   filteredr   r   rdestsuriir!   s   `                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&::"&**- .JE3ww $ 5 579=9N9NO*-.  &'D#$$""D$9$9:$($4$4a6A%CD! D	-q$--@A)*D&MM$E

.DM * $5koo&7=IIsOa!ef+$"5"55U$ 	  %(}} 	NGMMCWM	N**- 	'JE3MM N #'	' 	$	  $'W  	MM499&=>LL$	 == %AN !% %%  		$ }} 	!VVFQMMJa! !	!R }} 	VVFQMMJa! 	MM499&=>	ss   AP !Q R& -;R6 AT  >QQR#/)RR#&	R32R36S=	)S88S= U0)U,U0/U0c           	      p   | j                   syt        j                         }	 t        j                  | j                         t        j
                  | j                  | j                  | j                        }d}g d}	 |j                  | j                  | j                  | j                  ||      }t        j                  |       t%        |      }	t'        d	|	d
|       | j(                  j+                         }
t-        |j/                               }|j1                          |	dkD  rL||	dz
     }|| j                  k  rG| j                  |z   dz
  }t'        dt3        |      z         t'        d       n| j                  |z   dz
  }t5        | j                  |dz         D ]  }	 ||   }| j6                  ?|j9                  dd      }|j;                  d      }||dz   d  }|| j6                  vrt<        ||
v rd}nd}||
|<   | j                  ||di |j+                                 t-        |
j/                               }|j1                          |	|k  rCd}t5        t%        |            D ]*  }||   }|s||kD  rd}|s|
|= | j                  d|di        , | j?                  |
       |
| _        |	|k  rd | _        ydz   }|s$|| j(                  v r|dz  }|s|| j(                  v r|| _        y# t        $ r0 | j                  d       d | _        t        j                  |       Y yw xY w# t        j                   $ rH}|j"                  \  }}| j                  d||       d | _        t        j                  |       Y d }~yd }~ww xY w# t<        $ r ||
v r|
|= | j                  d|di        Y w xY w)NTr7   r3   Fr
   )zjob-idr   r   r   r   r   ztime-at-creation)rR   r@   first_job_idlimitrequested_attributesr5   zGot z jobs, asked for r   zUnexpected job IDs returned: %szThat's not what we asked for!r   r   r.   r-   r   r/   ) rF   r   rL   ro   rM   rp   r8   r9   r:   r   rw   rG   getJobsrR   r@   r   r   r   lenrr   rC   rf   rt   r   sortr   rangerA   r   r   r   r   )rc   r   rM   rx   r   r   fetchedr   r   gotrC   jobids
last_jobidr   r   r   r   r!   ntrimnexts                        r   r   zMonitor.fetch_jobsr  s   **||		LL$))$dii&*ii,0OO=A !	iiDOO)-.2.E.E',67	   9G 	d7m3>?yy~~ gllo&7aJD333!44u<q@
=fMN;<00581<JD33Z!^D 	=E=en&&2''"3S9C		3A!!a%&kGd&9&99&D=#A#A!U		1eRSXX[9!	=. diil#;DCL) =q	
 2DUII}eR<= 	$	;$(D! qy$$))"3AID $$))"3 #'{  	II./$(D!LL$		( }} 	VVFQII'A.$(D!LL$	N  =D=UII}eR<	=s=   AK3 ?4L/ 'BN36L,+L,/N
>NN
$N54N5c                 |   || j                   }t               }i }|j                         D ]  \  }}|j                  dt        j
                        }|t        j
                  k\  r:|j                  dd      }|j                  d      }|dk(  rc||dz   d  }	|j                  |	       |	|vri ||	<   |||	   |<    ||fS )Nr   r   r   r   r>   r
   )rC   rE   r   r   r   r   r   r   )
rc   rC   r   r   r   r   r   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%l*(*W%)-L!#&	. k**r   c                 f    t        d       | j                  |      \  }}| j                  ||       y )Nr   )rr   r   r   )rc   rC   r   r   s       r   r   zMonitor.update_jobs  s/    M"&*&?&?&F#{  +|<r   c                     | j                   rt        j                  | j                          t        j                  d| j                        | _         t        d       y )Nr   z1Next notifications fetch in 200ms (update called))rX   r   rv   r   r   rr   rg   s    r   updatezMonitor.update  sC     1 12 ,,c43I3IJGHr   c                 b    t        d       | j                          | j                  sd| _        y y )Nz(D-Bus signal from CUPS... calling updateT)rr   r   rW   )rc   r   s     r   r_   zMonitor.handle_dbus_signal  s*    >?---1D* .r   )NTNTNNN)NTre   )__name__
__module____qualname__r   SignalFlagsRUN_LASTTYPE_PYOBJECTstrint__gsignals__r`   ra   r?   rh   rj   rl   r{   r~   r   r   rE   r   r   r'   r   r   r   r   r_   r&   r   r   r%   r%   C   sq   ")"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&-&9&9&B&BD"%M")"5"5">">#&+"/?!
LH +I*J)->B'+0d%!%8.& 68 ;9z /2e" 2'hm^xthT+,=
I2r   r%   __main__c                   `    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zy)SignalWatcherc                    |j                  d| j                         |j                  d| j                         |j                  d| j                         |j                  d| j                         |j                  d| j
                         |j                  d| j                         |j                  d| j                         |j                  d| j                         |j                  d	| j                         |j                  d
| j                         |j                  d| j                         |j                  d| j                         |j                  d| j                         y )Nr(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r5   )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)rc   monitors     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                      t        d|z         y )Nz*%s: monitor exitedprintrc   objs     r   r  zSignalWatcher.on_monitor_exited  s    '#-.r   c                 &    t        d|d|       y )Nr   z: +r  rc   r  r   s      r   r  z#SignalWatcher.on_state_reason_added      V,-r   c                 &    t        d|d|       y )Nr   z: -r  r   s      r   r  z%SignalWatcher.on_state_reason_removed  r!  r   c                 &    t        d|d|       y )Nr   z: still connecting: r  r   s      r   r  z!SignalWatcher.on_still_connecting   s    f=>r   c                 &    t        d|d|       y )Nr   z: now connected: r  )rc   r  r!   s      r   r  zSignalWatcher.on_now_connected#  s    c7;<r   c                 $    t        d||fz         y )Nz*%s: job %d addedr  rc   r  r   	eventnamer   jobdatas         r   r  zSignalWatcher.on_job_added&  s    %e45r   c                 &    t        d|||fz         y )Nz*%s: job %d event: %sr  r&  s         r   r  zSignalWatcher.on_job_event)  s    )S%,??@r   c                 &    t        d|||fz         y )Nz*%s: job %d removed (%s)r  )rc   r  r   r'  r   s        r   r  zSignalWatcher.on_job_removed,  s    ,sE9.EEFr   c                 &    t        d|d|       y )Nr   z: printer added: r  rc   r  r    s      r   r  zSignalWatcher.on_printer_added/  s    c489r   c                 ,    t        d|d|d|       y )Nr   z: printer event: z: r  )rc   r  r    r'  r   s        r   r  zSignalWatcher.on_printer_event2  s    #tYGHr   c                 (    t        d|d|d       y )Nr   z
: printer z removedr  r,  s      r   r  z SignalWatcher.on_printer_removed5  s    sD9:r   c                      t        d|z         y )Nz*%s: cups connection errorr  r  s     r   r  z&SignalWatcher.on_cups_connection_error8  s    .45r   c                 &    t        d|||fz         y )Nz*%s: IPP error (%d): %sr  )rc   r  err	errstrings       r   r  zSignalWatcher.on_cups_ipp_error;  s    +sC.CCDr   N)r   r   r   r?   r  r  r  r  r  r  r  r  r  r  r  r  r  r&   r   r   r	  r	    sM    	G"	/	.	.	?	=	6	A	G	:	I	;	6	Er   r	  T) configr   requirerY   	dbus.glibgi.repositoryr   r   r   debugr   gettextinstallPACKAGEr   r   statereasonr   r   r   r   r#   r%   r   r	  set_debuggingr   r'   MainLooplooprunr{   r&   r   r   <module>r@     s   (   X    !      v~~1A1A B   #  &
2goo 
2B z7E 7Er 4
A1IIL7D			E D 	
		s   C? ?D