/** Start execution of MPF test suite scenario */ static void mpf_suite_on_start_complete(apt_task_t *task) { mpf_suite_session_t *session; apt_task_t *consumer_task; mpf_suite_engine_t *suite_engine; mpf_task_msg_t *task_msg = NULL; void *descriptor; apr_pool_t *pool = NULL; consumer_task = apt_task_object_get(task); suite_engine = apt_task_object_get(consumer_task); apt_log(APT_LOG_MARK,APT_PRIO_INFO,"On MPF Suite Start"); pool = apt_pool_create(); session = apr_palloc(pool,sizeof(mpf_suite_session_t)); session->pool = pool; session->context = NULL; session->termination1 = NULL; session->termination2 = NULL; session->rtp_mode = TRUE; apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Create MPF Context"); session->context = mpf_engine_context_create(suite_engine->engine,session,2,pool); apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Create Termination [1]"); session->termination1 = mpf_termination_create(suite_engine->file_termination_factory,session,session->pool); apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Add Termination [1]"); descriptor = mpf_file_reader_descriptor_create(session); mpf_engine_termination_message_add( suite_engine->engine, MPF_ADD_TERMINATION,session->context,session->termination1,descriptor, &task_msg); apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Create Termination [2]"); if(session->rtp_mode == TRUE) { session->termination2 = mpf_termination_create(suite_engine->rtp_termination_factory,session,session->pool); } else { session->termination2 = mpf_termination_create(suite_engine->file_termination_factory,session,session->pool); } apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Add Termination [2]"); descriptor = NULL; if(session->rtp_mode == TRUE) { descriptor = mpf_rtp_local_descriptor_create(session); } else { descriptor = mpf_file_writer_descriptor_create(session); } mpf_engine_termination_message_add( suite_engine->engine, MPF_ADD_TERMINATION,session->context,session->termination2,descriptor, &task_msg); mpf_engine_message_send(suite_engine->engine,&task_msg); }
static mpf_suite_session_t* mpf_suite_tx_session_create(const mpf_suite_agent_t *agent) { mpf_task_msg_t *task_msg = NULL; void *descriptor; apr_pool_t *pool; mpf_suite_session_t *session; pool = apt_pool_create(); session = apr_palloc(pool,sizeof(mpf_suite_session_t)); session->pool = pool; session->context = NULL; session->file_termination = NULL; session->rtp_termination = NULL; apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Create MPF Context [Tx]"); session->context = mpf_engine_context_create(agent->engine,NULL,session,2,pool); apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Create Termination [File Reader]"); session->file_termination = mpf_termination_create(agent->file_termination_factory,session,session->pool); apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Add Termination [File Reader]"); descriptor = mpf_file_reader_descriptor_create(agent,session); mpf_engine_termination_message_add( agent->engine, MPF_ADD_TERMINATION,session->context,session->file_termination,descriptor, &task_msg); apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Create Termination [RTP Tx]"); session->rtp_termination = mpf_termination_create(agent->rtp_termination_factory,session,session->pool); apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Add Termination [RTP Tx]"); descriptor = mpf_rtp_tx_local_descriptor_create(agent,session); mpf_engine_termination_message_add( agent->engine, MPF_ADD_TERMINATION,session->context,session->rtp_termination,descriptor, &task_msg); mpf_engine_message_send(agent->engine,&task_msg); return session; }
/** Start execution of MPF test suite scenario */ static void mpf_suite_on_start_complete(apt_task_t *task) { mpf_suite_session_t *session; apt_task_t *consumer_task; mpf_suite_engine_t *suite_engine; apt_task_msg_t *msg; mpf_message_t *mpf_message; apr_pool_t *pool = NULL; consumer_task = apt_task_object_get(task); suite_engine = apt_task_object_get(consumer_task); apt_log(APT_PRIO_INFO,"On MPF Suite Start"); apr_pool_create(&pool,NULL); session = apr_palloc(pool,sizeof(mpf_suite_session_t)); session->pool = pool; session->context = NULL; session->termination1 = NULL; session->termination2 = NULL; session->rtp_mode = TRUE; apt_log(APT_PRIO_INFO,"Create MPF Context"); session->context = mpf_context_create(session,2,pool); apt_log(APT_PRIO_INFO,"Create Termination [1]"); session->termination1 = mpf_termination_create(suite_engine->file_termination_factory,session,session->pool); apt_log(APT_PRIO_INFO,"Add Termination [1]"); msg = apt_task_msg_get(task); msg->type = TASK_MSG_USER; mpf_message = (mpf_message_t*) msg->data; mpf_message->message_type = MPF_MESSAGE_TYPE_REQUEST; mpf_message->command_id = MPF_COMMAND_ADD; mpf_message->context = session->context; mpf_message->termination = session->termination1; mpf_message->descriptor = mpf_file_reader_descriptor_create(session); apt_task_msg_signal(suite_engine->engine_task,msg); apt_log(APT_PRIO_INFO,"Create Termination [2]"); if(session->rtp_mode == TRUE) { session->termination2 = mpf_termination_create(suite_engine->rtp_termination_factory,session,session->pool); } else { session->termination2 = mpf_termination_create(suite_engine->file_termination_factory,session,session->pool); } apt_log(APT_PRIO_INFO,"Add Termination [2]"); msg = apt_task_msg_get(task); msg->type = TASK_MSG_USER; mpf_message = (mpf_message_t*) msg->data; mpf_message->message_type = MPF_MESSAGE_TYPE_REQUEST; mpf_message->command_id = MPF_COMMAND_ADD; mpf_message->context = session->context; mpf_message->termination = session->termination2; if(session->rtp_mode == TRUE) { mpf_message->descriptor = mpf_rtp_local_descriptor_create(session); } else { mpf_message->descriptor = mpf_file_writer_descriptor_create(session); } apt_task_msg_signal(suite_engine->engine_task,msg); }