Página principal   Lista de namespaces   Hierarquia de classes   Lista de componentes   Lista de ficheiros   Membros do namespace   Componentes   Declarações  

mensageiro.H

Ir para a documentação deste ficheiro.
00001 
00003 #ifndef IPC_MENSAGEIRO_H
00004 #define IPC_MENSAGEIRO_H
00005 
00006 #define _GNU_SOURCE
00007 
00008 #include <string>
00009 #include <cstdio>  // Não há stringstream...
00010 
00011 #include <Extra/string.H>
00012 
00013 extern "C" {
00014     #include <sys/msg.h>
00015     #include <unistd.h>
00016     #include <pwd.h>
00017 }
00018 
00019 #include <IPC/erros.H>
00020 
00021 namespace IPC {
00022 
00095     class Mensageiro {
00096     public:
00105         Mensageiro(key_t const chave = getuid());
00106 
00108         ~Mensageiro();
00109 
00112         string meuIdentificador();
00113 
00116         string identificadorDoOutro();
00117 
00119         string stringRecebida();
00120 
00122         int intRecebido();
00123 
00125         char charRecebido();
00126 
00128         void envia(string const& mensagem);
00129 
00131         void envia(int const valor);
00132 
00134         void envia(char const c);
00135 
00136     private:
00137         // Assim ninguém pode invocar o construtor por cópia...
00138         Mensageiro(Mensageiro const&);
00139         // ...nem a atribuição por cópia:
00140         Mensageiro& operator = (Mensageiro const&);
00141 
00142         char leBasicoChar(int const tipo, bool const espera = true);
00143         int leBasicoInt(int const tipo, bool const espera = true);
00144         string leBasico(int const tipo, bool const espera = true);
00145         void escreveBasicoChar(int const tipo, char const c);
00146         void escreveBasicoInt(int const tipo, int const valor);
00147         void escreveBasico(int const tipo, string const& mensagem);
00148 
00149         int eu;                 // PID do "eu".
00150         int outro;              // PID do "outro".
00151         int meuUID;             // UID do "eu".
00152         int outroUID;           // UID do "outro".
00153         int id;                 // Identificador da caixa do correio.
00154         bool servidor;          // Indica se o mensageiro é servidor.
00155         static bool existe_instancia; // Para não deixar criar segunda
00156                                 // instância da classe.
00157     };
00158 
00159     #include <IPC/mensageiro_impl.H>
00160 }
00161 
00162 #endif //IPC_MENSAGEIRO_H

Gerado em Tue Apr 10 15:38:16 2001 para Pacotes por doxygen1.2.6 escrito por Dimitri van Heesch, © 1997-2001