
    Kcq                     @   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	T 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    r G d d          Z ed            e            Z ee           e                                  ej                    Z	 e                                 e                                 dS # e                                 w xY wdS )    Nz1.9.50)GObject)GLib)*)domain	localedir)StateReason<      c                     |                      d          sT|                      d          s?|                      d          s*|                      d          s|                      d          rdS dS )Nzmoving-to-pausedpausedshutdownstoppingzstopped-partlyTF)
startswith)reasons    +/usr/share/system-config-printer/monitor.pystate_reason_is_harmlessr   '   s    -.. 8$$:&& 	:&& 	+,,	
 t5    c           	      H   i }	 |                                  }n# t          j        $ r |cY S w xY w|                                D ]]\  }}|d         }|D ]M}|dk    r nDt	          |          r||vrg ||<   ||                             t          |||                     N^|S )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g12 	G 	GF'00 6!!!t4LdFH!E!EFFFFMs    --c                      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dS )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.PrinterSpoolerTc                    t           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          j        | j        | j        | j                  | _        d| _        i | _        i | _        t                      | _        i | _        d| _        d | _         |/	 tC          j"                    }n# tB          j#        j$        $ r Y nw xY w|| _%        |'|&                    | j'        | j(        | j)                   d| _*        d S )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    	  $''',(	%'"&*# $(-% 	"ND!!! 	 L$ 	,
+++LOO	N%%	LOO	,// )	04	6:oG G G *!# #$&!).& ;n''?0    ?##T%<*..48O $ E E E s   8F F#"F#c                 4    | j                                         S N)r   copyrc   s    r   get_printerszMonitor.get_printers   s    }!!$$$r   c                 4    | j                                         S re   )rC   rf   rg   s    r   get_jobszMonitor.get_jobs   s    y~~   r   c                     | j         S re   )r   rg   s    r   get_ppdcachezMonitor.get_ppdcache   s
    }r   c                    | j         dk    rt          j                    }	 t          j        | j                   t          j        | j        | j        | j                  }|	                    | j                    t          d| j         z             n#  Y nxY wt          j        |           | j        ,| j                            | j        | j        | j                   t!          | j                                                  }| j        | j        fD ]}|r|                    |           |D ]}t-          j        |           |                     d           d S )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   so   ;"<??Ddi(((O$)*.)04A A A $$dk2226DEEEEL$8H++T-D26.<@O , M M M d,336677')>? 	& 	&E &u%%% 	' 	'E&&&&		#$$$$$s   A0B Bc                     || _         d S re   )rF   )rc   whethers     r   set_process_pendingzMonitor.set_process_pending   s    &-###r   c                     | j         s't          j        d| j        |          }|| j        |<   dS || j        v r| j        |= t          d|z             |                                 \  }}|                     |           dS )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&-/ /E.3D"7+5d,,,&w/;gEFFF&*&?&?&B&B#{&&555 ur   c                 <   t          j                     }i }d}| j                                        D ]\  }}d}|D ]j}|                                dk    rNd}	|                    |i                                           D ]9\  }
}|                    dt
          j                  }|t
          j        k    rd}	 n:|	st          d           |	                                }| j
                            ||          }|||<   t          d||z
  z             ||z
  t          k    r}|	r{|| j        vr0| j                            |           |                     d|           || j        v r9t!          j        | j        |                    | j        |= t          d|z             d} nl|rB|| j        v r9t!          j        | j        |                    | j        |= t          d|z             t%                      }| j        D ]s}||vrm|                    |           |                     d	|           || j        v r9t!          j        | j        |                    | j        |= t          d|z             t| j                            |          | _        || _
        d
S )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   9<<! $ : @ @ C C (	K (	KGWI! ! !$$''+AAA*/'%1%5%5w%C%C%I%I%L%L " "	T $+*.*?!A !A D$;;;26/!E < / !"$KLLL  %0033G155wIIA45(1 5A FGGG!|'999. 	B&d.CCC $ 5 9 97 C C C $		+=v F F F&$*@@@ $ 2D4J5<5> !? !? !?$($:7$C * -79@-A !B !B !B !&IEA BD  KW(>>>"D$:7$CDDD*73?'IJJJ , 	O 	OG222

G$$$		?G444d444&(>w(GHHH.w7 Cg MNNN $ 5 @ @& I I$8!!!r   c                 ~    t           j                                                  }t                      } j                                        D ]{\  }}|D ]q}|                                }|                                }|                    |           | j        vr"t          j
         fd|           | j        |<   |                                dk    r| j        vrd}	|                    |i                                           D ]9\  }
}|                    dt          j                  }|t          j        k    rd}	 n:|	rAt          j        dt$          z    j        |          }| j        |<   t+          d|z             3t+          d           t-                      r!t+          t/          j        |                     s}                     |           t           j                                                  }|D ]3}||vr- j        |         } j        |= t          j
         fd	|           4d S )
Nc                 0                         d|           S )Nr)   rw   xrc   s    r   <lambda>z-Monitor.check_state_reasons.<locals>.<lambda>   s    '+yy2F'J'J r   r   Fr   Tr
   zStart connecting timer for `%s'z#Ignoring stale connecting-to-devicec                 0                         d|           S )Nr*   r   r   s    r   r   z-Monitor.check_state_reasons.<locals>.<lambda>F  s    4JA)N)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%;%;%>%> ? ?ee $ : @ @ C C $	G $	GGW! #G #G((++ ,,//''' 111M $K $K $K $K#)+ + + 06D%e,%%((,BBB4#<<< +0'%1%5%5w%C%C%I%I%L%L " "	T $+*.*?!A !A D$;;;26/!E < + G 4!33 7#% % ;<.w7"$E$+%, - - - - #$IJJJ(++ G&(E(EFFFG#GJ 	&&555T&++..// 	' 	'EK''*51%e,NNNN%' ' '	' 	'r   c           	         | j         rt          j        | j                    d | _         | j        s0t          j        d| j                  | _         t          d           dS t          d           t          j                    }	 t          j	        | j
                   t          j        | j        | j        | j                  }	 	 |                    | j        g| j        dz   g          }n+# t$          $ r |                    | j        g          }Y nw xY wn# t          j        $ r}|j        \  }}t          j	        |           |t          j        k    r0d| _        t          d           |                                  Y d }~dS |                     d	||           |t          j        k    rY d }~dS t          d
||fz             Y d }~dS d }~ww xY wnP# t2          $ rC t          j	        |           t          d           d| _        |                     d           Y dS w xY w| j        r+d| _        t          d           |                     d           t          j	        |           | j                                        }|d         D ]+}|d         }|| _        |d         }	t          d||	|d         fz             t;                      r!t          t=          j        |                     |	                     d          ry|d         }
|	dk    r;|
| j!        vr2| j!        "                    |
           |                     d|
           n.|	dk    r|
| j!        v r| j!        #                    |
           tI          | j%        &                                          }|D ]9}|d         |
k    r+| j%        |         }| j%        |= |                     d|           :|
| j'        v r| j'        |
= |                     d|
           n{|
| j!        v rr|d         }g }|D ]C}|dk    r n:tQ          |          r|)                    tU          |
|| j+                             D|| j'        |
<   |                     d|
|	|           |	                     d          s!t          dtY          |	          z             )|d         }|	d k    s |	d!k    r||vr|d"         t          j-        k    r| j.        |d         | j.        vro	 |/                    |          }| j0        r|d#         t          j                    k    r|||<   nV# tb          $ r
 d$d%i||<   Y nCt          j        $ r2}|j        \  }}|                     d	||           d$d%i||<   Y d }~nd }~ww xY w|                     d&||	|||                                                    nZ|	d'k    s|	d!k    rN|d"         t          j2        k    r8| j3        d(vr/	 ||= |                     d)||	|           n# tb          $ r Y nw xY w	 ||         }n# tb          $ r Y w xY w| j.        ,|d         | j.        vr||= |                     d)||	|           d*D ]}||         ||<   d+|v r|d+         |d,<   |                     d-||	||                                           -| 4                    d           | 5                    |           || _        | 4                    d           | j6        s;|d.         }t          j7        || j                  }t          d/|z             || _         dS )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    	3 1222 * 	 $ 0#595K!M !MD=>>>5'(((|!	L$)$$$di&*i,0O= = =AG$%$6$69=9I8J%L %LMM% G G G$%$6$6$F$FMMMG=   Ad###***"$DK FGGGLLOOO 55555		+Q222*** 55555BaVKLLLttttt   	 	 	L$;<<<,0D)II.///44	 ( 	4,1D)3444II2333dy~~  "8, e	D e	DE01CDL12C
c3m0D%EEFFF 4FNE22333~~z** !^,/))d$-.G.GM%%t,,,II5555---$$-2G2GM(($/// !2!7!7!:!:;;E!& G G 8t++%)%6u%=F $ 1% 8 II'=vFFFt999 6t<II0$7777T]**,12I,J) G"7 E E!V++!E3V<< %$T659])D )D E E E E7>D.t4IIc5AAA >>6**  .s;<<</*E}$$+++d""{#t'>>>'3.)1DDD6..66E !9:dlooMM "'DKK 6 6 6#11"5DKKK} 6 6 6VFQII/A666#11"5DKKKKKK6
 		;sE4;;K;K;N;NOOOO((---%)???+??? K		=%eDDDD#   5k    #/n%T-@@@K		=%e<<<* 2 2	!&y!1I#u,,)./C)D%&II{E3sxx{{CCCC  %((($	  $''' - 	"$%:;H((*.*@B BA9HDEEE !Dus   ?G %C) (D )%DD DD G G$AG	<G 'G	)G /G	G 	GG A	HH99T:4T::VV(VV.X


XXX&&
X43X4c                 @
    t          d                                d           || _        t          j                    }	 t          j         j                   t          j         j         j	         j
                  }n?# t          $ r2 t          j         j        d           t          j        |           Y d S w xY w j        dk    r	 |                     j                   n?# t          j        $ r-}|j        \  }}t          j         fd||           Y d }~nd }~ww xY w j        rt          j         j                   d  _        t          d j        z             	  `n# t*          $ r Y nw xY wg d} j        r|                    g d           	 |                    d	|
           _        t          d j        t3          |          fz             n?# t          j        $ r-}|j        \  }}t          j         fd||           Y d }~nd }~ww xY wt          j        |            j        dk    r[ j        rt          j         j                   t          j        t6           j                   _        t          dt6          z              j        r j                                        } j        dvrQi }	|                                D ]8\  }
}|                     dt          j!                  t          j!        k     r||	|
<   9|	}d _"         j#        rt          j         j#                   t          j$        d j%        |           _#        ni }	 tM          | j'                  }| _(        |)                                }tU          |+                                           _,        nf# t          j        $ r.}|j        \  }}t          j         fd||           Y d }~d S d }~wt          $ r t          j         j        d           Y d S w xY w j-        a|+                                D ]L}
||
                              dd	          }|.                    d	          }||dz   d          }| j-        vr||
= M /                    d            j,        D ]}t          j         fd|           |                                D ]\  }
}t          j         fd|
|            0                    |           | _         /                    d           dS )Nr'   r7   r3   r>   c                 2                         d| |          S Nr5   r   r   r   rc   s     r   r   z!Monitor.refresh.<locals>.<lambda>  s    DII7GA,N,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                 2                         d| |          S r   r   r   s     r   r   z!Monitor.refresh.<locals>.<lambda>.      		3CQ(J(J r   r   )r   r   r   r
      c                 2                         d| |          S r   r   r   s     r   r   z!Monitor.refresh.<locals>.<lambda>W  r   r   r   Fc                 0                         d|           S )Nr0   r   r   s    r   r   z!Monitor.refresh.<locals>.<lambda>h  s    TYY%C%C r   c                 6                         d| di |          S )Nr-    r   )r   r   rc   s     r   r   z!Monitor.refresh.<locals>.<lambda>j  s    "&))[%R"M"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|	L$)$$$di&*i,0O= = =AA  	 	 	M49&=>>>L$FF	
 ;"%$$dk2222= % % %ANNNN !% % % % % % % %%
   7"D$5666 $D2T[@AAA	 	 	 	D	+ + +  	-MM , , , - - -	!..F.CCDK<@Df@O O P P P P} 	! 	! 	!VFQMJJJJa! ! ! ! ! ! ! !	!
 	d;"  7"D$5666 $ 8$&!( !(D 9,- . . .  	9>>$$D&:::"&**-- . .JE3ww $ 57 79=9NO O*-&'D#$ ;"D$9:::$($4a6A%C %CD!! D	-q$-@@A)*D&MM$$E

..DMM} 	 	 	VFQMJJJJa! ! !FFFFF 	 	 	M49&=>>>FF	 * $ $5koo&7==IIsOOa!eff+$"555U  %(((} 	N 	NGMCCCCWMMMM**-- 	' 	'JE3M N N N N #' ' ' ' 	$	  $'''ust   ?B 8B?>B?C) )D%8#D  D%'E* *
E76E7AG   H/#HHAN5 5P#O--'PPc           	         | j         sdS t          j                    }	 t          j        | j                   t          j        | j        | j        | j                  }nA# t          $ r4 | 
                    d           d | _        t          j        |           Y dS w xY wd}g d}	 |                    | j        | j        | j        ||          }nY# t          j        $ rG}|j        \  }}| 
                    d||           d | _        t          j        |           Y d }~dS d }~ww xY wt          j        |           t%          |          }	t'          d	|	d
|           | j                                        }
t-          |                                          }|                                 |	dk    rR||	dz
           }|| j        k     r;| j        |z   dz
  }t'          dt3          |          z             t'          d           n| j        |z   dz
  }t5          | j        |dz             D ]}	 ||         }| j        H|                    dd          }|                    d          }||dz   d          }|| j        vrt<          ||
v rd}nd}||
|<   | 
                    ||di |                                           # t<          $ r" ||
v r|
|= | 
                    d|di            Y w xY wt-          |
                                          }|                                 |	|k     rPd}t5          t%          |                    D ]1}||         }|s||k    rd}|r|
|= | 
                    d|di            2|                     |
           |
| _        |	|k     r	d | _        dS |dz   }|s|| j        v r|dz  }|s	|| j        v || _        dS )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  sW   * 	4|		L$)$$$di&*i,0O= = =AA  	 	 	II.///$(D!L$55		 ! ! !	iiDO)-.2.E',67	   9 9GG
 } 	 	 	VFQII'A...$(D!L$55555	 	d7mm
333>???y~~  glloo&&77aJD333!4u<q@
=fMNNN;<<<0581<JD3Z!^DD 	= 	=E=en&2''"3S99C		3A!!a%&&kGd&999&D==#AA#A!U		1eRSXX[[9999 = = =D==UII}eR<<<	= diill##;;DCLL)) = =q	  
 2 2D =UII}eR<<<$	;;$(D!5 qy 	$$)"3"3AID  	$$)"3"3 #'ts<   ?A :BB&)C D&<D!!D&/BK  )K,+K,c                    || j         }t                      }i }|                                D ]\  }}|                    dt          j                  }|t          j        k    r6|                    dd          }|                    d          }|dk    rh||dz   d          }	|                    |	           |	|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    <9Dee 	. 	.ICHHk4+@AAE---((-r22C		3ABww!a%&&kGOOW%%%l**(*W%)-L!#&&k**r   c                     t          d           |                     |          \  }}|                     ||           d S )Nr   )rr   r   r   )rc   rC   r   r   s       r   r   zMonitor.update_jobs  sD    M"""&*&?&?&F&F#{  +|<<<<<r   c                     | j         rt          j        | j                    t          j        d| j                  | _         t          d           d S )Nr   z1Next notifications fetch in 200ms (update called))rX   r   rv   r   r   rr   rg   s    r   updatezMonitor.update  sN     	3 1222 ,c43IJJGHHHHHr   c                 l    t          d           |                                  | j        s	d| _        d S d S )Nz(D-Bus signal from CUPS... calling updateT)rr   r   rW   )rc   r   s     r   r_   zMonitor.handle_dbus_signal  sA    >???- 	2-1D***	2 	2r   )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   s       ")"5">b!I")"5">b!I")"5">#*#8":"<")"5">#*#8":"<")"5">#*#8":"<")"5">#&&"*")"5">#&#*#8#*#8#;"< #*"5">#&#*#8#*#8#;"< #*"5">#&#*#8#;"< #*"5">#&&"*")"5">#&#*#8#;"< #*"5">#&&"*")"5">b!I&-&9&BD"%M")"5">#&+"/?!
 !
LH +I*J)->B'+0 0 0 0d% % %! ! !  % % %8. . .  & 68 ;9 ;9 ;9 ;9z /2cee" 2' 2' 2' 2'hm m m^x x x xth h hT+ + + +,= = =
I I I2 2 2 2 2r   r%   __main__c                   b    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dS )SignalWatcherc                    |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d| j                   |                     d	| j	                   |                     d
| j
                   |                     d| j                   |                     d| j                   |                     d| j                   d S )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__  sH   OO-t/EFFFOO143MNNNOO3!9; ; ;OO/1IJJJOO_d.CDDDOO[$*;<<<OO[$*;<<<OO]D,?@@@OO_d.CDDDOO_d.CDDDOO.0GHHHOO4!:< < <OO-t/EFFFFFr   c                 *    t          d|z             d S )Nz*%s: monitor exitedprintrc   objs     r   r  zSignalWatcher.on_monitor_exited  s    '#-.....r   c                 0    t          d|d|           d S )Nr   z: +r  rc   r  r   s      r   r  z#SignalWatcher.on_state_reason_added  #    EVV,-----r   c                 0    t          d|d|           d S )Nr   z: -r  r   s      r   r  z%SignalWatcher.on_state_reason_removed  r!  r   c                 0    t          d|d|           d S )Nr   z: still connecting: r  r   s      r   r  z!SignalWatcher.on_still_connecting   s#    Eff=>>>>>r   c                 0    t          d|d|           d S )Nr   z: now connected: r  )rc   r  r!   s      r   r  zSignalWatcher.on_now_connected#  s#    Eccc77;<<<<<r   c                 .    t          d||fz             d S )Nz*%s: job %d addedr  rc   r  r   	eventnamer   jobdatas         r   r  zSignalWatcher.on_job_added&  s     %e455555r   c                 0    t          d|||fz             d S )Nz*%s: job %d event: %sr  r&  s         r   r  zSignalWatcher.on_job_event)  s#    )S%,??@@@@@r   c                 0    t          d|||fz             d S )Nz*%s: job %d removed (%s)r  )rc   r  r   r'  r   s        r   r  zSignalWatcher.on_job_removed,  s#    ,sE9.EEFFFFFr   c                 0    t          d|d|           d S )Nr   z: printer added: r  rc   r  r    s      r   r  zSignalWatcher.on_printer_added/  s#    Eccc44899999r   c                 6    t          d|d|d|           d S )Nr   z: printer event: z: r  )rc   r  r    r'  r   s        r   r  zSignalWatcher.on_printer_event2  s)    E###tttYYGHHHHHr   c                 2    t          d|d|d           d S )Nr   z
: printer z removedr  r,  s      r   r  z SignalWatcher.on_printer_removed5  s%    EsssDDD9:::::r   c                 *    t          d|z             d S )Nz*%s: cups connection errorr  r  s     r   r  z&SignalWatcher.on_cups_connection_error8  s    .455555r   c                 0    t          d|||fz             d S )Nz*%s: IPP error (%d): %sr  )rc   r  err	errstrings       r   r  zSignalWatcher.on_cups_ipp_error;  s#    +sC.CCDDDDDr   N)r   r   r   r?   r  r  r  r  r  r  r  r  r  r  r  r  r  r&   r   r   r	  r	    s        	G 	G 	G"	/ 	/ 	/	. 	. 	.	. 	. 	.	? 	? 	?	= 	= 	=	6 	6 	6	A 	A 	A	G 	G 	G	: 	: 	:	I 	I 	I	; 	; 	;	6 	6 	6	E 	E 	E 	E 	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~1A B B B B      # # # # # #      &
2 
2 
2 
2 
2go 
2 
2 
2B z7E 7E 7E 7E 7E 7E 7E 7Er M4

AM1IILLL7D					E s   D D