diff options
Diffstat (limited to 'tde-i18n-pt/docs/tdevelop/kdearch/index.docbook')
-rw-r--r-- | tde-i18n-pt/docs/tdevelop/kdearch/index.docbook | 198 |
1 files changed, 99 insertions, 99 deletions
diff --git a/tde-i18n-pt/docs/tdevelop/kdearch/index.docbook b/tde-i18n-pt/docs/tdevelop/kdearch/index.docbook index 67d928d8ae1..e12e1d851e7 100644 --- a/tde-i18n-pt/docs/tdevelop/kdearch/index.docbook +++ b/tde-i18n-pt/docs/tdevelop/kdearch/index.docbook @@ -25,7 +25,7 @@ > <affiliation ><address ><email ->bernd@tdevelop.org</email +>bernd@kdevelop.org</email ></address ></affiliation> </author> @@ -97,13 +97,13 @@ <varlistentry> <term -><ulink url="kdeapi:kio/index.html" ->kio</ulink +><ulink url="kdeapi:tdeio/index.html" +>tdeio</ulink ></term> <listitem ><para >A biblioteca <literal ->kio</literal +>tdeio</literal > contém funcionalidades para E/S assíncronas e transparentes na rede, assim como o tratamento de tipos MIME. Também contém a janela de ficheiros do KDE e as suas classes auxiliares. </para ></listitem> </varlistentry> @@ -123,14 +123,14 @@ <varlistentry> <term -><ulink url="kdeapi:khtml/index.html" ->khtml</ulink +><ulink url="kdeapi:tdehtml/index.html" +>tdehtml</ulink ></term> <listitem ><para >A biblioteca <literal ->khtml</literal -> contém a componente KHTML, um elemento de navegação em HTML, com uma API e um processador de DOM e que inclui interfaces para Java e JavaScript. </para +>tdehtml</literal +> contém a componente TDEHTML, um elemento de navegação em HTML, com uma API e um processador de DOM e que inclui interfaces para Java e JavaScript. </para ></listitem> </varlistentry> @@ -401,8 +401,8 @@ <listitem ><formalpara ><title -><ulink url="kdeapi:tdecore/KZoneAllocator" ->KZoneAllocator</ulink +><ulink url="kdeapi:tdecore/TDEZoneAllocator" +>TDEZoneAllocator</ulink ></title> <para >Um alocador de memória eficiente para grandes grupos de objectos pequenos. </para> @@ -430,8 +430,8 @@ <listitem ><formalpara ><title -><ulink url="kdeapi:tdecore/KAccel" ->KAccel</ulink +><ulink url="kdeapi:tdecore/TDEAccel" +>TDEAccel</ulink ></title> <para >Uma colecção de atalhos de teclado. </para> @@ -441,8 +441,8 @@ <listitem ><formalpara ><title -><ulink url="kdeapi:tdecore/KStdAccel" ->KStdAccel</ulink +><ulink url="kdeapi:tdecore/TDEStdAccel" +>TDEStdAccel</ulink ></title> <para >Um acesso fácil aos atalhos de teclado comuns. </para> @@ -470,8 +470,8 @@ <listitem ><formalpara ><title -><ulink url="kdeapi:tdecore/KIconLoader" ->KIconLoader</ulink +><ulink url="kdeapi:tdecore/TDEIconLoader" +>TDEIconLoader</ulink ></title> <para >Carrega os ícones de uma forma dependente do tema. </para> @@ -481,11 +481,11 @@ <listitem ><formalpara ><title -><ulink url="kdeapi:tdecore/KIconTheme" ->KIconTheme</ulink +><ulink url="kdeapi:tdecore/TDEIconTheme" +>TDEIconTheme</ulink ></title> <para ->Classes auxiliares para o KIconLoader. </para> +>Classes auxiliares para o TDEIconLoader. </para> </formalpara ></listitem> @@ -576,8 +576,8 @@ <listitem ><formalpara ><title -><ulink url="kdeapi:tdecore/KCompletion" ->KCompletion</ulink +><ulink url="kdeapi:tdecore/TDECompletion" +>TDECompletion</ulink ></title> <para >Auto-completação genérica de cadeias de caracteres. </para> @@ -587,7 +587,7 @@ <listitem ><formalpara ><title -><ulink url="kdeapi:kio/KURLCompletion" +><ulink url="kdeapi:tdeio/KURLCompletion" >KURLCompletion</ulink ></title> <para @@ -598,7 +598,7 @@ <listitem ><formalpara ><title -><ulink url="kdeapi:kio/KShellCompletion" +><ulink url="kdeapi:tdeio/KShellCompletion" >KShellCompletion</ulink ></title> <para @@ -616,8 +616,8 @@ <listitem ><formalpara ><title -><ulink url="kdeapi:tdeui/KListView" ->KListView</ulink +><ulink url="kdeapi:tdeui/TDEListView" +>TDEListView</ulink ></title> <para >Uma variante da <classname @@ -629,8 +629,8 @@ <listitem ><formalpara ><title -><ulink url="kdeapi:tdeui/KListView" ->KListBox</ulink +><ulink url="kdeapi:tdeui/TDEListView" +>TDEListBox</ulink ></title> <para >Uma variante da <classname @@ -642,8 +642,8 @@ <listitem ><formalpara ><title -><ulink url="kdeapi:tdeui/KListView" ->KIconView</ulink +><ulink url="kdeapi:tdeui/TDEListView" +>TDEIconView</ulink ></title> <para >Uma variante da <classname @@ -655,7 +655,7 @@ <listitem ><formalpara ><title -><ulink url="kdeapi:tdeui/KListView" +><ulink url="kdeapi:tdeui/TDEListView" >KLineEdit</ulink ></title> <para @@ -681,8 +681,8 @@ <listitem ><formalpara ><title -><ulink url="kdeapi:tdeui/KFontCombo" ->KFontCombo</ulink +><ulink url="kdeapi:tdeui/TDEFontCombo" +>TDEFontCombo</ulink ></title> <para >Uma lista para seleccionar tipos de letra. </para> @@ -725,7 +725,7 @@ <listitem ><formalpara ><title -><ulink url="kdeapi:kfile/KURLRequester" +><ulink url="kdeapi:tdefile/KURLRequester" >KURLRequester</ulink ></title> <para @@ -788,7 +788,7 @@ url="kdeapi:tdeui/KAnimWidget" <listitem ><formalpara ><title -><ulink url="kdeapi:kfile/KFileDialog" +><ulink url="kdeapi:tdefile/KFileDialog" >KFileDialog</ulink ></title> <para @@ -810,8 +810,8 @@ url="kdeapi:tdeui/KAnimWidget" <listitem ><formalpara ><title -><ulink url="kdeapi:tdeui/KFontDialog" ->KFontDialog</ulink +><ulink url="kdeapi:tdeui/TDEFontDialog" +>TDEFontDialog</ulink ></title> <para >Uma janela de selecção de tipos de letra. </para> @@ -821,8 +821,8 @@ url="kdeapi:tdeui/KAnimWidget" <listitem ><formalpara ><title -><ulink url="kdeapi:kfile/KIconDialog" ->KIconDialog</ulink +><ulink url="kdeapi:tdefile/TDEIconDialog" +>TDEIconDialog</ulink ></title> <para >Uma janela de selecção de ícones. </para> @@ -865,8 +865,8 @@ url="kdeapi:tdeui/KAnimWidget" <listitem ><formalpara ><title -><ulink url="kdeapi:tdeui/KAboutDialog" ->KAboutDialog</ulink +><ulink url="kdeapi:tdeui/TDEAboutDialog" +>TDEAboutDialog</ulink ></title> <para >Uma janela Acerca. </para> @@ -887,7 +887,7 @@ url="kdeapi:tdeui/KAnimWidget" <listitem ><formalpara ><title -><ulink url="kdeapi:kfile/KURLRequesterDlg" +><ulink url="kdeapi:tdefile/KURLRequesterDlg" >KURLRequesterDlg</ulink ></title> <para @@ -927,8 +927,8 @@ url="kdeapi:tdeui/KAnimWidget" <listitem ><formalpara ><title -><ulink url="kdeapi:tdeui/KAction" ->KAction</ulink +><ulink url="kdeapi:tdeui/TDEAction" +>TDEAction</ulink ></title> <para >Uma abstracção de uma acção que poderá ser associada a menus e barras de ferramentas. </para> @@ -938,8 +938,8 @@ url="kdeapi:tdeui/KAnimWidget" <listitem ><formalpara ><title -><ulink url="kdeapi:tdeui/KActionCollection" ->KActionCollection</ulink +><ulink url="kdeapi:tdeui/TDEActionCollection" +>TDEActionCollection</ulink ></title> <para >Um conjunto de acções. </para> @@ -960,7 +960,7 @@ url="kdeapi:tdeui/KAnimWidget" <listitem ><formalpara ><title -><ulink url="kdeapi:kparts/KPartManager" +><ulink url="kdeapi:tdeparts/KPartManager" >KPartManager</ulink ></title> <para @@ -1011,7 +1011,7 @@ url="kdeapi:tdeui/KAnimWidget" <listitem ><formalpara ><title -><ulink url="kdeapi:kio/KServiceType" +><ulink url="kdeapi:tdeio/KServiceType" >KServiceType</ulink ></title> <para @@ -1022,7 +1022,7 @@ url="kdeapi:tdeui/KAnimWidget" <listitem ><formalpara ><title -><ulink url="kdeapi:kio/KService" +><ulink url="kdeapi:tdeio/KService" >KService</ulink ></title> <para @@ -1033,7 +1033,7 @@ url="kdeapi:tdeui/KAnimWidget" <listitem ><formalpara ><title -><ulink url="kdeapi:kio/KMimeType" +><ulink url="kdeapi:tdeio/KMimeType" >KMimeType</ulink ></title> <para @@ -1044,7 +1044,7 @@ url="kdeapi:tdeui/KAnimWidget" <listitem ><formalpara ><title -><ulink url="kdeapi:kio/KServiceTypeProfile" +><ulink url="kdeapi:tdeio/KServiceTypeProfile" >KServiceTypeProfile</ulink ></title> <para @@ -1055,8 +1055,8 @@ url="kdeapi:tdeui/KAnimWidget" <listitem ><formalpara ><title -><ulink url="kdeapi:kio/KServiceTypeProfile" ->KTrader</ulink +><ulink url="kdeapi:tdeio/KServiceTypeProfile" +>TDETrader</ulink ></title> <para >Pesquisa de serviços. </para> @@ -1728,8 +1728,8 @@ url="kdeapi:tdeui/KAnimWidget" >) aparecem nas localizações indicadas pelos guias de estilo. O XMLGUI é especialmente importante para os programas modulares, em que os itens que aparecem no menu podem resultar de vários 'plugins' ou componentes diferentes. </para> <para ->A classe do KDE para as janelas de topo, a <ulink url="kdeapi:tdeui/KMainWindow.html" ->KMainWindow</ulink +>A classe do KDE para as janelas de topo, a <ulink url="kdeapi:tdeui/TDEMainWindow.html" +>TDEMainWindow</ulink >, herda de <ulink url="kdeapi:tdeui/KXMLGUIClient.html" >KXMLGUIClient</ulink > e, por isso, suporta a XMLGUI logo de raiz. Todas as acções criadas dentro dela terão de ter a <literal @@ -1793,19 +1793,19 @@ rc_DATA = kviewui.rc >KStdAction::zoomIn ( this, SLOT(slotZoomIn()), actionCollection() ); KStdAction::zoomOut ( this, SLOT(slotZoomOut()), actionCollection() ); KStdAction::zoom ( this, SLOT(slotZoom()), actionCollection() ); - new KAction ( i18n("&Half size"), ALT+Key_0, + new TDEAction ( i18n("&Half size"), ALT+Key_0, this, SLOT(slotHalfSize()), actionCollection(), "zoom50" ); - new KAction ( i18n("&Normal size"), ALT+Key_1, + new TDEAction ( i18n("&Normal size"), ALT+Key_1, this, SLOT(slotDoubleSize()), actionCollection(), "zoom100" ); - new KAction ( i18n("&Double size"), ALT+Key_2, + new TDEAction ( i18n("&Double size"), ALT+Key_2, this, SLOT(slotDoubleSize()), actionCollection(), "zoom200" ); - new KAction ( i18n("&Fill Screen"), ALT+Key_3, + new TDEAction ( i18n("&Fill Screen"), ALT+Key_3, this, SLOT(slotFillScreen()), actionCollection(), "zoomMaxpect" ); - new KAction ( i18n("Fullscreen &Mode"), CTRL+SHIFT+Key_F, + new TDEAction ( i18n("Fullscreen &Mode"), CTRL+SHIFT+Key_F, this, SLOT(slotFullScreen()), actionCollection(), "fullscreen" ); </programlisting> @@ -2005,7 +2005,7 @@ rc_DATA = kviewui.rc unplugActionList("openwith"); // Nome declarado no ficheiro XML accoesAbrirCom.clear(); for ( /* iterar pelos serviços relevantes */ ) { - KAction *accao = new KAction( ...); + TDEAction *accao = new TDEAction( ...); accoesAbrirCom.append(accao); } plugActionList("openwith", accoesAbrirCom); @@ -2128,12 +2128,12 @@ rc_DATA = kviewui.rc <para >Se as barras de menu e as barras de ferramentas forem criadas com o <ulink url="actionpattern.html" >padrão de acções</ulink ->, o texto usado como dica deriva do primeiro argumento do construtor da <ulink url="kdeapi:tdeui/KAction.html" ->KAction</ulink +>, o texto usado como dica deriva do primeiro argumento do construtor da <ulink url="kdeapi:tdeui/TDEAction.html" +>TDEAction</ulink >: </para> <programlisting ->accao = new KAction(i18n("&Remover"), "editdelete", +>accao = new TDEAction(i18n("&Remover"), "editdelete", SHIFT+Key_Delete, actionCollection(), "del") </programlisting> @@ -2365,9 +2365,9 @@ X-KDevelop-Scope=Project >KDevFactory</classname > (que herda de <classname >KLibFactory</classname ->). Os exemplos mais comuns são a <ulink url="kdeapi:kparts/KParts::Factory" +>). Os exemplos mais comuns são a <ulink url="kdeapi:tdeparts/KParts::Factory" >KParts::Factory</ulink -> que é suposto produzir objectos <ulink url="kdeapi:kparts/KParts::ReadOnlyPart" +> que é suposto produzir objectos <ulink url="kdeapi:tdeparts/KParts::ReadOnlyPart" >KParts::ReadOnlyPart</ulink > ou, na maioria dos casos, a <ulink url="kdeapi:tdecore/KLibFactory" >KLibFactory</ulink @@ -2381,7 +2381,7 @@ X-KDevelop-Scope=Project >Usar os serviços das bibliotecas dinâmicas</title> <para ->Para usar um serviço de uma biblioteca dinâmica numa aplicação, você precisa de obter um objecto <ulink url="kdeapi:kio/KService.html" +>Para usar um serviço de uma biblioteca dinâmica numa aplicação, você precisa de obter um objecto <ulink url="kdeapi:tdeio/KService.html" >KService</ulink > que a represente. Isto é discutido na <ulink url="mime.html" >secção sobre os tipos MIME</ulink @@ -2430,8 +2430,8 @@ if (!fabrica) { <para >Um serviço de DCOP é normalmente implementado como um programa que é iniciado sempre que é necessário. Ele entra então em ciclo e fica à espera de ligações do DCOP. O programa poderá ser interactivo, mas também poderá correr completamente, ou durante parte do seu tempo de vida, como um servidor em segundo plano, sem que o utilizador repare nele. Um exemplo destes servidores é o <literal ->kio_uiserver</literal ->, que implementa a interacção com o utilizador, como a janela de progresso para a biblioteca KIO. A vantagem de um servidor centralizado deste no contexto em questão é que p.ex., pode-se mostrar o progresso da transferência para vários ficheiros diferentes numa só uma janela, mesmo que estas transferências tenham sido iniciadas a partir de aplicações diferentes. </para> +>tdeio_uiserver</literal +>, que implementa a interacção com o utilizador, como a janela de progresso para a biblioteca TDEIO. A vantagem de um servidor centralizado deste no contexto em questão é que p.ex., pode-se mostrar o progresso da transferência para vários ficheiros diferentes numa só uma janela, mesmo que estas transferências tenham sido iniciadas a partir de aplicações diferentes. </para> <para >Um serviço de DCOP é definido de forma diferente de um serviço de uma biblioteca dinâmica. Obviamente, não diz respeito a uma biblioteca, mas sim a um executável. Para além disso, os serviços de DCOP não indicam uma linha ServiceType, porque normalmente eles são iniciados pelo nomes deles. Como propriedades adicionais, contêm duas linhas: </para> @@ -2463,14 +2463,14 @@ if (!fabrica) { <para >Aqui está a definição do <literal ->kio_uiserver</literal +>tdeio_uiserver</literal >: </para> <programlisting >[Desktop Entry] Type=Service -Name=kio_uiserver -Exec=kio_uiserver +Name=tdeio_uiserver +Exec=tdeio_uiserver X-DCOP-ServiceType=Unique X-TDE-StartupNotify=false </programlisting> @@ -2488,9 +2488,9 @@ X-TDE-StartupNotify=false <programlisting >DCOPClient *cliente = kapp->dcopClient(); cliente->attach(); -if (!cliente->isApplicationRegistered("kio_uiserver")) { +if (!cliente->isApplicationRegistered("tdeio_uiserver")) { QString erro; - if (TDEApplication::startServiceByName("kio_uiserver", QStringList(), &erro)) + if (TDEApplication::startServiceByName("tdeio_uiserver", QStringList(), &erro)) cout << "O início do kioserver falhou com a mensagem " << erro << endl; } ... @@ -2498,9 +2498,9 @@ QByteArray dados, dadosResposta; QCString tipoResposta; QDataStream arg(dados, IO_WriteOnly); arg << true; -if (!client->call("kio_uiserver", "UIServer", "setListMode(bool)", +if (!client->call("tdeio_uiserver", "UIServer", "setListMode(bool)", dados, tipoResposta, dadosResposta)) - cout << "A chamada do kio_uiserver falhou" << endl; + cout << "A chamada do tdeio_uiserver falhou" << endl; ... </programlisting> @@ -2515,7 +2515,7 @@ if (!client->call("kio_uiserver", "UIServer", "setListMode(bool)", > do ficheiro 'desktop'. Uma alternativa é usar o <function >TDEApplication::startServiceByDesktopName()</function >, que recebe o nome do ficheiro 'desktop' como argumento, i.e., neste caso, seria igual a <literal ->"kio_uiserver.desktop"</literal +>"tdeio_uiserver.desktop"</literal >. </para> <para @@ -2633,7 +2633,7 @@ Comment[pt]=Dados em XPTO >. </para> <para ->Nas bibliotecas do KDE, a definição de um tipo destes é mapeada numa instância da classe <ulink url="kdeapi:kio/KMimeType.html" +>Nas bibliotecas do KDE, a definição de um tipo destes é mapeada numa instância da classe <ulink url="kdeapi:tdeio/KMimeType.html" >KMimeType</ulink >. Use esta como é mostrado no exemplo a seguir: </para> @@ -2682,7 +2682,7 @@ else >(este método tem mais alguns argumentos, mas estes não estão documentados, por isso esqueça-os). </para> <para ->Você poderá querer determinar o tipo MIME a partir do conteúdo do ficheiro em vez de ser pelo seu nome. Isto é mais fiável, mas também é mais lento, dado que implica ler uma parte do ficheiro. Isto é feito com a classe <ulink url="kdeapi:kio/KMimeMagic.html" +>Você poderá querer determinar o tipo MIME a partir do conteúdo do ficheiro em vez de ser pelo seu nome. Isto é mais fiável, mas também é mais lento, dado que implica ler uma parte do ficheiro. Isto é feito com a classe <ulink url="kdeapi:tdeio/KMimeMagic.html" >KMimeMagic</ulink >, que tem tratamentos de erros diferentes: </para> @@ -2722,14 +2722,14 @@ else </programlisting> <para ->Isto inicia uma tarefa do KIO para obter uma parte do ficheiro e analisá-la. Lembre-se que esta função é talvez bastante lenta e bloqueia o programa. Normalmente, você só irá querer usar isto se o <function +>Isto inicia uma tarefa do TDEIO para obter uma parte do ficheiro e analisá-la. Lembre-se que esta função é talvez bastante lenta e bloqueia o programa. Normalmente, você só irá querer usar isto se o <function >KMimeType::findByURL()</function > devolveu <literal >"application/octet-stream"</literal >. </para> <para ->Por outro lado, se você não quiser bloquear a sua aplicação, você poderá iniciar explicitamente a tarefa do KIO e ligar-se a um dos seus 'signals': </para> +>Por outro lado, se você não quiser bloquear a sua aplicação, você poderá iniciar explicitamente a tarefa do TDEIO e ligar-se a um dos seus 'signals': </para> <programlisting >void ClasseXpto::descobrirTipo() @@ -2796,7 +2796,7 @@ for (it = ofertas.begin(); it != ofertas.end(); ++it) { >"Application"</literal > por <literal >"KParts::ReadOnlyPart"</literal ->. Nesse caso, você irá obter uma lista dos componentes incorporados para apresentar conteúdos em HTML, como por exemplo o KHTML. </para> +>. Nesse caso, você irá obter uma lista dos componentes incorporados para apresentar conteúdos em HTML, como por exemplo o TDEHTML. </para> <para >Na maioria dos casos, você não está interessado na lista de todas as ofertas de serviços para uma dada combinação de tipo MIME e tipo de serviço. Existe uma função de conveniência que lhe dá apenas a oferta de serviço com a maior preferência: </para> @@ -2810,12 +2810,12 @@ else </programlisting> <para ->Para as pesquisas ainda mais complexas, existe um <ulink url="kdeapi:kio/KTrader.html" +>Para as pesquisas ainda mais complexas, existe um <ulink url="kdeapi:tdeio/TDETrader.html" >mediador</ulink > completo e semelhante ao do CORBA. </para> <para ->Para poder executar um serviço de aplicação com alguns URLs, use o <ulink url="kdeapi:kio/KRun.html" +>Para poder executar um serviço de aplicação com alguns URLs, use o <ulink url="kdeapi:tdeio/KRun.html" >KRun</ulink >: </para> @@ -2876,7 +2876,7 @@ new KRun(url); > é importante. Enquanto você está à espera do seu navegador Web para transferir uma página, a interface do utilizador não deverá bloquear. Da mesma forma, o início do desenho da página não deverá começar somente quando a página estiver disponível por completo mas sim actualizar-se regulamente à medida que os dados vão chegando. </para> <para ->Nas bibliotecas do KDE, a transparência da rede está implementada na API do KIO. O conceito central desta arquitectura é a <emphasis +>Nas bibliotecas do KDE, a transparência da rede está implementada na API do TDEIO. O conceito central desta arquitectura é a <emphasis >tarefa</emphasis > de E/S. Uma tarefa pode copiar ou remover ficheiros, entre outras coisas. Logo que uma tarefa seja inicia, ela fica em segundo plano e não bloqueia a aplicação. Todas as comunicações da tarefa para a aplicação - como a entrega dos dados ou a informação de progresso - é feita de forma integrada com o ciclo de eventos do Qt. </para> @@ -2897,17 +2897,17 @@ new KRun(url); <simplesect id="nettransparency-usingkio"> <title ->Usar o KIO</title> +>Usar o TDEIO</title> <para ->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 +>Na maioria dos casos, as tarefas são criadas ao invocar as funções no espaço de nomes do TDEIO. 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(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> <programlisting >void ClasseXpto::criarDirectoria() { - SimpleJob *tarefa = TDEIO::mkdir(KURL("file:/home/ze/dir_kio")); + SimpleJob *tarefa = TDEIO::mkdir(KURL("file:/home/ze/dir_tdeio")); connect( tarefa, SIGNAL(result(TDEIO::Job*)), this, SLOT(resultadoMkdir(TDEIO::Job*)) ); } @@ -3194,7 +3194,7 @@ void ClasseXpto::resultadoMkdir(TDEIO::Job *tarefa) >Utilização síncrona</title> <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> +>Normalmente, a API síncrona do TDEIO é 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> <programlisting >KURL origem, destino; @@ -3240,7 +3240,7 @@ if (TDEIO::NetAccess::download(url, ficheiroTemporario) { <programlisting >void ClasseXpto::relerPagina() { - KURL url("http://www.tdevelop.org/index.html"); + KURL url("http://www.kdevelop.org/index.html"); TDEIO::TransferJob *tarefa = TDEIO::get(url, true, false); tarefa->addMetaData("cache", "reload"); ... @@ -3283,13 +3283,13 @@ void ClasseXpto::transferirResultado(TDEIO::Job *tarefa) >Escalonamento</title> <para ->Ao usar a API do KIO, você normalmente não tem de lidar com os detalhes de arranque dos 'IO slaves' e da comunicação com eles. O caso de uso normal é iniciar uma tarefa e, com alguns parâmetros, tratar os 'signals' que esta emite. </para> +>Ao usar a API do TDEIO, você normalmente não tem de lidar com os detalhes de arranque dos 'IO slaves' e da comunicação com eles. O caso de uso normal é iniciar uma tarefa e, com alguns parâmetros, tratar os 'signals' que esta emite. </para> <para ->Nos bastidores, o cenário é bastante mais complicado. Quando você cria uma tarefa, esta é posta numa fila. Quando a aplicação regressa ao ciclo de eventos, o KIO reserva processos de 'slaves' para as tarefas na fila. Para as primeiras tarefas que sejam iniciadas, isto é trivial: um 'IO slave' para o protocolo corresponde é iniciado. Contudo, depois de a tarefa (como a transferência de um servidor de HTTP) ter terminado, não é imediatamente morta. Em vez disso, é colocada num grupo de 'slaves' inactivos e é morta ao fim de um dado período de inactividade (normalmente 3 minutos). Se surgir um novo pedido para o mesmo protocolo e máquina, o 'slave' é reutilizado. A vantagem óbvia é que, para uma série de tarefas para a mesma máquina, o custo da criação de novos processos e da passagem por um processo de autenticação é poupado. </para> +>Nos bastidores, o cenário é bastante mais complicado. Quando você cria uma tarefa, esta é posta numa fila. Quando a aplicação regressa ao ciclo de eventos, o TDEIO reserva processos de 'slaves' para as tarefas na fila. Para as primeiras tarefas que sejam iniciadas, isto é trivial: um 'IO slave' para o protocolo corresponde é iniciado. Contudo, depois de a tarefa (como a transferência de um servidor de HTTP) ter terminado, não é imediatamente morta. Em vez disso, é colocada num grupo de 'slaves' inactivos e é morta ao fim de um dado período de inactividade (normalmente 3 minutos). Se surgir um novo pedido para o mesmo protocolo e máquina, o 'slave' é reutilizado. A vantagem óbvia é que, para uma série de tarefas para a mesma máquina, o custo da criação de novos processos e da passagem por um processo de autenticação é poupado. </para> <para ->Claro que a reutilização só é possível quando o 'slave' existente já tiver terminado a sua tarefa anterior. Sempre que chega um novo pedido enquanto um 'slave' existente está ainda a correr, é iniciado um novo processo para ser utilizado. Na utilização da API nos exemplos acima, não existe nenhuma limitação para criar novos processos de 'slaves': se você iniciar uma série consecutiva de transferências para 20 ficheiros, então o KIO irá iniciar 20 processos de 'slaves'. Este esquema de atribuição de 'slaves' a tarefas é chamado de <emphasis +>Claro que a reutilização só é possível quando o 'slave' existente já tiver terminado a sua tarefa anterior. Sempre que chega um novo pedido enquanto um 'slave' existente está ainda a correr, é iniciado um novo processo para ser utilizado. Na utilização da API nos exemplos acima, não existe nenhuma limitação para criar novos processos de 'slaves': se você iniciar uma série consecutiva de transferências para 20 ficheiros, então o TDEIO irá iniciar 20 processos de 'slaves'. Este esquema de atribuição de 'slaves' a tarefas é chamado de <emphasis >directo</emphasis >. Não é sempre o esquema mais apropriado, dado que poderá necessitar de bastante memória e poderá colocar uma carga elevada tanto no cliente como no servidor. </para> @@ -3348,7 +3348,7 @@ EXTRA_DIST = $(mime_DATA) <programlisting >[Protocol] -exec=kio_ftp +exec=tdeio_ftp protocol=ftp input=none output=filesystem @@ -3375,9 +3375,9 @@ Icon=ftp <para >As linhas restantes do ficheiro <literal >.protocol</literal -> definem quais as capacidades que o 'slave' tem. De um modo geral, as funcionalidades que um 'slave' tem de implementar são muito mais simples do que as funcionalidades que a API do KIO oferece à aplicação. A razão para tal é que as tarefas complexas são escalonadas para um conjunto de sub-tarefas. Por exemplo, para poder listar uma directoria recursivamente, terá de ser iniciada uma tarefa para a directoria de topo. Depois, para cada subdirectoria indicada, são criadas novas sub-tarefas. Um escalonador no KIO certifica-se que não estão demasiadas tarefas activas ao mesmo tempo. De forma semelhante, para poder copiar um ficheiro num protocolo que não suporte a cópia directa (como o protocolo <literal +> definem quais as capacidades que o 'slave' tem. De um modo geral, as funcionalidades que um 'slave' tem de implementar são muito mais simples do que as funcionalidades que a API do TDEIO oferece à aplicação. A razão para tal é que as tarefas complexas são escalonadas para um conjunto de sub-tarefas. Por exemplo, para poder listar uma directoria recursivamente, terá de ser iniciada uma tarefa para a directoria de topo. Depois, para cada subdirectoria indicada, são criadas novas sub-tarefas. Um escalonador no TDEIO certifica-se que não estão demasiadas tarefas activas ao mesmo tempo. De forma semelhante, para poder copiar um ficheiro num protocolo que não suporte a cópia directa (como o protocolo <literal >ftp:</literal ->), o KIO poderá ler o ficheiro de origem e então escrever os dados para o ficheiro de destino. Para isto funcionar, o <literal +>), o TDEIO poderá ler o ficheiro de origem e então escrever os dados para o ficheiro de destino. Para isto funcionar, o <literal >.protocol</literal > precisa de publicar as acções que o seu 'slave' suporta. </para> @@ -3391,12 +3391,12 @@ Icon=ftp int kdemain(int argc, char **argv) { - KLocale::setMainCatalogue("tdelibs"); - TDEInstance instance("kio_ftp"); + TDELocale::setMainCatalogue("tdelibs"); + TDEInstance instance("tdeio_ftp"); (void) TDEGlobal::locale(); if (argc != 4) { - fprintf(stderr, "Utilização: kio_ftp protocolo " + fprintf(stderr, "Utilização: tdeio_ftp protocolo " "socket1-dominio socket2-dominio\n"); exit(-1); } @@ -3484,7 +3484,7 @@ int kdemain(int argc, char **argv) <para >Adicionalmente, existem funções que podem ser implementadas de novo e que não estão listadas no ficheiro <literal >.protocol</literal ->. Para essas operações, o KIO determina automaticamente se elas são suportadas ou não (i.e., se a implementação por omissão devolve um erro). </para> +>. Para essas operações, o TDEIO determina automaticamente se elas são suportadas ou não (i.e., se a implementação por omissão devolve um erro). </para> <variablelist> |