#ifndef ERIS_POLL_DEFAULT_H
#define ERIS_POLL_DEFAULT_H 

#include <Eris/Poll.h>

#include <sigc++/trackable.h>

#include <map>

namespace Eris {

class PollDefault : public Poll, virtual public sigc::trackable
{
public:
	PollDefault() {}
//	PollDefault(const SigC::Slot0<bool> &s) : _prePoll(s) {}
	virtual ~PollDefault() {}

	virtual void addStream(const basic_socket_stream*, Check);
	virtual void changeStream(const basic_socket_stream*, Check);
	virtual void removeStream(const basic_socket_stream*);

	static void poll(unsigned long timeout = 0);

	typedef std::map<const basic_socket_stream*,Check> MapType;
private:
	MapType _streams;
	typedef MapType::iterator _iter;

	void doPoll(unsigned long timeout);

//	SigC::Slot0<bool> _prePoll;
};

} // namespace Eris

#endif // ERIS_POLL_DEFAULT_H


syntax highlighted by Code2HTML, v. 0.9.1