>I de fleste tilfælde oprettes job ved at kalde funktioner i KIO-navnerummet. Disse funktioner har en eller to URL'er som argument, og muligvis også andre nødvendige parametre. Når jobbet er afsluttet, sender det signalet <literal
>result(KIO::Job*)</literal
>result(TDEIO::Job*)</literal
>. Efter signalet er sendets, fjerner jobbet sig selv. Derfor ser et typisk brugertilfælde sådan her ud: </para>
>Finder nogen information om filen, såsom størrelse, ændringstid og rettigheder. Informationen kan hentes fra KIO::StatJob::statResult() efter jobbet er afsluttet. </para
>Finder nogen information om filen, såsom størrelse, ændringstid og rettigheder. Informationen kan hentes fra TDEIO::StatJob::statResult() efter jobbet er afsluttet. </para
>Begge jobbene KIO::stat() og KIO::listDir() returnerer deres resultater med typerne UDSEntry og UDSEntryList. Den sidste er defineret som QValueList<UDSEntry>. Forkortelsen UDS betyder "Universal directory service" (Generel mappetjeneste). Principperne bagved dette er at mappeindgangen kun indeholder information som en I/O-slave kan sørge for, ikke mere. For eksempel sørger HTTP-slaven ikke for nogen information om adgangsrettigheder eller ejere af filer. I stedet er en UDSEntry en liste med UDSAtoms. Hvert objekt sørger for en vis information. Den består af en type som opbevares i m_uds, og enten en heltalsværdi i m_long, eller en strengværdi i m_str, afhængig af typen. </para>
>Begge jobbene TDEIO::stat() og TDEIO::listDir() returnerer deres resultater med typerne UDSEntry og UDSEntryList. Den sidste er defineret som QValueList<UDSEntry>. Forkortelsen UDS betyder "Universal directory service" (Generel mappetjeneste). Principperne bagved dette er at mappeindgangen kun indeholder information som en I/O-slave kan sørge for, ikke mere. For eksempel sørger HTTP-slaven ikke for nogen information om adgangsrettigheder eller ejere af filer. I stedet er en UDSEntry en liste med UDSAtoms. Hvert objekt sørger for en vis information. Den består af en type som opbevares i m_uds, og enten en heltalsværdi i m_long, eller en strengværdi i m_str, afhængig af typen. </para>
<para
>Følgende typer er for øjeblikket definerede: </para>
>Ofte er KIO's asynkrone programmeringsgrænseflade for kompleks at bruge, og derfor er implementering af fuldstændig asynkronisme ikke en prioritet. I et program som for eksempel kun kan håndtere en dokumentfil af gangen, er der alligevel ikke meget som kan gøres mens programmet henter en fil. I disse enkle tilfælde, er der en meget nemmere programmeringsgrænseflade, i form af et antal statiske funktioner i KIO::NetAccess. For eksempel for at kopiere en fil, bruges: </para>
>Ofte er KIO's asynkrone programmeringsgrænseflade for kompleks at bruge, og derfor er implementering af fuldstændig asynkronisme ikke en prioritet. I et program som for eksempel kun kan håndtere en dokumentfil af gangen, er der alligevel ikke meget som kan gøres mens programmet henter en fil. I disse enkle tilfælde, er der en meget nemmere programmeringsgrænseflade, i form af et antal statiske funktioner i TDEIO::NetAccess. For eksempel for at kopiere en fil, bruges: </para>
>. For eksempel for IMAP-slaven, giver det ikke mening at starte flere processer for samme server. Kun en IMAP-forbindelse af gangen skal opretholdes. I dette tilfælde skal programmet udtrykkelig håndtere slavebegrebet. Det skal tildele en slave for en vis forbindelse og derefter tildele alle job som skal gå til samme forbindelse til samme slave. Dette kan igen nemt opnås ved at bruge KIO::Scheduler: </para>
>. For eksempel for IMAP-slaven, giver det ikke mening at starte flere processer for samme server. Kun en IMAP-forbindelse af gangen skal opretholdes. I dette tilfælde skal programmet udtrykkelig håndtere slavebegrebet. Det skal tildele en slave for en vis forbindelse og derefter tildele alle job som skal gå til samme forbindelse til samme slave. Dette kan igen nemt opnås ved at bruge TDEIO::Scheduler: </para>
@ -3385,11 +3385,11 @@ int kdemain(int argc, char **argv)
<para
>Slaver implementeres som delklasser til <classname
>KIO::SlaveBase</classname
>TDEIO::SlaveBase</classname
> (FtpSlave i eksemplet ovenfor). På den måde svarer handlingerne i <literal
>.protocol</literal
> til visse virtuelle funktioner i <classname
>KIO::SlaveBase</classname
>TDEIO::SlaveBase</classname
> som implementeringen af slaven skal omimplementere. Her er en liste med mulige handlinger og tilsvarende virtuelle funktioner: </para>
<variablelist>
@ -3510,9 +3510,9 @@ int kdemain(int argc, char **argv)
>. Hvis en fejl opstod, skal de kalde <literal
>error()</literal
> med en fejlkode som første argument og en streng som andet. Mulige fejlkoder er på listen som nummereringstypen <type
>KIO::Error</type
>TDEIO::Error</type
>. Det andet argument er oftest URL'en det drejer sig om. Den bruges f.eks. i <function
>KIO::Job::showErrorDialog()</function
>TDEIO::Job::showErrorDialog()</function
> for at parametrisere fejlmeddelelsen som er læsbart af brugeren. </para>
<para
@ -3558,7 +3558,7 @@ int kdemain(int argc, char **argv)
> rapporterer information om indgangene i en mappe. Kald <function
>listEntries()</function
> med en <classname
>KIO::UDSEntryList</classname
>TDEIO::UDSEntryList</classname
> som argument, for dette formål. På tilsvarende måde som <function
>data()</function
>, kan du kalde den flere gange. Når du er klar, så kald <function
@ -3573,7 +3573,7 @@ int kdemain(int argc, char **argv)
><function
>stat()</function
> rapporterer information om en fil, såsom størrelse, Mime-type, etc. Sådan information pakkes i en <classname
>KIO::UDSEntry</classname
>TDEIO::UDSEntry</classname
>, som beskrives nedenfor. Brug <function
>statEntry()</function
> for at sende et sådant objekt til programmet. </para
@ -3629,7 +3629,7 @@ int kdemain(int argc, char **argv)
><function
>infoMessage()</function
>: Dette er for informativ tilbagemelding, såsom meddelelsen "Henter data fra <værtsmaskine>" fra HTTP-slaven, som ofte vises i programmets statuslinje. På programsiden, svarer metoden til signalet <function
>En muchos casos, las tareas se crean llamando a funciones del nombre de espacios KIO. Estas funciones tienen una o dos URL como argumento, además de otros parámetros posiblemente necesarios. Cuando la tarea termina, emite la señal <literal
>result(KIO::Job*)</literal
>result(TDEIO::Job*)</literal
>. Tras emitir esta señal, la tarea se borra a sí misma. De este modo, un caso de uso típico podría ser: </para>
>Obtiene cierta información sobre el archivo, como su tamaño, hora de modificación y permisos. La información puede obtenerse de KIO::StatJob::statResult() una vez que el trabajo haya finalizado. </para
>Obtiene cierta información sobre el archivo, como su tamaño, hora de modificación y permisos. La información puede obtenerse de TDEIO::StatJob::statResult() una vez que el trabajo haya finalizado. </para
>La tarea KIO::stat() y la tarea KIO::listDir() devuelven un resultado de tipo UDSEntry y UDSEntryList, respectivamente. Esta última está definida como QValueList<UDSEntry>. El acrónimo de UDS significa «servicio de directorio universal», en inglés. El principio subyacente consiste en que una entrada de directorio solo contiene la información que puede proporcionar un «ioslave», pero no más. Por ejemplo, el esclavo http no proporciona ninguna información sobre permisos de acceso o propietarios del archivo. En lugar de ello, una USDEntry consiste en una lista de UDSAtoms, cada uno de los cuales proporciona una pieza de información específica (que consiste en un tipo almacenado en «m_uds», y en un valor entero en «m_long» o en una cadena de texto en «m_str», dependiendo del tipo). </para>
>La tarea TDEIO::stat() y la tarea TDEIO::listDir() devuelven un resultado de tipo UDSEntry y UDSEntryList, respectivamente. Esta última está definida como QValueList<UDSEntry>. El acrónimo de UDS significa «servicio de directorio universal», en inglés. El principio subyacente consiste en que una entrada de directorio solo contiene la información que puede proporcionar un «ioslave», pero no más. Por ejemplo, el esclavo http no proporciona ninguna información sobre permisos de acceso o propietarios del archivo. En lugar de ello, una USDEntry consiste en una lista de UDSAtoms, cada uno de los cuales proporciona una pieza de información específica (que consiste en un tipo almacenado en «m_uds», y en un valor entero en «m_long» o en una cadena de texto en «m_str», dependiendo del tipo). </para>
<para
>Actualmente están definidos los siguientes tipos: </para>
>A menudo, la API asíncrona de KIO resulta demasiado compleja de usar, por lo que la implementación de asincronismo total no es una prioridad. Por ejemplo, en un programa que solo puede manejar un archivo de documento a la vez, realmente hay pocas cosas que se puedan hacer mientras el programa descarga el archivo. Para estos casos simples, existe una API mucho más simple bajo la forma de funciones estáticas en KIO::NetAccess. Por ejemplo, para copiar un archivo, utilice </para>
>A menudo, la API asíncrona de KIO resulta demasiado compleja de usar, por lo que la implementación de asincronismo total no es una prioridad. Por ejemplo, en un programa que solo puede manejar un archivo de documento a la vez, realmente hay pocas cosas que se puedan hacer mientras el programa descarga el archivo. Para estos casos simples, existe una API mucho más simple bajo la forma de funciones estáticas en TDEIO::NetAccess. Por ejemplo, para copiar un archivo, utilice </para>
>. Por ejemplo, para el esclavo IMAP, no tiene sentido iniciar múltiples procesos para el mismo servidor: solo se debe forzar una conexión IMAP a la vez. En este caso, la aplicación debe tratar explícitamente con la noción de esclavo. Debe desasignar un esclavo de cierta conexión y luego asignar todas las tareas que pueda realizar la misma conexión con el mismo esclavo. De nuevo, esto se puede conseguir fácilmente usando KIO::Scheduler: </para>
>. Por ejemplo, para el esclavo IMAP, no tiene sentido iniciar múltiples procesos para el mismo servidor: solo se debe forzar una conexión IMAP a la vez. En este caso, la aplicación debe tratar explícitamente con la noción de esclavo. Debe desasignar un esclavo de cierta conexión y luego asignar todas las tareas que pueda realizar la misma conexión con el mismo esclavo. De nuevo, esto se puede conseguir fácilmente usando TDEIO::Scheduler: </para>
@ -3389,11 +3389,11 @@ int kdemain(int argc, char **argv)
<para
>Los esclavos se implementan como subclases de <classname
>KIO::SlaveBase</classname
>TDEIO::SlaveBase</classname
> (FtpSlave en el ejemplo anterior). De este modo, las acciones que se listan en el archivo <literal
>.protocol</literal
> corresponden a ciertas funciones virtuales de <classname
>KIO::SlaveBase</classname
>TDEIO::SlaveBase</classname
> que la implementación del esclavo debe reimplementar. Estas son algunas de las posibles acciones y sus correspondientes funciones virtuales: </para>
<variablelist>
@ -3514,9 +3514,9 @@ int kdemain(int argc, char **argv)
>; si ocurrió un error, <literal
>error()</literal
> debería ser llamada con un código de error como primer argumento y una cadena de texto como segundo. Los códigos de error posibles se listan como enumeraciones de tipo <type
>KIO::Error</type
>TDEIO::Error</type
>. El segundo argumento suele ser la URL en cuestión. Se usa, por ejemplo, en la función <function
>KIO::Kob::showErrorDialgog()</function
>TDEIO::Kob::showErrorDialgog()</function
> para parametizar el mensaje de error legible por el usuario. </para>
<para
@ -3562,7 +3562,7 @@ int kdemain(int argc, char **argv)
> devuelve información sobre las entradas de un directorio. Para este propósito, llame a <function
>listEntries()</function
> con una <classname
>KIO::UDSEntryList</classname
>TDEIO::UDSEntryList</classname
> como argumento. Del mismo modo que ocurría con <function
>data()</function
>, puede llamar a esta función varias veces. Cuando haya terminado, llame a <function
@ -3577,7 +3577,7 @@ int kdemain(int argc, char **argv)
><function
>stat()</function
> devuelve información sobre el archivo, como su tamaño, tipo MIME, etc. Esta información está empaquetada en una <classname
>KIO::UDSEntry</classname
>TDEIO::UDSEntry</classname
>, que se describirá más adelante. Use <function
>statEntry()</function
> para enviar este tipo de elementos a la aplicación. </para
@ -3633,7 +3633,7 @@ int kdemain(int argc, char **argv)
><function
>infoMessage()</function
> - Se usa para propósitos informativos, tales como el mensaje «Obteniendo datos de <host>» del esclavo http, que se muestra a menudo en la barra de estado del programa. En el lado de la aplicación, este método se corresponde a la señal <function
>Enamasti luuakse tööd KIO nimeruumis funktsioone välja kutsudes. Need funktsioonid kasutavad argumendina üht või kaht URL-i ja võib-olla vastavalt vajadusele veel mõningaid parameetreid. Kui töö on lõpetatud, väljastatakse signaal <literal
>result(KIO::Job*)</literal
>result(TDEIO::Job*)</literal
>. Signaali väljastamise järel kustutab töö iseenda. Toome siin tüüpilise kasutamise näite: </para>
>Leiab teatud info faili kohta, näiteks suurus, muutmise aeg ja õigused. Info teeb pärast töö lõpetamist teatavaks KIO::StatJob::statResult(). </para
>Leiab teatud info faili kohta, näiteks suurus, muutmise aeg ja õigused. Info teeb pärast töö lõpetamist teatavaks TDEIO::StatJob::statResult(). </para
>Nii töö KIO::stat() kui ka töö KIO::listDir() tagastavad oma tulemused vastavalt tüübina UDSEntry ja UDSEntryList. Viimane on defineeritud kui QValueList<UDSEntry>. UDS tähendab "universaalne kataloogiteenus" (inglise keeles "Universal Directory Service"). Selle taga seisab põhimõte, et kataloogikirje sisaldab ainult seda infot, mida IO moodul suudab pakkuda. Näiteks ei paku http moodul infot kasutamisõiguste või faili omaniku kohta. UDSEntry on UDSAtom-ite loend. Iga aatom pakub teatud konkreetse infoühiku. See koosneb tüübist, mille on salvestanud m_uds, ning sõltuvalt tüübist kas täisarvulisest väärtusest (m_long) või stringilisest väärtusest (m_str). </para>
>Nii töö TDEIO::stat() kui ka töö TDEIO::listDir() tagastavad oma tulemused vastavalt tüübina UDSEntry ja UDSEntryList. Viimane on defineeritud kui QValueList<UDSEntry>. UDS tähendab "universaalne kataloogiteenus" (inglise keeles "Universal Directory Service"). Selle taga seisab põhimõte, et kataloogikirje sisaldab ainult seda infot, mida IO moodul suudab pakkuda. Näiteks ei paku http moodul infot kasutamisõiguste või faili omaniku kohta. UDSEntry on UDSAtom-ite loend. Iga aatom pakub teatud konkreetse infoühiku. See koosneb tüübist, mille on salvestanud m_uds, ning sõltuvalt tüübist kas täisarvulisest väärtusest (m_long) või stringilisest väärtusest (m_str). </para>
>Sageli on KIO asünkroonne API liiga keerukas kasutada, seepärast ei ole ka täieliku asünkroonsuse teostamine esmatähtis. Näiteks programmi korral, mus suudab korraga käsitleda ainult üht dokumenti, ei ole nagunii midagi teha, kui programm parajasti dokumenti alla laeb. Sellistel lihtsatel juhtudel on olemas märksa lihtsam API staatiliste funktsioonide kogumi näol KIO::NetAccess-is. Näiteks faili kopeerimiseks kasuta: </para>
>Sageli on KIO asünkroonne API liiga keerukas kasutada, seepärast ei ole ka täieliku asünkroonsuse teostamine esmatähtis. Näiteks programmi korral, mus suudab korraga käsitleda ainult üht dokumenti, ei ole nagunii midagi teha, kui programm parajasti dokumenti alla laeb. Sellistel lihtsatel juhtudel on olemas märksa lihtsam API staatiliste funktsioonide kogumi näol TDEIO::NetAccess-is. Näiteks faili kopeerimiseks kasuta: </para>
>. Näiteks IMAP mooduli korral ei ole erilist mõtet käivitada ühe ja sama serveri puhul mitu protsessi. Nii või teisiti saab korraga toimida ainult üks IMAP ühendus. Sellisel juhul peab rakendus otseselt suhtlema mooduliga, kõrvaldades mooduli teatud ühenduselt ja seejärel omistama kõik tööd, mis käivad üle ühe ühenduse, samale moodulile. Ka selleks sobib suurepäraselt KIO::Scheduler: </para>
>. Näiteks IMAP mooduli korral ei ole erilist mõtet käivitada ühe ja sama serveri puhul mitu protsessi. Nii või teisiti saab korraga toimida ainult üks IMAP ühendus. Sellisel juhul peab rakendus otseselt suhtlema mooduliga, kõrvaldades mooduli teatud ühenduselt ja seejärel omistama kõik tööd, mis käivad üle ühe ühenduse, samale moodulile. Ka selleks sobib suurepäraselt TDEIO::Scheduler: </para>
@ -3385,11 +3385,11 @@ int kdemain(int argc, char **argv)
<para
>Moodulid teostatakse <classname
>KIO::SlaveBase</classname
>TDEIO::SlaveBase</classname
> alamklassidena (ülaltoodud näites FtpSlave). Nii vastavad <literal
>.protocol</literal
>-failis loetletud toimingud teatud <classname
>KIO::SlaveBase</classname
>TDEIO::SlaveBase</classname
> teatud virtuaalsetele funktsioonidele, mida mooduli teostus peab taasteostama. Toome siin ära võimalike toimingute ja neile vastavate virtuaalsete funktsioonide loendi: </para>
<variablelist>
@ -3510,9 +3510,9 @@ int kdemain(int argc, char **argv)
>, kui aga tekkis viga, siis tuleb välja kutsuda <literal
>error()</literal
> koos veakoodiga esimese ja stringiga teise argumendina. Võimalike veakoodide loendi annab <type
>KIO::Error</type
>TDEIO::Error</type
>. Teine argument on tavaliselt asjakohane URL. Seda kasutab näiteks <function
>KIO::Job::showErrorDialog()</function
>TDEIO::Job::showErrorDialog()</function
> inimestele mõistetava veateate loomisel. </para>
<para
@ -3558,7 +3558,7 @@ int kdemain(int argc, char **argv)
> edastab kataloogikirjete info. Selleks kutsu <function
>listEntries()</function
> välja argumendiga <classname
>KIO::UDSEntryList</classname
>TDEIO::UDSEntryList</classname
>. Nagu <function
>data()</function
> puhul, võib ka seda mitu korda välja kutsuda. Kui oled lõpetanud, kutsu välja <function
@ -3573,7 +3573,7 @@ int kdemain(int argc, char **argv)
><function
>stat()</function
> edastab failiinfot, näiteks suuruse, MIME tüübi jne. Sellist infot sisaldab <classname
>KIO::UDSEntry</classname
>TDEIO::UDSEntry</classname
>, millest tuleb veel juttu. Selliste andmete saatmiseks rakendustele kasuta <function
>statEntry()</function
>. </para
@ -3629,7 +3629,7 @@ int kdemain(int argc, char **argv)
><function
>infoMessage()</function
> - informatsiooniline tagasiside, näiteks HTTP mooduli sõnum "Andmete tõmbamine aadressilt <masin>", mida sageli näidatakse rakenduse olekuribal. Rakenduse poolelt vastab sellele meetodile signaal <function
>Dans la majorité des cas, les tâches sont créées en appelant des fonctions dans l'espace de noms KIO. Celles-ci prennent une ou deux URL comme arguments, voire d'autres paramètres nécessaires. Lorsque la tâche est terminée, elle émet le signal <literal
>result(KIO::Job*)</literal
>result(TDEIO::Job*)</literal
>. Une fois ce signal émis, la tâche se supprime. Ainsi, voici à quoi ressemble un cas classique d'utilisation: </para>
>Découvre certaines informations sur le fichier, comme sa taille, l'heure de sa modification et ses permissions. Les informations peuvent être obtenues à partir de KIO::StatJob::statResult() lorsque la tâche est terminée. </para
>Découvre certaines informations sur le fichier, comme sa taille, l'heure de sa modification et ses permissions. Les informations peuvent être obtenues à partir de TDEIO::StatJob::statResult() lorsque la tâche est terminée. </para
>Les tâches KIO::stat() et KIO::listDir() retournent toutes deux leur résultat sous la forme d'un type UDSEntry, UDSEntryList, respectivement. Cette dernière est définie en tant que QValueList<UDSEntry>. L'acronyme UDS signifie «Universal Directory Service» (service universel de dossiers). Le principe sous-jacent est que l'élément du dossier ne transporte que les informations qu'un ioslave peut fournir, sans plus. Par exemple, l'esclave http ne fournit aucune information sur les droits d'accès ou sur les propriétaires des fichiers. En revanche, un UDSEntry est une liste de UDSAtoms. Chaque atome fournit une partie spécifique d'information. Il se compose d'un type enregistré dans m_uds et soit d'une valeur entière dans m_long, soit d'une valeur chaîne dans m_str, en fonction du type. </para>
>Les tâches TDEIO::stat() et TDEIO::listDir() retournent toutes deux leur résultat sous la forme d'un type UDSEntry, UDSEntryList, respectivement. Cette dernière est définie en tant que QValueList<UDSEntry>. L'acronyme UDS signifie «Universal Directory Service» (service universel de dossiers). Le principe sous-jacent est que l'élément du dossier ne transporte que les informations qu'un ioslave peut fournir, sans plus. Par exemple, l'esclave http ne fournit aucune information sur les droits d'accès ou sur les propriétaires des fichiers. En revanche, un UDSEntry est une liste de UDSAtoms. Chaque atome fournit une partie spécifique d'information. Il se compose d'un type enregistré dans m_uds et soit d'une valeur entière dans m_long, soit d'une valeur chaîne dans m_str, en fonction du type. </para>
<para
>Les types suivants sont actuellement définis: </para>
>Souvent, l'API asynchrone de KIO est trop complexe à employer et donc, la mise en œuvre de l'asynchronicité complète n'est pas une priorité. Par exemple, dans un programme qui ne peut gérer qu'un fichier document à la fois, il y a de toute façon très peu de choses à faire pendant que le programme télécharge un fichier. Pour ces cas peu complexes, il y a une API beaucoup plus simple, sous la forme d'un ensemble de fonctions statiques dans KIO::NetAccess. Par exemple, pour copier un fichier, utilisez </para>
>Souvent, l'API asynchrone de KIO est trop complexe à employer et donc, la mise en œuvre de l'asynchronicité complète n'est pas une priorité. Par exemple, dans un programme qui ne peut gérer qu'un fichier document à la fois, il y a de toute façon très peu de choses à faire pendant que le programme télécharge un fichier. Pour ces cas peu complexes, il y a une API beaucoup plus simple, sous la forme d'un ensemble de fonctions statiques dans TDEIO::NetAccess. Par exemple, pour copier un fichier, utilisez </para>
>. Par exemple, pour l'esclave IMAP, il n'est pas judicieux de démarrer de multiples processus pour le même serveur. Une seule connexion IMAP à la fois devra être imposée. Dans ce cas, l'application doit accepter explicitement la notion d'esclave. Il faut qu'elle désalloue un esclave pour une certaine connexion puis qu'elle affecte toutes les tâches qui obtiendront la même connexion au même esclave. Cette opération peut à nouveau être réalisée à l'aide du KIO::Scheduler: </para>
>. Par exemple, pour l'esclave IMAP, il n'est pas judicieux de démarrer de multiples processus pour le même serveur. Une seule connexion IMAP à la fois devra être imposée. Dans ce cas, l'application doit accepter explicitement la notion d'esclave. Il faut qu'elle désalloue un esclave pour une certaine connexion puis qu'elle affecte toutes les tâches qui obtiendront la même connexion au même esclave. Cette opération peut à nouveau être réalisée à l'aide du TDEIO::Scheduler: </para>
@ -3409,11 +3409,11 @@ int kdemain(int argc, char **argv)
<para
>Les esclaves sont implémentés en tant que sous-classes de <classname
>KIO::SlaveBase</classname
>TDEIO::SlaveBase</classname
> (FtpSlave dans l'exemple ci-dessus). Ainsi, les actions répertoriées dans le <literal
>.protocol</literal
> correspondent à certaines fonctions virtuelles dans <classname
>KIO::SlaveBase</classname
>TDEIO::SlaveBase</classname
> que l'implémentation de l'esclave doit réimplémenter. Voici une liste des actions possibles et des fonctions virtuelles correspondantes: </para>
<variablelist>
@ -3534,9 +3534,9 @@ int kdemain(int argc, char **argv)
>. Si une erreur s'est produite, <literal
>error()</literal
> devra être appelée avec un code d'erreur comme premier argument et une chaîne dans le second. Les codes d'erreur possibles sont répertoriés sous forme d'énumération <type
>KIO::Error</type
>TDEIO::Error</type
>. Le second argument est habituellement l'URL en question. Elle est utilisée &pex; dans <function
>KIO::Job::showErrorDialog()</function
>TDEIO::Job::showErrorDialog()</function
> afin de paramétrer le message d'erreur humainement lisible. </para>
<para
@ -3582,7 +3582,7 @@ int kdemain(int argc, char **argv)
> signale des informations sur les éléments d'un dossier. À cette fin, appelez <function
>listEntries()</function
> avec une <classname
>KIO::UDSEntryList</classname
>TDEIO::UDSEntryList</classname
> comme argument. De manière analogue à <function
>data()</function
>, vous pouvez l'appeler plusieurs fois. Quand vous avez fini, appelez <function
@ -3597,7 +3597,7 @@ int kdemain(int argc, char **argv)
><function
>stat()</function
> signale des informations sur un fichier, comme sa taille, son type MIME, &etc; Ce genre d'informations est conditionné dans une <classname
>KIO::UDSEntry</classname
>TDEIO::UDSEntry</classname
>, que nous aborderons ci-après. Utilisez <function
>statEntry()</function
> pour envoyer un tel élément à l'application. </para
@ -3653,7 +3653,7 @@ int kdemain(int argc, char **argv)
><function
>infoMessage()</function
>—il s'agit d'un message de retour d'informations, comme un message «Retrieving data from <host> » depuis l'esclave http, qui est souvent affiché dans la barre d'état du programme. Côté application, cette méthode correspond au signal <function
>I job in molti casi sono creati chiamando le funzioni contenute nel namespace KIO. Esse ricevono uno o due URL come argomenti ed eventualmente altri parametri. Quando un job è concluso, emette il segnale <literal
>result(KIO::Job*)</literal
>I job in molti casi sono creati chiamando le funzioni contenute nel namespace TDEIO. Esse ricevono uno o due URL come argomenti ed eventualmente altri parametri. Quando un job è concluso, emette il segnale <literal
>result(TDEIO::Job*)</literal
>. Dopo che questo segnale è stato emesso, il job si cancella. Quindi un caso d'uso tipico sarà simile a questo: </para>
>Cerca alcune informazioni sul file, come dimensione, data di modifica e permessi. L'informazione può essere ottenuta da KIO::StatJob::statResult() dopo che il job è concluso. </para
>Cerca alcune informazioni sul file, come dimensione, data di modifica e permessi. L'informazione può essere ottenuta da TDEIO::StatJob::statResult() dopo che il job è concluso. </para
>I job di KIO::stat() e di KIO::listDir() restituiscono i loro risultati rispettivamente come tipi UDSEntry e USDEntryList. Quest'ultimo è definito come QValueList<UDSEntry>. L'acronimo UDS significa "Universal Directory Service". Il principio di base è che una voce della directory contiene le informazioni che possono essere fornite da uno slave, e nient'altro. Per esempio, lo slave http non fornisce nessuna informazione sui permessi di accesso o sui proprietari del file. Invece un UDSEntry è un elenco di UDSAtoms. Ogni atom fornisce una porzione specifica di informazione e consiste di un tipo memorizzato in m_uds e di un valore intero m_long o di una stringa m_str a seconda del tipo. </para>
>I job di TDEIO::stat() e di TDEIO::listDir() restituiscono i loro risultati rispettivamente come tipi UDSEntry e USDEntryList. Quest'ultimo è definito come QValueList<UDSEntry>. L'acronimo UDS significa "Universal Directory Service". Il principio di base è che una voce della directory contiene le informazioni che possono essere fornite da uno slave, e nient'altro. Per esempio, lo slave http non fornisce nessuna informazione sui permessi di accesso o sui proprietari del file. Invece un UDSEntry è un elenco di UDSAtoms. Ogni atom fornisce una porzione specifica di informazione e consiste di un tipo memorizzato in m_uds e di un valore intero m_long o di una stringa m_str a seconda del tipo. </para>
<para
>Attualmente sono definiti i seguenti tipi: </para>
>Spesso l'API asincrona di KIO è troppo complessa da usare e quindi l'implementazione asincrona non costituisce una priorità. Per esempio, in un programma che può gestire un solo documento alla volta c'è poco da fare quando un programma sta scaricando un file. Per questi semplici casi, esiste un'API molto più facile costituita da un insieme di funzioni statiche in KIO::NetAccess. Per esempio, per copiare un file si può usare </para>
>Spesso l'API asincrona di KIO è troppo complessa da usare e quindi l'implementazione asincrona non costituisce una priorità. Per esempio, in un programma che può gestire un solo documento alla volta c'è poco da fare quando un programma sta scaricando un file. Per questi semplici casi, esiste un'API molto più facile costituita da un insieme di funzioni statiche in TDEIO::NetAccess. Per esempio, per copiare un file si può usare </para>
>. Per esempio, per lo slave IMAP non ha senso avviare processi multipli per lo stesso server. Dovrebbe essere rinforzata solo una connessione IMAP alla volta. In questo caso l'applicazione deve occuparsi direttamente con la nozione di slave. Deve deallocare uno slave per alcune connessioni e in seguito assegnare tutti i job che dovrebbero utilizzare la stessa connessione allo stesso slave. Questo può essere fatto semplicemente usando KIO::Scheduler: </para>
>. Per esempio, per lo slave IMAP non ha senso avviare processi multipli per lo stesso server. Dovrebbe essere rinforzata solo una connessione IMAP alla volta. In questo caso l'applicazione deve occuparsi direttamente con la nozione di slave. Deve deallocare uno slave per alcune connessioni e in seguito assegnare tutti i job che dovrebbero utilizzare la stessa connessione allo stesso slave. Questo può essere fatto semplicemente usando TDEIO::Scheduler: </para>
@ -3383,11 +3383,11 @@ int kdemain(int argc, char **argv)
<para
>Gli slave sono implementati come sottoclassi di <classname
>KIO::SlaveBase</classname
>TDEIO::SlaveBase</classname
> (nell'esempio sopra FtpSlave). Quindi le azioni elencate nel file <literal
>.protocol</literal
> corrispondono ad alcune funzioni virtuali di <classname
>KIO::SlaveBase</classname
>TDEIO::SlaveBase</classname
> che devono essere reimplementate dall'implementazione dello slave. Ecco una lista di azioni possibili e le funzioni virtuali corrispondenti: </para>
<variablelist>
@ -3508,9 +3508,9 @@ int kdemain(int argc, char **argv)
>. Se accade un errore, dovrebbe essere chiamata la funzione <literal
>error()</literal
> con un codice di errore come primo argomento e una stringa come secondo. I codici di errore possibili sono elencati come enumerazioni di <type
>KIO::Error</type
>TDEIO::Error</type
>. Il secondo argomento è normalmente l'URL in questione. È usato ad esempio nella funzione <function
>KIO::Job::showErrorDialog()</function
>TDEIO::Job::showErrorDialog()</function
> per parametrizzare il messaggio di errore in forma leggibile. </para>
<para
@ -3556,7 +3556,7 @@ int kdemain(int argc, char **argv)
> riporta le informazioni sugli elementi di una directory. Per questo scopo chiama <function
>listEntries()</function
> con un argomento di tipo <classname
>KIO::UDSEntryList</classname
>TDEIO::UDSEntryList</classname
>. Analogamente alla funzione <function
>data()</function
> può essere chiamata diverse volte. Quando termina, chiamare <function
@ -3571,7 +3571,7 @@ int kdemain(int argc, char **argv)
><function
>stat()</function
> riferisce le informazioni su un file come la dimensione, il tipo MIME, ecc. Tali informazioni sono impacchettate in un <classname
>KIO::UDSEntry</classname
>TDEIO::UDSEntry</classname
> che sarà discusso più avanti. Usare <function
>statEntry()</function
> per inviare un tale oggetto all'applicazione. </para
@ -3627,7 +3627,7 @@ int kdemain(int argc, char **argv)
><function
>infoMessage()</function
> - usato per avere un feedback, come ad esempio per un messaggio del tipo "Scaricamento dati dall'<host>" dallo slave http, che viene visualizzato spesso nella barra di stato dei programmi. Dalla parte dell'applicazione questo metodo corrisponde al segnale <function
>Na maioria dos casos, as tarefas são criadas ao invocar as funções no espaço de nomes do KIO. Estas funções recebem um ou dois URLs como argumentos e possivelmente outros parâmetros necessários. Quando a tarefa terminar, ela emite o 'signal' <literal
>result(KIO::Job*)</literal
>result(TDEIO::Job*)</literal
>. Depois de este 'signal' ter sido emitido, a tarefa elimina-se a si própria. Deste modo, um caso de uso típico poderia ser semelhante ao seguinte: </para>
>Descobre certas informações sobre o ficheiro, como o tamanho, a data de modificação e as permissões. A informação pode ser obtida a partir do KIO::StatJob::statResult() depois de a tarefa terminar. </para
>Descobre certas informações sobre o ficheiro, como o tamanho, a data de modificação e as permissões. A informação pode ser obtida a partir do TDEIO::StatJob::statResult() depois de a tarefa terminar. </para
>Tanto as tarefas KIO::stat() como a KIO::listDir() devolvem os seus resultados como um tipo UDSEntry e UDSEntryList respectivamente. A última está definida como sendo um QValueList<UDSEntry>. O acrónimo UDS significa "Universal directory service" (serviço de directório universal). O princípio está em que o item da directoria só contém a informação que um 'ioslave' poderá fornecer, nada mais. Por exemplo, o 'slave' de HTTP não fornece nenhuma informação sobre as permissões de acesso ou os donos dos ficheiros. Em vez disso, uma UDSEntry é uma lista de UDSAtoms. Cada átomo contém um item informativo específico. Ele consiste num tipo armazenado no 'm_uds' e num valor inteiro no 'm_long' ou um valor de texto no 'm_str', dependendo do tipo. </para>
>Tanto as tarefas TDEIO::stat() como a TDEIO::listDir() devolvem os seus resultados como um tipo UDSEntry e UDSEntryList respectivamente. A última está definida como sendo um QValueList<UDSEntry>. O acrónimo UDS significa "Universal directory service" (serviço de directório universal). O princípio está em que o item da directoria só contém a informação que um 'ioslave' poderá fornecer, nada mais. Por exemplo, o 'slave' de HTTP não fornece nenhuma informação sobre as permissões de acesso ou os donos dos ficheiros. Em vez disso, uma UDSEntry é uma lista de UDSAtoms. Cada átomo contém um item informativo específico. Ele consiste num tipo armazenado no 'm_uds' e num valor inteiro no 'm_long' ou um valor de texto no 'm_str', dependendo do tipo. </para>
<para
>Os seguintes tipos estão actualmente definidos: </para>
>Normalmente, a API síncrona do KIO é demasiado complexa de usar e, como tal, a implementação de uma assincronização completa não é uma prioridade. Por exemplo, num programa que só consiga lidar com um ficheiro de cada vez, não há muito a fazer enquanto o programa está a transferir um ficheiro, de qualquer forma. Para esses casos simples, existe uma API muito mais simples sob a forma de funções estáticas no KIO::NetAccess. Por exemplo, para poder copiar um ficheiro, use </para>
>Normalmente, a API síncrona do KIO é demasiado complexa de usar e, como tal, a implementação de uma assincronização completa não é uma prioridade. Por exemplo, num programa que só consiga lidar com um ficheiro de cada vez, não há muito a fazer enquanto o programa está a transferir um ficheiro, de qualquer forma. Para esses casos simples, existe uma API muito mais simples sob a forma de funções estáticas no TDEIO::NetAccess. Por exemplo, para poder copiar um ficheiro, use </para>
>. Por exemplo, no caso do 'slave' de IMAP, não faz nenhum sentido lançar vários processos para o mesmo servidor. Só uma ligação de IMAP de cada vez é que deverá ser permitida. Neste caso, a aplicação deverá lidar explicitamente com a noção de um 'slave'. Terá de libertar um 'slave' para uma determinada ligação e então atribuir todas as tarefas que deverão ir pela mesma ligação ao mesmo 'slave'. Isto poderá ser conseguido facilmente com a utilização do KIO::Scheduler: </para>
>. Por exemplo, no caso do 'slave' de IMAP, não faz nenhum sentido lançar vários processos para o mesmo servidor. Só uma ligação de IMAP de cada vez é que deverá ser permitida. Neste caso, a aplicação deverá lidar explicitamente com a noção de um 'slave'. Terá de libertar um 'slave' para uma determinada ligação e então atribuir todas as tarefas que deverão ir pela mesma ligação ao mesmo 'slave'. Isto poderá ser conseguido facilmente com a utilização do TDEIO::Scheduler: </para>
@ -3416,11 +3416,11 @@ int kdemain(int argc, char **argv)
<para
>Os 'slaves' são implementados como sub-classes da <classname
>KIO::SlaveBase</classname
>TDEIO::SlaveBase</classname
> (a FtpSlave no exemplo acima). Como tal, as acções listadas no ficheiro <literal
>.protocol</literal
> correspondem a certas funções virtuais no <classname
>KIO::SlaveBase</classname
>TDEIO::SlaveBase</classname
> que a implementação do 'slave' precisa de reimplementar. Aqui está uma lista das acções possíveis e das funções virtuais correspondentes: </para>
<variablelist>
@ -3541,9 +3541,9 @@ int kdemain(int argc, char **argv)
>. Se ocorreu um erro, o <literal
>error()</literal
> deverá ser invocado com um código de erro como primeiro argumento e um texto no segundo. Os códigos de erro possíveis estão listados no tipo enumerado <type
>KIO::Error</type
>TDEIO::Error</type
>. O segundo argumento é normalmente o URL em questão. É usado, p.ex., no <function
>KIO::Job::showErrorDialog()</function
>TDEIO::Job::showErrorDialog()</function
> para parametrizar a mensagem de erro para o utilizador. </para>
<para
@ -3589,7 +3589,7 @@ int kdemain(int argc, char **argv)
> devolve informações sobre os itens de uma directoria. Para esse fim, chame o <function
>listEntries()</function
> com um <classname
>KIO::UDSEntryList</classname
>TDEIO::UDSEntryList</classname
> como argumento. De forma análoga à do <function
>data()</function
>, você poderá invocá-lo várias vezes. Quando terminar, invoque o <function
@ -3604,7 +3604,7 @@ int kdemain(int argc, char **argv)
>O <function
>stat()</function
> devolve informações acerca de um ficheiro como o seu tamanho, o tipo MIME, etc. Essa informação está contida num <classname
>KIO::UDSEntry</classname
>TDEIO::UDSEntry</classname
>, o qual será discutido em baixo. Use o <function
>statEntry()</function
> para enviar um desses itens para a aplicação. </para
@ -3660,7 +3660,7 @@ int kdemain(int argc, char **argv)
><function
>infoMessage()</function
> - Isto é para fins de informação, como a mensagem "A obter dados de <máquina>" do 'slave' de HTTP, o qual é mostrado normalmente na barra de estado do programa. Do lado da aplicação, este método corresponde ao 'signal' <function
>В большинстве случаев, задания создаются вызовом функций в пространстве имён KIO. Эти функции берут один или два URL как аргумент, и другое. После окончания задания, посылается сигнал <literal
>Информация о файле - размер, время изменения, права доступа. Информацию можно получить из KIO::StatJob::statResult() после завершения задания. </para
>Информация о файле - размер, время изменения, права доступа. Информацию можно получить из TDEIO::StatJob::statResult() после завершения задания. </para
>KIO::stat() и KIO::listDir() возвращают свой результат в типе UDSEntry, UDSEntryList соотв. Последний определён как QValueList<UDSEntry>. UDS расшифровывается как "Universal directory service". Принцип заключается в том, запись о каталоге содержит только ту информацию, доступную ioslave. Например, http slave не предоставляет информацию о правах доступа и владельцах файла. UDSEntry является списком UDSAtom'ов. Каждый атом содержит определённую часть информации. Он состоит из типа, хранящегося в m_uds и либо целого в m_long, либо строки в m_str, в зависимости от типа. </para>
>TDEIO::stat() и TDEIO::listDir() возвращают свой результат в типе UDSEntry, UDSEntryList соотв. Последний определён как QValueList<UDSEntry>. UDS расшифровывается как "Universal directory service". Принцип заключается в том, запись о каталоге содержит только ту информацию, доступную ioslave. Например, http slave не предоставляет информацию о правах доступа и владельцах файла. UDSEntry является списком UDSAtom'ов. Каждый атом содержит определённую часть информации. Он состоит из типа, хранящегося в m_uds и либо целого в m_long, либо строки в m_str, в зависимости от типа. </para>
>Часто, асинхронное API KIO слишком сложное для использования, и асинхронность не всегда важна. Например, в программе, которая может работать только с одним документом в одно время, можно сделать немногое в время загрузки файла. Для таких простых случаев, вы можете воспользоваться функциями класса KIO::NetAccess. Например, чтобы скопировать файл: </para>
>Часто, асинхронное API KIO слишком сложное для использования, и асинхронность не всегда важна. Например, в программе, которая может работать только с одним документом в одно время, можно сделать немногое в время загрузки файла. Для таких простых случаев, вы можете воспользоваться функциями класса TDEIO::NetAccess. Например, чтобы скопировать файл: </para>
>. Например, для IMAP slave, не имеет смысла запускать несколько процессов для одного сервера. Поэтому нельзя запускать несколько заданий к одному серверу. Это можно сделать с помощью KIO::Scheduler: </para>
>. Например, для IMAP slave, не имеет смысла запускать несколько процессов для одного сервера. Поэтому нельзя запускать несколько заданий к одному серверу. Это можно сделать с помощью TDEIO::Scheduler: </para>
>, которые должны реализовываться в slave'е, а именно: </para>
<variablelist>
@ -3507,9 +3507,9 @@ int kdemain(int argc, char **argv)
> или <literal
>error()</literal
> (с кодом ошибки в первом аргументе и строкой объяснения в втором). Коды ошибок перечислены в enum <type
>KIO::Error</type
>TDEIO::Error</type
>. Второй аргумент - обычно URL. Это используется например в<function
>KIO::Job::showErrorDialog()</function
>TDEIO::Job::showErrorDialog()</function
>. </para>
<para
@ -3554,7 +3554,7 @@ int kdemain(int argc, char **argv)
> выдаёт сведения о содержимом каталога. Для этого вызовите <function
>listEntries()</function
> с аргументом типа<classname
>KIO::UDSEntryList</classname
>TDEIO::UDSEntryList</classname
>. Подобно<function
>data()</function
>, вы можете сделать это несколько раз. В конце вызовите <function
@ -3569,7 +3569,7 @@ int kdemain(int argc, char **argv)
><function
>stat()</function
> выдаёт сведения о файле, например его размер, MIME-тип и т.д. Они упаковываются в один элемент типа <classname
>KIO::UDSEntry</classname
>TDEIO::UDSEntry</classname
>, обсуждаемый ранее. Используйте <function
>statEntry()</function
> для передачи такого элемента приложению. </para
@ -3625,7 +3625,7 @@ int kdemain(int argc, char **argv)
><function
>infoMessage()</function
> - информационное сообщение, такое как "Retrieving data from <host>" http slave'а, обычно отображаемое в панели состояния. На стороне приложения, этот метод отвечает сигналу <function