Exemple #1
0
void NumericalEntry::set_value (double value)
{
	if (abs(value - _adjustment->get_value()) > EPS) {
		_adjustment->set_value(value);
	} else {
		//gint return_val = FALSE;
		//g_signal_emit (spin_button, spinbutton_signals[OUTPUT], 0, &return_val);
		//if (return_val == FALSE)
		default_output();
    }
}
static int
read_container(char* contname)
{
    struct stat sb;
    int	 fd, num_exts, ret = 0, flags = 0;

    if (ram_drive)
	flags = O_RDONLY;
    else
	flags =  O_RDONLY | O_DIRECT;

    fd = open(contname, flags);
    if (fd < 0) {
	printf("open error: %d\n", errno);
	exit(1);
    }

    if (print_temp || print_content_len || print_for_cliweb) {
	attr_hash = g_hash_table_new(g_str_hash, g_str_equal);
	if (read_attributes(contname)) {
	    ret = 0;
	    goto exit;
	}
    }

    if (stat(contname, &sb) < 0) {
	fprintf(stderr, "stat error: %d\n", errno);
	exit(1);
    }

    /* If the container file is empty, return now */
    if (!sb.st_size)
	return ret;

    num_exts = (sb.st_size - NKN_CONTAINER_HEADER_SZ) / DEV_BSIZE;
    if (print_one_entry_per) {
	combine_uri_segments(fd, contname, num_exts);
    } else if (print_compact_output == 0)
	default_output(fd, contname, num_exts);
    else
	compact_output(fd, contname, num_exts);

 exit:
    if (attr_hash) {
	g_hash_table_foreach(attr_hash, free_an, NULL);
	g_hash_table_destroy(attr_hash);
	attr_hash = NULL;
    }
    close(fd);
    return ret;
}	/* read_container */
Exemple #3
0
void NumericalEntry::value_changed()
{
	// bool return_val = false;
	//g_signal_emit (spin_button, spinbutton_signals[OUTPUT], 0, &return_val);
	// if (!return_val)

	default_output();

	//g_signal_emit (spin_button, spinbutton_signals[VALUE_CHANGED], 0);

	queue_draw();

	g_object_notify(G_OBJECT(this), "value");
}
Exemple #4
0
void NumericalEntry::update()
{
	// get value as double
	string str = get_text();
	stringstream s(get_text());
	double value;
	bool is_valid = s >> value;

	if (is_valid) {
		// restrict value between lower and upper limits
		value = max(_adjustment->get_lower(), min(_adjustment->get_upper(), value));
		set_value(value);
	} else {
		// revert to the previous text
		default_output();
	}

	queue_draw();
}
Exemple #5
0
static int announce(const char *app,
                    const char *version,
                    const char *release,
                    orcm_pnp_announce_fn_t cbfunc)
{
    int ret;
    opal_buffer_t buf;
    orcm_pnp_channel_t chan;

    /* bozo check */
    if (NULL == app || NULL == version || NULL == release) {
        ORTE_ERROR_LOG(ORCM_ERR_BAD_PARAM);
        return ORCM_ERR_BAD_PARAM;
    }
    
    if (!orcm_pnp_base.comm_enabled) {
        return ORCM_ERR_COMM_DISABLED;
    }

    /* protect against threading */
    ORTE_ACQUIRE_THREAD(&local_thread);
    
    if (NULL != orcm_pnp_base.my_string_id) {
        /* must have been called before */
        OPAL_OUTPUT_VERBOSE((2, orcm_pnp_base.output,
                             "%s pnp:default:announce called before",
                             ORTE_NAME_PRINT(ORTE_PROC_MY_NAME)));
        ORTE_RELEASE_THREAD(&local_thread);
        return ORCM_SUCCESS;
    }
    
    OPAL_OUTPUT_VERBOSE((2, orcm_pnp_base.output,
                         "%s pnp:default:announce app %s version %s release %s",
                         ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
                         app, version, release));
    
    /* retain a local record of my info - this enables communication
     * by setting my_string_id != NULL
     */
    ORCM_CREATE_STRING_ID(&orcm_pnp_base.my_string_id, app, version, release);
    
    /* retain the callback function */
    orcm_pnp_base.my_announce_cbfunc = cbfunc;
    
    /* get a triplet object for myself - creates
     * it if one doesn't already exist
     */
    orcm_pnp_base.my_triplet = orcm_get_triplet(app, version, release, true);
    /* get my group object */
    orcm_pnp_base.my_group = orcm_get_triplet_group(orcm_pnp_base.my_triplet, ORTE_PROC_MY_NAME->jobid, true);
    orcm_pnp_base.my_group->uid = orcm_pnp_base.my_uid;
    orcm_pnp_base.my_group->input = orcm_pnp_base.my_input_channel->channel;
    orcm_pnp_base.my_group->output = orcm_pnp_base.my_output_channel->channel;

    /* check for pending recvs for these channels - this will copy
     * recvs that were pre-posted on the triplet to the channel
     * array
     */
    orcm_pnp_base_check_pending_recvs(orcm_pnp_base.my_triplet,
                                      orcm_pnp_base.my_group);

    /* release the triplet as we no longer require it */
    ORTE_RELEASE_THREAD(&orcm_pnp_base.my_triplet->ctl);

    /* no need to hold the lock any further */
    ORTE_RELEASE_THREAD(&local_thread);
    
    /* assemble the announcement message */
    OBJ_CONSTRUCT(&buf, opal_buffer_t);
    
    /* pack the common elements */
    if (ORCM_SUCCESS != (ret = orcm_pnp_base_pack_announcement(&buf, ORTE_NAME_INVALID))) {
        ORTE_ERROR_LOG(ret);
        OBJ_DESTRUCT(&buf);
        return ret;
    }
    
    /* select the channel */
    if (ORCM_PROC_IS_APP) {
        chan = ORTE_RMCAST_APP_PUBLIC_CHANNEL;
    } else {
        chan = ORTE_RMCAST_SYS_CHANNEL;
    }
    
    /* send it */
    if (ORCM_SUCCESS != (ret = default_output(chan, NULL,
                                              ORCM_PNP_TAG_ANNOUNCE,
                                              NULL, 0, &buf))) {
        ORTE_ERROR_LOG(ret);
    }
    
    /* cleanup */
    OBJ_DESTRUCT(&buf);
    
    return ret;
}