\hypertarget{classsrc_1_1usbThread_1_1abstractThreadUSB}{}\section{Référence de la classe src.\+usb\+Thread.\+abstract\+Thread\+U\+S\+B}
\label{classsrc_1_1usbThread_1_1abstractThreadUSB}\index{src.\+usb\+Thread.\+abstract\+Thread\+U\+S\+B@{src.\+usb\+Thread.\+abstract\+Thread\+U\+S\+B}}


Une classe abstraite, qui sert de creuset pour les classe servant aux copies et aux effacements.  




Graphe d\textquotesingle{}héritage de src.\+usb\+Thread.\+abstract\+Thread\+U\+S\+B\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classsrc_1_1usbThread_1_1abstractThreadUSB__inherit__graph}
\end{center}
\end{figure}


Graphe de collaboration de src.\+usb\+Thread.\+abstract\+Thread\+U\+S\+B\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=247pt]{classsrc_1_1usbThread_1_1abstractThreadUSB__coll__graph}
\end{center}
\end{figure}
\subsection*{Fonctions membres publiques}
\begin{DoxyCompactItemize}
\item 
def \hyperlink{classsrc_1_1usbThread_1_1abstractThreadUSB_a5e20bc3b06adf6d8fbda6a858b7a57b7}{\+\_\+\+\_\+init\+\_\+\+\_\+}
\begin{DoxyCompactList}\small\item\em Constructeur Crée un thread pour copier une liste de fichiers vers une clé U\+S\+B. \end{DoxyCompactList}\item 
def \hyperlink{classsrc_1_1usbThread_1_1abstractThreadUSB_adf05ec8ad79c19ac7cfe2348c266ba65}{run} (self)
\item 
def \hyperlink{classsrc_1_1usbThread_1_1abstractThreadUSB_a6322f09df6d4722df2ea63f5e61ac106}{write\+To\+Log} (self, msg)
\begin{DoxyCompactList}\small\item\em Écrit un message dans le fichier de journalisation. \end{DoxyCompactList}\item 
def \hyperlink{classsrc_1_1usbThread_1_1abstractThreadUSB_aa16e848454674e78cabd768b66f134a0}{copytree}
\begin{DoxyCompactList}\small\item\em Une version modifiée de shutil.\+copytree qui accepte que les repertoires destination soient déjà existants. \end{DoxyCompactList}\item 
def \hyperlink{classsrc_1_1usbThread_1_1abstractThreadUSB_a5f9ced5ba80332768a929e76ce052e0d}{\+\_\+\+\_\+str\+\_\+\+\_\+} (self)
\begin{DoxyCompactList}\small\item\em Renvoie une chaîne informative sur le thread. \end{DoxyCompactList}\item 
def \hyperlink{classsrc_1_1usbThread_1_1abstractThreadUSB_ae4c285ad4dfc222c4c76c513d9cf0629}{thread\+Type} (self)
\begin{DoxyCompactList}\small\item\em information sur le thread. \end{DoxyCompactList}\item 
def \hyperlink{classsrc_1_1usbThread_1_1abstractThreadUSB_ac586343abef57ddc6cfe074a5b99ea0d}{to\+Do} (self, \hyperlink{classsrc_1_1usbThread_1_1abstractThreadUSB_add4e7b6bfbfb104f98eb4be47b3bfdff}{ud}, \hyperlink{classsrc_1_1usbThread_1_1abstractThreadUSB_ae91185d80f12054c7fa3224316504f24}{file\+List}, \hyperlink{classsrc_1_1usbThread_1_1abstractThreadUSB_a5d4c41bde3df9458df316eb04a503b20}{subdir}, \hyperlink{classsrc_1_1usbThread_1_1abstractThreadUSB_a0c38b7a0b013f9331cf477b7d41bd77c}{dest}, \hyperlink{classsrc_1_1usbThread_1_1abstractThreadUSB_a90550c2bd77c21e59db0f93d81eb0b1c}{logfile})
\begin{DoxyCompactList}\small\item\em La fonction abstraite pour les choses à faire. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Attributs publics}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classsrc_1_1usbThread_1_1abstractThreadUSB_add4e7b6bfbfb104f98eb4be47b3bfdff}{ud}
\item 
\hyperlink{classsrc_1_1usbThread_1_1abstractThreadUSB_ae91185d80f12054c7fa3224316504f24}{file\+List}
\item 
\hyperlink{classsrc_1_1usbThread_1_1abstractThreadUSB_a5d4c41bde3df9458df316eb04a503b20}{subdir}
\item 
\hyperlink{classsrc_1_1usbThread_1_1abstractThreadUSB_a0c38b7a0b013f9331cf477b7d41bd77c}{dest}
\item 
\hyperlink{classsrc_1_1usbThread_1_1abstractThreadUSB_a90550c2bd77c21e59db0f93d81eb0b1c}{logfile}
\item 
\hyperlink{classsrc_1_1usbThread_1_1abstractThreadUSB_aa7f081a29fbaace6ce8290890a5537ad}{parent}
\end{DoxyCompactItemize}


\subsection{Description détaillée}
Une classe abstraite, qui sert de creuset pour les classe servant aux copies et aux effacements. 

Les classes filles doivent redéfinir la méthode {\bfseries to\+Do} \+: c\textquotesingle{}est celle qui est démarrée quand le thread est lancé. Cette méthode est appelée dans le contexte « {\bfseries with} ud.\+rlock », qui évite que deux threads en même temps ne cherchent à accéder au même média.

Une méthode {\bfseries copytree} est définie pour remplacer shutils.\+copytree qui ne fait pas tout à fait l\textquotesingle{}affaire. 

Définition à la ligne 149 du fichier usb\+Thread.\+py.



\subsection{Documentation des constructeurs et destructeur}
\hypertarget{classsrc_1_1usbThread_1_1abstractThreadUSB_a5e20bc3b06adf6d8fbda6a858b7a57b7}{}\index{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}!\+\_\+\+\_\+init\+\_\+\+\_\+@{\+\_\+\+\_\+init\+\_\+\+\_\+}}
\index{\+\_\+\+\_\+init\+\_\+\+\_\+@{\+\_\+\+\_\+init\+\_\+\+\_\+}!src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}}
\subsubsection[{\+\_\+\+\_\+init\+\_\+\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}def src.\+usb\+Thread.\+abstract\+Thread\+U\+S\+B.\+\_\+\+\_\+init\+\_\+\+\_\+ (
\begin{DoxyParamCaption}
\item[{}]{self, }
\item[{}]{ud, }
\item[{}]{file\+List, }
\item[{}]{subdir, }
\item[{}]{dest = {\ttfamily None}, }
\item[{}]{logfile = {\ttfamily \char`\"{}/dev/null\char`\"{}}, }
\item[{}]{parent = {\ttfamily None}}
\end{DoxyParamCaption}
)}\label{classsrc_1_1usbThread_1_1abstractThreadUSB_a5e20bc3b06adf6d8fbda6a858b7a57b7}


Constructeur Crée un thread pour copier une liste de fichiers vers une clé U\+S\+B. 


\begin{DoxyParams}{Paramètres}
{\em ud} & l\textquotesingle{}instance u\+Disk correspondant à une partition de clé U\+S\+B \\
\hline
{\em file\+List} & la liste des fichiers à traiter \\
\hline
{\em subdir} & un sous-\/répertoire de la clé U\+S\+B \\
\hline
{\em dest} & un répertoire de destination si nécessaire, None par défaut \\
\hline
{\em logfile} & un fichier de journalisation, /dev/null par défaut \\
\hline
{\em parent} & un widget qui recevra de signaux en début et en fin d\textquotesingle{}exécution \\
\hline
\end{DoxyParams}


Définition à la ligne 163 du fichier usb\+Thread.\+py.



\subsection{Documentation des fonctions membres}
\hypertarget{classsrc_1_1usbThread_1_1abstractThreadUSB_a5f9ced5ba80332768a929e76ce052e0d}{}\index{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}!\+\_\+\+\_\+str\+\_\+\+\_\+@{\+\_\+\+\_\+str\+\_\+\+\_\+}}
\index{\+\_\+\+\_\+str\+\_\+\+\_\+@{\+\_\+\+\_\+str\+\_\+\+\_\+}!src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}}
\subsubsection[{\+\_\+\+\_\+str\+\_\+\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}def src.\+usb\+Thread.\+abstract\+Thread\+U\+S\+B.\+\_\+\+\_\+str\+\_\+\+\_\+ (
\begin{DoxyParamCaption}
\item[{}]{self}
\end{DoxyParamCaption}
)}\label{classsrc_1_1usbThread_1_1abstractThreadUSB_a5f9ced5ba80332768a929e76ce052e0d}


Renvoie une chaîne informative sur le thread. 

\begin{DoxyReturn}{Renvoie}
une chaine donnant des informations sur ce qui va se passer dans le thread qui a été créé. 
\end{DoxyReturn}


Définition à la ligne 251 du fichier usb\+Thread.\+py.



Voici le graphe d\textquotesingle{}appel pour cette fonction \+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classsrc_1_1usbThread_1_1abstractThreadUSB_a5f9ced5ba80332768a929e76ce052e0d_cgraph}
\end{center}
\end{figure}


\hypertarget{classsrc_1_1usbThread_1_1abstractThreadUSB_aa16e848454674e78cabd768b66f134a0}{}\index{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}!copytree@{copytree}}
\index{copytree@{copytree}!src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}}
\subsubsection[{copytree}]{\setlength{\rightskip}{0pt plus 5cm}def src.\+usb\+Thread.\+abstract\+Thread\+U\+S\+B.\+copytree (
\begin{DoxyParamCaption}
\item[{}]{self, }
\item[{}]{src, }
\item[{}]{dst, }
\item[{}]{symlinks = {\ttfamily False}, }
\item[{}]{ignore = {\ttfamily None}, }
\item[{}]{erase = {\ttfamily False}, }
\item[{}]{errors = {\ttfamily \mbox{[}\mbox{]}}}
\end{DoxyParamCaption}
)}\label{classsrc_1_1usbThread_1_1abstractThreadUSB_aa16e848454674e78cabd768b66f134a0}


Une version modifiée de shutil.\+copytree qui accepte que les repertoires destination soient déjà existants. 

Cette source dérive de la documentation fournie avec Python 2.\+7 
\begin{DoxyParams}{Paramètres}
{\em src} & un nom de fichier ou de répertoire \\
\hline
{\em dst} & un nom de de répertoire (déjà existant ou à créer) \\
\hline
{\em symlinks} & vrai si on veut recopier les liens tels quels \\
\hline
{\em ignore} & une fonction qui construit une liste de fichiers à ignorer (profil \+: répertoire, liste de noms de fichiers -\/$>$ liste de noms de fichiers à ignorer) \\
\hline
{\em erase} & s\textquotesingle{}il est vrai la source est effacée après copie réussie \\
\hline
{\em errors} & la liste d\textquotesingle{}erreurs déjà relevées jusque là \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Renvoie}
une liste d\textquotesingle{}erreurs éventuellement relevées, sinon une liste vide 
\end{DoxyReturn}


Définition à la ligne 200 du fichier usb\+Thread.\+py.



Voici le graphe d\textquotesingle{}appel pour cette fonction \+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=226pt]{classsrc_1_1usbThread_1_1abstractThreadUSB_aa16e848454674e78cabd768b66f134a0_cgraph}
\end{center}
\end{figure}




Voici le graphe des appelants de cette fonction \+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classsrc_1_1usbThread_1_1abstractThreadUSB_aa16e848454674e78cabd768b66f134a0_icgraph}
\end{center}
\end{figure}


\hypertarget{classsrc_1_1usbThread_1_1abstractThreadUSB_adf05ec8ad79c19ac7cfe2348c266ba65}{}\index{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}!run@{run}}
\index{run@{run}!src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}}
\subsubsection[{run}]{\setlength{\rightskip}{0pt plus 5cm}def src.\+usb\+Thread.\+abstract\+Thread\+U\+S\+B.\+run (
\begin{DoxyParamCaption}
\item[{}]{self}
\end{DoxyParamCaption}
)}\label{classsrc_1_1usbThread_1_1abstractThreadUSB_adf05ec8ad79c19ac7cfe2348c266ba65}


Définition à la ligne 174 du fichier usb\+Thread.\+py.



Voici le graphe d\textquotesingle{}appel pour cette fonction \+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classsrc_1_1usbThread_1_1abstractThreadUSB_adf05ec8ad79c19ac7cfe2348c266ba65_cgraph}
\end{center}
\end{figure}


\hypertarget{classsrc_1_1usbThread_1_1abstractThreadUSB_ae4c285ad4dfc222c4c76c513d9cf0629}{}\index{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}!thread\+Type@{thread\+Type}}
\index{thread\+Type@{thread\+Type}!src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}}
\subsubsection[{thread\+Type}]{\setlength{\rightskip}{0pt plus 5cm}def src.\+usb\+Thread.\+abstract\+Thread\+U\+S\+B.\+thread\+Type (
\begin{DoxyParamCaption}
\item[{}]{self}
\end{DoxyParamCaption}
)}\label{classsrc_1_1usbThread_1_1abstractThreadUSB_ae4c285ad4dfc222c4c76c513d9cf0629}


information sur le thread. 

\begin{DoxyReturn}{Renvoie}
une chaîne courte qui informe sur le type de thread 
\end{DoxyReturn}


Définition à la ligne 266 du fichier usb\+Thread.\+py.



Voici le graphe des appelants de cette fonction \+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classsrc_1_1usbThread_1_1abstractThreadUSB_ae4c285ad4dfc222c4c76c513d9cf0629_icgraph}
\end{center}
\end{figure}


\hypertarget{classsrc_1_1usbThread_1_1abstractThreadUSB_ac586343abef57ddc6cfe074a5b99ea0d}{}\index{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}!to\+Do@{to\+Do}}
\index{to\+Do@{to\+Do}!src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}}
\subsubsection[{to\+Do}]{\setlength{\rightskip}{0pt plus 5cm}def src.\+usb\+Thread.\+abstract\+Thread\+U\+S\+B.\+to\+Do (
\begin{DoxyParamCaption}
\item[{}]{self, }
\item[{}]{ud, }
\item[{}]{file\+List, }
\item[{}]{subdir, }
\item[{}]{dest, }
\item[{}]{logfile}
\end{DoxyParamCaption}
)}\label{classsrc_1_1usbThread_1_1abstractThreadUSB_ac586343abef57ddc6cfe074a5b99ea0d}


La fonction abstraite pour les choses à faire. 


\begin{DoxyParams}{Paramètres}
{\em ud} & l\textquotesingle{}instance u\+Disk correspondant à une partition de clé U\+S\+B \\
\hline
{\em file\+List} & la liste des fichiers à traiter \\
\hline
{\em subdir} & un sous-\/répertoire de la clé U\+S\+B \\
\hline
{\em dest} & un répertoire de destination \\
\hline
{\em logfile} & un fichier de journalisation \\
\hline
\end{DoxyParams}


Définition à la ligne 278 du fichier usb\+Thread.\+py.



Voici le graphe des appelants de cette fonction \+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classsrc_1_1usbThread_1_1abstractThreadUSB_ac586343abef57ddc6cfe074a5b99ea0d_icgraph}
\end{center}
\end{figure}


\hypertarget{classsrc_1_1usbThread_1_1abstractThreadUSB_a6322f09df6d4722df2ea63f5e61ac106}{}\index{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}!write\+To\+Log@{write\+To\+Log}}
\index{write\+To\+Log@{write\+To\+Log}!src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}}
\subsubsection[{write\+To\+Log}]{\setlength{\rightskip}{0pt plus 5cm}def src.\+usb\+Thread.\+abstract\+Thread\+U\+S\+B.\+write\+To\+Log (
\begin{DoxyParamCaption}
\item[{}]{self, }
\item[{}]{msg}
\end{DoxyParamCaption}
)}\label{classsrc_1_1usbThread_1_1abstractThreadUSB_a6322f09df6d4722df2ea63f5e61ac106}


Écrit un message dans le fichier de journalisation. 


\begin{DoxyParams}{Paramètres}
{\em msg} & le message \\
\hline
\end{DoxyParams}


Définition à la ligne 183 du fichier usb\+Thread.\+py.



Voici le graphe des appelants de cette fonction \+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classsrc_1_1usbThread_1_1abstractThreadUSB_a6322f09df6d4722df2ea63f5e61ac106_icgraph}
\end{center}
\end{figure}




\subsection{Documentation des données membres}
\hypertarget{classsrc_1_1usbThread_1_1abstractThreadUSB_a0c38b7a0b013f9331cf477b7d41bd77c}{}\index{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}!dest@{dest}}
\index{dest@{dest}!src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}}
\subsubsection[{dest}]{\setlength{\rightskip}{0pt plus 5cm}src.\+usb\+Thread.\+abstract\+Thread\+U\+S\+B.\+dest}\label{classsrc_1_1usbThread_1_1abstractThreadUSB_a0c38b7a0b013f9331cf477b7d41bd77c}


Définition à la ligne 170 du fichier usb\+Thread.\+py.

\hypertarget{classsrc_1_1usbThread_1_1abstractThreadUSB_ae91185d80f12054c7fa3224316504f24}{}\index{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}!file\+List@{file\+List}}
\index{file\+List@{file\+List}!src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}}
\subsubsection[{file\+List}]{\setlength{\rightskip}{0pt plus 5cm}src.\+usb\+Thread.\+abstract\+Thread\+U\+S\+B.\+file\+List}\label{classsrc_1_1usbThread_1_1abstractThreadUSB_ae91185d80f12054c7fa3224316504f24}


Définition à la ligne 168 du fichier usb\+Thread.\+py.

\hypertarget{classsrc_1_1usbThread_1_1abstractThreadUSB_a90550c2bd77c21e59db0f93d81eb0b1c}{}\index{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}!logfile@{logfile}}
\index{logfile@{logfile}!src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}}
\subsubsection[{logfile}]{\setlength{\rightskip}{0pt plus 5cm}src.\+usb\+Thread.\+abstract\+Thread\+U\+S\+B.\+logfile}\label{classsrc_1_1usbThread_1_1abstractThreadUSB_a90550c2bd77c21e59db0f93d81eb0b1c}


Définition à la ligne 171 du fichier usb\+Thread.\+py.

\hypertarget{classsrc_1_1usbThread_1_1abstractThreadUSB_aa7f081a29fbaace6ce8290890a5537ad}{}\index{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}!parent@{parent}}
\index{parent@{parent}!src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}}
\subsubsection[{parent}]{\setlength{\rightskip}{0pt plus 5cm}src.\+usb\+Thread.\+abstract\+Thread\+U\+S\+B.\+parent}\label{classsrc_1_1usbThread_1_1abstractThreadUSB_aa7f081a29fbaace6ce8290890a5537ad}


Définition à la ligne 172 du fichier usb\+Thread.\+py.

\hypertarget{classsrc_1_1usbThread_1_1abstractThreadUSB_a5d4c41bde3df9458df316eb04a503b20}{}\index{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}!subdir@{subdir}}
\index{subdir@{subdir}!src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}}
\subsubsection[{subdir}]{\setlength{\rightskip}{0pt plus 5cm}src.\+usb\+Thread.\+abstract\+Thread\+U\+S\+B.\+subdir}\label{classsrc_1_1usbThread_1_1abstractThreadUSB_a5d4c41bde3df9458df316eb04a503b20}


Définition à la ligne 169 du fichier usb\+Thread.\+py.

\hypertarget{classsrc_1_1usbThread_1_1abstractThreadUSB_add4e7b6bfbfb104f98eb4be47b3bfdff}{}\index{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}!ud@{ud}}
\index{ud@{ud}!src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B@{src\+::usb\+Thread\+::abstract\+Thread\+U\+S\+B}}
\subsubsection[{ud}]{\setlength{\rightskip}{0pt plus 5cm}src.\+usb\+Thread.\+abstract\+Thread\+U\+S\+B.\+ud}\label{classsrc_1_1usbThread_1_1abstractThreadUSB_add4e7b6bfbfb104f98eb4be47b3bfdff}


Définition à la ligne 166 du fichier usb\+Thread.\+py.



La documentation de cette classe a été générée à partir du fichier suivant \+:\begin{DoxyCompactItemize}
\item 
src/\hyperlink{usbThread_8py}{usb\+Thread.\+py}\end{DoxyCompactItemize}
