• Nenhum resultado encontrado

Pacotes Manual de referência

N/A
N/A
Protected

Academic year: 2021

Share "Pacotes Manual de referência"

Copied!
25
0
0

Texto

(1)

Gerado por Doxygen 1.2.2

(2)
(3)

1 Pacotes ´Indice dos namespaces 1

1.1 Pacotes Lista de namespaces . . . 1

2 Pacotes ´Indice dos componentes 3 2.1 Pacotes Lista de componentes . . . 3

3 Pacotes ´Indice dos ficheiros 5 3.1 Pacotes Lista de ficheiros . . . 5

4 Pacotes Documentac¸ ˜ao dos namespaces 7 4.1 Referencia ao namespace IPC . . . 7

5 Pacotes Documentac¸ ˜ao da classe 9 5.1 Referencia `a classe IPC::Erro . . . 9

5.2 Referencia `a classe IPC::Mensageiro . . . 11

6 Pacotes Documentac¸ ˜ao do ficheiro 15 6.1 Referencia ao ficheiro erros.H . . . 15

6.2 Referencia ao ficheiro ipc.H . . . 16

6.3 Referencia ao ficheiro mensageiro.C . . . 17

6.4 Referencia ao ficheiro mensageiro.H . . . 18

6.5 Referencia ao ficheiro mensageiro impl.H . . . 19

(4)
(5)

Pacotes ´Indice dos namespaces

1.1

Pacotes Lista de namespaces

Lista dos namespaces com uma breve descric¸ ˜ao:

(6)

2 Pacotes ´Indice dos namespaces

(7)

Pacotes ´Indice dos componentes

2.1

Pacotes Lista de componentes

Lista da classes, estruturas, uni ˜oes e interfaces com uma breve descric¸ ˜ao:

IPC::Erro (Classe usada para as excepc¸ ˜oes do pacoteIPC) . . . 9

IPC::Mensageiro (Classe cuja ´unica instˆancia (em cada processo) representa um mensageiro

(8)

4 Pacotes ´Indice dos componentes

(9)

Pacotes ´Indice dos ficheiros

3.1

Pacotes Lista de ficheiros

Lista de todos os ficheiros com uma breve descric¸ ˜ao:

mensageiro.C . . . 17

string.H . . . 20

erros.H (Ficheiro de interface do m ´odulo erros) . . . . 15

ipc.H (Ficheiro de interface da biblioteca) . . . . 16

mensageiro.H (Ficheiro de interface do m ´odulo mensageiro) . . . . 18

(10)

6 Pacotes ´Indice dos ficheiros

(11)

Pacotes Documentac¸ ˜ao dos namespaces

4.1

Referencia ao namespace IPC

Este espac¸o nominativo envolve todas as ferramentas da bibliotecaIPC++.

Componentes

classIPC::Erro

classIPC::Mensageiro

4.1.1

Descric¸ ˜ao detalhada

Este espac¸o nominativo envolve todas as ferramentas da bibliotecaIPC++.

A bibliotecaIPC++permite a utilizac¸ ˜ao simplificada de comunicac¸ ˜oes entre processos (IPC, de Inter Pro-cess Communications). A biblioteca consiste de um pacote IPC (representado pelo espac¸o nominativo IPC) consistindo, para j´a, apenas no m ´odulo fisico mensageiro e no m ´odulo f´ısico erros, com os correspondentes ficheiro de interfaceIPC/mensageiro.HeIPC/erros.H.

Nesta documentac¸ ˜ao omite-se o prefixo IPC:: sempre que conveniente para facilitar a leitura, embora em rigor este seja necess´ario.

Para construir um programa (neste caso teste ipc.C) que utilize estas biblioteca deve dar o seguinte coman-do:

c++ -Wall -ansi -pedantic -g -o teste ipc teste ipc.C -l IPC++

Os ficheiros fonte devem incluir o ficheiro de interfaceIPC/ipc.H, que por sua vez inclui os ficheiros de interface dos m ´odulos f´ısicos, ou incluir apenas o ficheiro de interface do m ´odulo pretendido.

Caso se pretenda instalar esta biblioteca noutro computador deve-se fazer o seguinte:

1. Importar os seguintes ficheiros:

(12)

8 Pacotes Documentac¸ ˜ao dos namespaces

Para importar no netscape basta fazer ’shift-clique’ no bot˜ao esquerdo do rato.

2. Dar os seguintes comandos:

tar -zxf Pacotes-0.1.tar.gz cd Pacotes

make

su (inserir a senha [password] de administrac¸˜ao da m´aquina) make install

exit

Autor(es):

Manuel Menezes de Sequeira

Vers˜ao:

0.1

Data:

2000

(13)

Pacotes Documentac¸ ˜ao da classe

5.1

Referencia `a classe IPC::Erro

Classe usada para as excepc¸ ˜oes do pacoteIPC.

#include IPC/erros.H

Membros p ´ublicos

Erro(string const& mensagem)

Constr´oi excepc¸ ˜ao dada mensagem de erro.

Erro()

Constr´oi excepc¸ ˜ao usando mensagem de erro padr ˜ao correspondente ao ´ultimo erro ocorrido.

operator string const() const

´

E poss´ıvel converter as excepc¸ ˜oesIPCem cadeias de caracteres.

5.1.1

Descric¸ ˜ao detalhada

Classe usada para as excepc¸ ˜oes do pacoteIPC. Definido na linha 13 do ficheiro erros.H.

5.1.2

Documentac¸ ˜ao do Construtor & Destrutor

5.1.2.1 IPC::Erro::Erro (string const & mensagem) [inline]

(14)

10 Pacotes Documentac¸ ˜ao da classe

Definido na linha 16 do ficheiro erros.H.

5.1.2.2 IPC::Erro::Erro () [inline]

Constr´oi excepc¸˜ao usando mensagem de erro padr˜ao correspondente ao ´ultimo erro ocorrido. Definido na linha 21 do ficheiro erros.H.

5.1.3

Documentac¸ ˜ao dos m´etodos

5.1.3.1 IPC::Erro::operator string const () const [inline]

´

E poss´ıvel converter as excepc¸ ˜oesIPCem cadeias de caracteres.

A cadeia devolvida por este operador inclui a mensagem de erro e um prefixo indicando a sua origem no pacoteIPC.

Definido na linha 27 do ficheiro erros.H.

A documentac¸ ˜ao para esta classe foi gerada a partir do seguinte ficheiro:

erros.H

(15)

5.2

Referencia `a classe IPC::Mensageiro

Classe cuja ´unica instˆancia (em cada processo) representa um mensageiro entre o processo em causa e um outro na mesma m´aquina.

#include IPC/mensageiro.H

Membros p ´ublicos

Mensageiro(key t const chave = getuid())

Contrutor de um mensageiro.

Mensageiro()

Destrutor.

stringmeuIdentificador()

Devolve um identificador ´unico para o processo, que consiste no nome do utilizador seguido do n ´umero do processo.

stringidentificadorDoOutro()

Devolve o identificador ´unico do outro processo, com o qual o corrente est ´a emparelhado atrav´es do men-sageiro.

stringstringRecebida()

Devolve uma cadeia de caracteres recebida do outro.

intintRecebido()

Devolve um inteiro recebido do outro.

charcharRecebido()

Devolve um caractere recebido.

voidenvia(string const& mensagem)

Envia uma cadeia de caracteres ao outro.

voidenvia(int const valor)

Envia um inteiro ao outro.

voidenvia(char const c)

Envia um caractere ao outro.

5.2.1

Descric¸ ˜ao detalhada

Classe cuja ´unica instˆancia (em cada processo) representa um mensageiro entre o processo em causa e um outro na mesma m´aquina.

(16)

12 Pacotes Documentac¸ ˜ao da classe

Esta classe ´e um solit˜ao! A ideia ´e que um processo com uma instˆancia desta classe fica em comunicac¸ ˜ao com outro com outra instˆancia da mesma classe. A selecc¸ ˜ao do outro processo ´e feita automaticamente, de acordo com as disponibilidades. A ideia ´e permitir a comunicac¸ ˜ao entre dois processos do mesmo jogo, sendo que os jogadores n˜ao tˆem controlo sobre que ser´a o seu opositor.

Nas descric¸ ˜oes usa-se o termo ”eu”para indicar o processo corrente, e ”outro”para indicar o processo a que o ”eu”est´a emparelhado pelo mensageiro.

A comunicac¸ ˜ao faz-se enviando e recebendo mensagens. As mensagens enviadas e recebidas s ˜ao, por enquanto, de apenas trˆes tipos: char, int e string. N˜ao existe, para j´a, nenhuma forma de indagar se h´a alguma mensagem dispon´ıvel para ser recebida e muito menos saber o seu tipo. O protocolo entre os processos ´e que tem de garantir que os processos recebem tantas mensagens quantas as enviadas pelo outro, enviam tantas mensagens quantas as recebidas pelo outro, e com tipos compat´ıveis.

A classe ´e simples de usar. Por exemplo, suponha que se pretendia fazer um pequeno jogo em que ganha quem gerar um n ´umero aleat´orio maior. Poder-se-ia escrever:

#include <IPC/mensageiro.H> // ou #include <IPC/ipc.H> #include <cstdlib>

#include <ctime> using namespace IPC; int main()

// Se n˜ao se fizer isto os jogadores geram sempre o mesmo n´umero // aleat´orio...

srand(time(0)); try

// Construir mensageiro:

Mensageiro mensageiro;

// Escrever identificac¸˜oes:

cout << "Eu sou o " << mensageiro.meu Identificador() << endl; cout << "Ele ´e o " << mensageiro.identificador Do

Ou-tro() << endl;

// Gerar n´umero aleat´orio: int meu = rand();

// Envi´a-lo ao advers´ario: mensageiro.envia(meu);

// Receber n´umero do adevers´ario: int dele = mensageiro.int Recebido(); // Verificar resultado:

if(meu < dele)

cout << "Perdi " << meu << " contra " << dele << "..." << endl;

else if(meu > dele)

cout << "Ganhei " << meu << " contra " << dele << ’!’ << endl;

else

cout << "Empat´amos " << meu << " a " << dele << ’.’ << endl;



catch(Erro& erro)

(17)

Definido na linha 95 do ficheiro mensageiro.H.

5.2.2

Documentac¸ ˜ao do Construtor & Destrutor

5.2.2.1 IPC::Mensageiro::Mensageiro (key t const chave = getuid())

Contrutor de um mensageiro.

Podem-se criar mensageiros de dois tipos: restritos ou n˜ao restritos. O primeiro tipo consegue-se n˜ao passando qualquer argumento ao construtor e restringe o emparelhamento dos processos a processos do mesmo utilizador. O segundo tipo ´e mais geral, pois permite o emparelhamento de processos de utilizadores arbitr´arios da mesma m´aquina, mas exige a passagem de uma chave ipc que deve ser ´unica para cada tipo de aplicac¸ ˜ao prevista.

Definido na linha 3 do ficheiro mensageiro.C.

5.2.2.2 IPC::Mensageiro:: Mensageiro ()

Destrutor.

Definido na linha 63 do ficheiro mensageiro.C.

5.2.3

Documentac¸ ˜ao dos m´etodos

5.2.3.1 char IPC::Mensageiro::charRecebido () [inline]

Devolve um caractere recebido.

Definido na linha 19 do ficheiro mensageiro impl.H.

5.2.3.2 void IPC::Mensageiro::envia (char const c) [inline]

Envia um caractere ao outro.

Definido na linha 31 do ficheiro mensageiro impl.H.

5.2.3.3 void IPC::Mensageiro::envia (int const valor) [inline]

Envia um inteiro ao outro.

Definido na linha 27 do ficheiro mensageiro impl.H.

(18)

14 Pacotes Documentac¸ ˜ao da classe

5.2.3.4 void IPC::Mensageiro::envia (string const & mensagem) [inline]

Envia uma cadeia de caracteres ao outro.

Definido na linha 23 do ficheiro mensageiro impl.H. Referenciado por Mensageiro(), e Mensageiro().

5.2.3.5 string IPC::Mensageiro::identificadorDoOutro () [inline]

Devolve o identificador ´unico do outro processo, com o qual o corrente est´a emparelhado atrav´es do men-sageiro.

Definido na linha 6 do ficheiro mensageiro impl.H.

5.2.3.6 int IPC::Mensageiro::intRecebido () [inline]

Devolve um inteiro recebido do outro.

Definido na linha 15 do ficheiro mensageiro impl.H. Referenciado por Mensageiro().

5.2.3.7 string IPC::Mensageiro::meuIdentificador () [inline]

Devolve um identificador ´unico para o processo, que consiste no nome do utilizador seguido do n ´umero do processo.

Definido na linha 1 do ficheiro mensageiro impl.H.

5.2.3.8 string IPC::Mensageiro::stringRecebida () [inline]

Devolve uma cadeia de caracteres recebida do outro. Definido na linha 11 do ficheiro mensageiro impl.H. Referenciado por Mensageiro().

A documentac¸ ˜ao para esta classe foi gerada a partir dos seguintes ficheiros:

mensageiro.H mensageiro impl.H mensageiro.C

(19)

Pacotes Documentac¸ ˜ao do ficheiro

6.1

Referencia ao ficheiro erros.H

Ficheiro de interface do m ´odulo erros.

#include cerrno

Namespaces

namespaceIPC

Componentes

classIPC::Erro

6.1.1

Descric¸ ˜ao detalhada

Ficheiro de interface do m ´odulo erros. Define a classeIPC::Erro.

(20)

16 Pacotes Documentac¸ ˜ao do ficheiro

6.2

Referencia ao ficheiro ipc.H

Ficheiro de interface da biblioteca.

#include IPC/mensageiro.H

Namespaces

namespaceIPC

6.2.1

Descric¸ ˜ao detalhada

Ficheiro de interface da biblioteca.

Usa-se se n˜ao se pretender discriminar entre os m ´odulos f´ısicos realmente necess´arios. Definido no ficheiroipc.H.

(21)

6.3

Referencia ao ficheiro mensageiro.C

#include IPC/mensageiro.H

(22)

18 Pacotes Documentac¸ ˜ao do ficheiro

6.4

Referencia ao ficheiro mensageiro.H

Ficheiro de interface do m ´odulo mensageiro.

#include string #include cstdio #include Extra/string.H #include sys/msg.h #include unistd.h #include pwd.h #include IPC/erros.H

#include IPC/mensageiro impl.H

Namespaces

namespaceIPC

Componentes

classIPC::Mensageiro

Definic¸ ˜ao de macros

#define SVID SOURCE

6.4.1

Descric¸ ˜ao detalhada

Ficheiro de interface do m ´odulo mensageiro. Define a classeIPC::Mensageiro.

Definido no ficheiromensageiro.H.

6.4.2

Documentac¸ ˜ao da macro

6.4.2.1 #define SVID SOURCE

Definido na linha 6 do ficheiro mensageiro.H.

(23)

6.5

Referencia ao ficheiro mensageiro impl.H

(24)

20 Pacotes Documentac¸ ˜ao do ficheiro

6.6

Referencia ao ficheiro string.H

#include cstdio

Func¸ ˜oes

string&operator+=(string& c, int n)

Acrescenta a representac¸ ˜ao em base decimal de um inteiro a uma cadeia.

stringoperator+(string c, int n)

Devolve a concatenac¸ ˜ao de uma cadeia com a representac¸ ˜ao na base decimal de um inteiro.

stringoperator+(int n, string const& c)

Devolve a concatenac¸ ˜ao da representac¸ ˜ao na base decimal de um inteiro com uma cadeia.

6.6.1

Documentac¸ ˜ao da func¸ ˜ao

6.6.1.1 string operator+ (int n, string const & c) [inline]

Devolve a concatenac¸ ˜ao da representac¸˜ao na base decimal de um inteiro com uma cadeia. Definido na linha 24 do ficheiro string.H.

6.6.1.2 string operator+ (string c, int n) [inline]

Devolve a concatenac¸ ˜ao de uma cadeia com a representac¸ ˜ao na base decimal de um inteiro. Definido na linha 18 do ficheiro string.H.

6.6.1.3 string & operator+= (string & c, int n) [inline]

Acrescenta a representac¸ ˜ao em base decimal de um inteiro a uma cadeia. Definido na linha 10 do ficheiro string.H.

(25)

Mensageiro IPC::Mensageiro,13 charRecebido IPC::Mensageiro,13 envia IPC::Mensageiro,13 Erro IPC::Erro,9,10 identificadorDoOutro IPC::Mensageiro,14 intRecebido IPC::Mensageiro,14 IPC,7 IPC::Erro,9 Erro,9,10

operator string const,10

IPC::Mensageiro,11 Mensageiro,13 charRecebido,13 envia,13 identificadorDoOutro,14 intRecebido,14 Mensageiro,13 meuIdentificador,14 stringRecebida,14 Mensageiro IPC::Mensageiro,13 meuIdentificador IPC::Mensageiro,14

operator string const IPC::Erro,10 operator+ string.H,20 operator+= string.H,20 string.H operator+,20 operator+=,20 stringRecebida IPC::Mensageiro,14

Referências

Documentos relacionados

No panorama internauta são vários os softwares à disposição do utilizador que servem para converter ficheiros PDF em flipbooks, que nada mais são que livros ou publicações

A nossa proposta de pesquisa compõe-se de uma sequência didática para o ensino dos tópicos: planos, cilindros e quádricas, onde foi explorada a visualização com o traçado dessas

Pela sociedade do nosso tempo: para que as pessoas não se deixem vencer pela tentação do ateísmo, do consumismo e do hedonismo, mas se esforcem por construir a vida de

Ninguém quer essa vida assim não Zambi.. Eu não quero as crianças

O candidato poderá obter informações e orientações sobre o Simulado Virtual, tais como Editais, processo de inscrição, horário de prova, gabaritos, ranking e resultados

Se procurávamos uma prova da instância esté- tica evidente, e aliás intrínseca ao objecto em questão, eis a sua confirmação claríssima, para além do mais incidente na vida

Neo Decapeptyl pode ser usado como tratamento alternativo quando a orquiectomia (retirada dos testículos) ou a administração de estrógenos não são indicados ou não são aceitos

Em suma, tanto o PIB quanto o PIB per capita brasileiro podem ser caracterizados por um processo de raiz unitária, significando que perturbações que acometem as duas séries