acl/lib_fiber/samples/chat/reader/user_client.h
ubuntu14 bcb2f1b85c fixed one bug in fiber.c for memory leak
add some samples for lib_liber
2016-11-27 21:03:24 +08:00

57 lines
777 B
C++

#pragma once
#include <list>
class user_client
{
public:
user_client(acl::socket_stream& conn, const char* user, int max_loop)
: conn_(conn), name_(user), max_loop_(max_loop) {}
~user_client(void)
{
}
acl::socket_stream& get_stream(void) const
{
return conn_;
}
const char* get_name(void) const
{
return name_.c_str();
}
int get_max_loop(void) const
{
return max_loop_;
}
bool existing(void) const
{
return existing_;
}
void set_existing(void)
{
existing_ = true;
}
void wait_exit(void)
{
int mtype;
chan_exit_.pop(mtype);
}
void notify_exit(void)
{
int mtype = 1;
chan_exit_.put(mtype);
}
private:
acl::socket_stream& conn_;
acl::channel<int> chan_exit_;
acl::string name_;
int max_loop_;
bool existing_ = false;
};