Exemplo n.º 1
0
int main(int argc, char *argv[])
{
    NNTI_result_t rc;
    selfsend_args *ssa;
    char server_url[NNTI_URL_LEN];

    logger_init(LOG_ERROR, NULL);

    pthread_barrier_init(&barrier2, NULL, 2);
    pthread_barrier_init(&barrier3, NULL, 3);

    rc=NNTI_init(NNTI_DEFAULT_TRANSPORT, NULL, &trans_hdl);
    rc=NNTI_get_url(&trans_hdl, server_url, NNTI_URL_LEN);

    launch_wait_threads();

    pthread_barrier_wait(&barrier3);

    rc=NNTI_connect(
            &trans_hdl,
            server_url,
            5000,
            &server_hdl);

    pthread_barrier_wait(&barrier2);

    rc=NNTI_alloc(&trans_hdl, NNTI_REQUEST_BUFFER_SIZE, 1, NNTI_SEND_SRC, &send_mr);

    ssa=(selfsend_args *)NNTI_BUFFER_C_POINTER(&send_mr);
    ssa->data.int_val   =10;
    ssa->data.float_val =10.0;
    ssa->data.double_val=10.0;
    ssa->chksum=calc_checksum((const char *)&ssa->data, sizeof(data_t));

    rc=NNTI_send(&server_hdl, &send_mr, &recv_mr, &send_wr);
    rc=NNTI_wait(&send_wr, 5000, &send_status);

    rc=NNTI_send(&server_hdl, &send_mr, NULL, &send_wr);
    rc=NNTI_wait(&send_wr, 5000, &send_status);

    pthread_barrier_wait(&barrier3);

    NNTI_free(&send_mr);

    join_wait_threads();

    if (success)
        std::cout << "\nEnd Result: TEST PASSED" << std::endl;
    else
        std::cout << "\nEnd Result: TEST FAILED" << std::endl;

    return (success ? 0 : 1 );
}
Exemplo n.º 2
0
static NNTI_result_t destroy_buffer(NNTI_buffer_t **buffer)
{
    NNTI_result_t nnti_rc;
    char *b;

    log_debug(bq_debug_level, "enter");

    b=NNTI_BUFFER_C_POINTER(*buffer);
    nnti_rc=NNTI_unregister_memory(*buffer);
    if (nnti_rc != NNTI_OK) {
        log_error(bq_debug_level, "failed unregistering queue buffer: %d", nnti_rc);
    }
    free(*buffer);
    *buffer=NULL;
    free(b);

    log_debug(bq_debug_level, "exit");

    return(nnti_rc);
}