2006-02-05 17:43:00 +00:00
|
|
|
#ifndef _GYR_GROUP_HOST_H
|
|
|
|
#define _GYR_GROUP_HOST_H
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
#include <list>
|
|
|
|
|
|
|
|
#include <sys/types.h>
|
|
|
|
#include <sys/socket.h>
|
|
|
|
#include <netinet/in.h>
|
|
|
|
#include <netdb.h>
|
|
|
|
#include <errno.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
|
|
|
|
|
|
|
|
#include "message.h"
|
|
|
|
|
|
|
|
class HostId {
|
|
|
|
public:
|
|
|
|
std::string host;
|
|
|
|
int port;
|
|
|
|
};
|
|
|
|
|
|
|
|
class Group {
|
|
|
|
public:
|
|
|
|
|
|
|
|
private:
|
|
|
|
std::list<HostId> _hosts;
|
|
|
|
std::vector<sockaddr_in *> _addrs;
|
|
|
|
int _socket_desc;
|
2006-02-05 18:24:11 +00:00
|
|
|
short _index;
|
2006-02-05 17:43:00 +00:00
|
|
|
|
|
|
|
protected:
|
|
|
|
public:
|
2006-02-05 18:24:11 +00:00
|
|
|
Group(std::list<HostId> group, short myindex);
|
2006-02-05 17:43:00 +00:00
|
|
|
|
2006-02-05 18:24:11 +00:00
|
|
|
void sendto(Message &msg, short index);
|
2006-02-05 17:43:00 +00:00
|
|
|
void broadcast(Message &msg);
|
2006-02-05 18:24:11 +00:00
|
|
|
short getIndex();
|
|
|
|
|
2006-02-05 17:43:00 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|