Example #1
0
static GPFsProp *
func_prop_get (GPFsBag *b, GPFsErr *e, unsigned int n, void *ud)
{
	GPFsVal v;
	GPFsProp *i = NULL;

	switch (n) {
	case 0:
		gpfs_val_init (&v);
		v.t = GPFS_VAL_TYPE_UINT;
		v.v.v_uint = sizeof ("Hello world!");
		i = gpfs_prop_new (v);
		gpfs_obj_set_id (GPFS_OBJ (i), 0);
		gpfs_obj_set_name_impl (GPFS_OBJ (i), _("Size"));
		gpfs_obj_set_descr_impl (GPFS_OBJ (i),
			_("The size of the file"));
		gpfs_val_clear (&v);
		break;
	case 1:
		gpfs_val_init (&v);
		v.t = GPFS_VAL_TYPE_STRING;
		v.v.v_string = strdup (_("Some interface"));
		i = gpfs_prop_new (v);
		gpfs_obj_set_id (GPFS_OBJ (i), 1);
		gpfs_obj_set_name_impl (GPFS_OBJ (i), _("Description"));
		gpfs_obj_set_descr_impl (GPFS_OBJ (i), 
			_("The description of the interface"));
		gpfs_val_clear (&v);
		break;
	case 2:
		gpfs_val_init (&v);
		v.t = GPFS_VAL_TYPE_STRING;
		v.v.v_string = strdup ("image/png");
		i = gpfs_prop_new (v);
		gpfs_obj_set_id (GPFS_OBJ (i), 2);
		gpfs_obj_set_name_impl (GPFS_OBJ (i), _("Mime type"));
		gpfs_obj_set_descr_impl (GPFS_OBJ (i),
				_("The mime type of the file"));
		gpfs_val_clear (&v);
		i->t = GPFS_ALT_TYPE_VALS;
		i->alt.vals.vals_count = 2;
		i->alt.vals.vals = malloc (sizeof (GPFsVal) *
					   i->alt.vals.vals_count);
		i->alt.vals.vals[0].t = GPFS_VAL_TYPE_STRING;
		i->alt.vals.vals[0].v.v_string = strdup ("image/png");
		i->alt.vals.vals[1].t = GPFS_VAL_TYPE_STRING;
		i->alt.vals.vals[1].v.v_string = strdup ("image/jpeg");
		break;
	default:
		gpfs_err_set (e, GPFS_ERR_TYPE_BAD_PARAMETERS,
			      _("Unknown property."));
	}

	return i;
}
Example #2
0
char *
gpfs_folder_get (GPFs *fs, GPFsErr *e, const char *folder, unsigned int n)
{
	CNN (fs, e);

	if (!fs->f_folder_get) {
		gpfs_err_set (e, GPFS_ERR_TYPE_NOT_SUPPORTED,
			_("This filesystem doesn't support getting folders."));
		return 0;
	}

	return fs->f_folder_get (fs, e, folder, n, fs->f_data_folder_get);
}
Example #3
0
void
gpfs_if_read (GPFsIf *i, GPFsErr *e, GPFsIfFuncReadCb f, void *d)
{
	CNV (i, e);

	if (!i->f_read) {
		gpfs_err_set (e, GPFS_ERR_TYPE_NOT_SUPPORTED,
			    _("This interface doesn't support reading."));
		return;
	}

	i->f_read (i, e, f, d, i->f_data_read);
}
Example #4
0
unsigned int
gpfs_file_count (GPFs *fs, GPFsErr *e, const char *folder)
{
	CN0 (fs, e);

	if (!fs->f_file_count) {
		gpfs_err_set (e, GPFS_ERR_TYPE_NOT_SUPPORTED,
			_("This filesystem doesn't support counting files."));
		return 0;
	}

	return fs->f_file_count (fs, e, folder, fs->f_data_file_count);
}