예제 #1
0
real_core::real_core(const config & conf)
  :
    config_(conf),

    instrumentation_(conf),

    executor_pool_(instrumentation_, conf),

    main_loop_(make_main_async_loop()),

    scheduler_(new real_scheduler()),

    externals_(new real_external(conf, instrumentation_)),

    streams_(new streams(conf, instrumentation_)),

    pubsub_(new pub_sub()),

    index_(new real_index(*pubsub_, [=](e_t e) { streams_->push_event(e); },
                          conf.index_expire_interval, *scheduler_,
                          instrumentation_, detach_thread)),

    tcp_server_(init_tcp_server(conf, *main_loop_, *streams_,
                executor_pool_, instrumentation_)),

    udp_server_(init_udp_server(conf, streams_)),

    ws_server_(init_ws_server(conf, *main_loop_, *pubsub_, *index_))
{

  if (conf.enable_internal_metrics) {
    start_instrumentation(*scheduler_, instrumentation_, *streams_);
  }

}
예제 #2
0
int start_mock_dvr(smts_tcp_server_t *tcp_server, uv_loop_t *loop, int port)
{
	int r = 0;
	r = init_tcp_server(tcp_server, loop, port);
	r = start_tcp_server(tcp_server, NULL, on_mock_dvr_connect_cb);
	CL_INFO("start mock dvr on port:%d.\n", port);
	return r;
}