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 }