github.com/orofarne/hammy@v0.0.0-20130409105742-374fadfd6ecb/worker/worker.hh (about)

     1  #pragma once
     2  
     3  #include "fwriter.hh"
     4  #include "eval.hh"
     5  
     6  #include <msgpack.hpp>
     7  
     8  namespace hammy {
     9  
    10  class Worker {
    11  	public:
    12  		Worker(int in_sock, int out_sock);
    13  		~Worker();
    14  
    15  		void run();
    16  
    17  	private:
    18  		typedef std::auto_ptr<msgpack::zone> auto_zone;
    19  
    20  		void socket_readable();
    21  		void process_message(msgpack::object msg, auto_zone& life);
    22  		void read_state(msgpack::object *obj);
    23  		void write_state();
    24  		void write_cmdbuf();
    25  		void process_data(msgpack::object *obj);
    26  
    27  	private:
    28  		int m_in_sock;
    29  		int m_out_sock;
    30  		msgpack::unpacker m_unpack;
    31  		FWriter fw;
    32  		msgpack::packer<FWriter> m_pack;
    33  		MozJSEval m_evl;
    34  
    35  		// Request
    36  		State m_state;
    37  };
    38  
    39  }