static void thread_manager_get_property(GObject *object, guint property_id, GValue *value, GParamSpec *pspec) { ThreadManager *self = THREAD_MANAGER (object); switch (property_id) { case PROP_THREAD_STATUS: g_value_set_string (value, self->status); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } }
static void thread_manager_set_property(GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { ThreadManager *self = THREAD_MANAGER (object); switch (property_id) { case PROP_THREAD_STATUS: //g_free (self->priv->status); self->status = g_value_dup_string (value); g_print ("status: %s\n", self->status); g_signal_emit_by_name(self,"status"); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } }
TEST(Libev, Webscoket) { ServerWebHandler hand(kHinf); common::libev::tcp::TcpServer* serv = new common::libev::tcp::TcpServer(g_hs, false, &hand); common::ErrnoError err = serv->Bind(true); ASSERT_FALSE(err); err = serv->Listen(5); ASSERT_FALSE(err); auto tp = THREAD_MANAGER()->CreateThread(&ExitWebServer, serv); GTEST_ASSERT_EQ(tp->GetHandle(), common::threads::invalid_thread_handle()); bool res_start = tp->Start(); ASSERT_TRUE(res_start); int res_exec = serv->Exec(); ASSERT_TRUE(res_exec == EXIT_SUCCESS); tp->Join(); delete serv; }
ILoopThreadController::ILoopThreadController() : ILoopController(), loop_thread_() { loop_thread_ = THREAD_MANAGER()->createThread(&ILoopController::exec, this); }