Exemplo n.º 1
0
int main(int argc,char **argv)
{
  LOG_INFO << "pid = " <<getpid();
  if(argc > 2)
  {
    EventLoopThread loopThread;
    uint16_t port = static_cast<uint16_t>(atoi(argv[2]));
    InetAddress serverAddr(argv[1],port);

    ChatClient client(loopThread.startLoop(),serverAddr);
    client.connect();
    std::string line;
    while(std::getline(std::cin,line))
    {
        client.write(line);
    }
    client.disconnect();
    CurrentThread::sleepUsec(1000*1000);
  }
  else
  {
    printf("Usage:%s host_ip port\n",argv[0]);
  }
  return 0;
}
Exemplo n.º 2
0
void CTcpServer::listenCallback(struct evconnlistener* listener, evutil_socket_t fd, struct sockaddr* addr, int socklen, void* data)
{
	if (!data)
	{
		return;
	}
	fprintf(stdout, "new connection is comming...\n");
	CTcpServer* p = reinterpret_cast<CTcpServer*>(data);
	EventLoopThread* loop = p->eventPool_.getNextLoop();
	Channel* channel = new Channel(loop->startLoop(), fd);
	loop->runInLoop(std::bind(&Channel::start, channel));
	fprintf(stdout, "currentThreadID:%d\n", ::GetCurrentThreadId());
}
void EventLoopThreadPool::start()
{
    assert(!started_);
    baseLoop_->assertInLoopThread();

    started_ = true;

    for (int i = 0; i < numThreads_; ++i)
    {
        char buf[name_.size() + 32];
        snprintf(buf, sizeof buf, "%s%d", name_.c_str(), i);
        EventLoopThread* t = new EventLoopThread(buf);
        threads_.push_back(t);
        loops_.push_back(t->startLoop());
  }
}
Exemplo n.º 4
0
int main(int argc, char* argv[])
{
  Logger::setLogLevel(Logger::DEBUG);

  EventLoopThread loopThread;
  {
  	EventLoop* loop = loopThread.startLoop();
  	AddrInet serverAddr("127.0.0.1", 22); // should succeed
  	TcpClient client(loop, serverAddr, "TcpClient");
  	client.connect();
  	Thread::sleep(1000*1000);// wait for connect
  	client.disconnect();
	//Thread::sleep(1000 * 1000);
  }

  Thread::sleep(1000 * 1000);
}
void EventLoopThreadPool::start(const ThreadInitCallback& cb)
{
	assert(!started_);

	started_ = true;
	for (int i = 0; i < numThreads_; ++ i)
	{
		char buf[name_.size() + 32];
		snprintf(buf, sizeof buf, "%s%d", name_.c_str(), i);
		EventLoopThread* t = new EventLoopThread(cd, buf);
		threads_.push_back(t);
		loops_.push_back(t->startLoop());
	}

	if (numThreads_ == 0 && cb)
	{
		cb(baseLoop);
	}
}
Exemplo n.º 6
0
int main(int argc, char* argv[])
{
	printf("main:tid:%d\n", CurrentThread::tid());

	EventLoopThread loopThread;
	EventLoop* loop = loopThread.startLoop();


	loop->runInLoop(runInThread);

	sleep(1);

	loop->runAfter(2, runInThread);

	loop->quit();

	printf("exit main\n");
	
}
Exemplo n.º 7
0
void EventLoopThreadPool::start(const ThreadInitCallback& cb)
{
    assert(!started_);
    baseLoop_->assertInLoopThread();

    started_ = true;

    for (int i = 0; i < numThreads_; i++)
    {
        EventLoopThread* t = new EventLoopThread(cb);
        threads_.push_back(t);
        loops_.push_back(t->startLoop());
    }

    if (numThreads_ == 0 && cb)
    {
        cb(baseLoop_);
    }
}