void kvp_frame_set_frame_nc(KvpFrame * frame, const char * path, KvpFrame *fr) { KvpValue *value; value = kvp_value_new_frame_nc (fr); frame = kvp_frame_set_value_nc (frame, path, value); if (!frame) kvp_value_delete (value); }
void kvp_frame_set_guid(KvpFrame * frame, const char * path, const GncGUID *guid) { KvpValue *value; value = kvp_value_new_guid (guid); frame = kvp_frame_set_value_nc (frame, path, value); if (!frame) kvp_value_delete (value); }
void kvp_frame_set_timespec(KvpFrame * frame, const char * path, Timespec ts) { KvpValue *value; value = kvp_value_new_timespec (ts); frame = kvp_frame_set_value_nc (frame, path, value); if (!frame) kvp_value_delete (value); }
void kvp_frame_set_numeric(KvpFrame * frame, const char * path, gnc_numeric nval) { KvpValue *value; value = kvp_value_new_gnc_numeric (nval); frame = kvp_frame_set_value_nc (frame, path, value); if (!frame) kvp_value_delete (value); }
void kvp_frame_set_double(KvpFrame * frame, const char * path, double dval) { KvpValue *value; value = kvp_value_new_double (dval); frame = kvp_frame_set_value_nc (frame, path, value); if (!frame) kvp_value_delete (value); }
void kvp_frame_set_gint64(KvpFrame * frame, const char * path, gint64 ival) { KvpValue *value; value = kvp_value_new_gint64 (ival); frame = kvp_frame_set_value_nc (frame, path, value); if (!frame) kvp_value_delete (value); }
static void set_slot_from_value( slot_info_t *pInfo, KvpValue *pValue) { g_return_if_fail( pInfo != NULL ); g_return_if_fail( pValue != NULL ); switch ( pInfo->context) { case FRAME: { gchar *key = get_key_from_path( pInfo->path ); kvp_frame_set_value_nc( pInfo->pKvpFrame, key, pValue ); g_free( key ); break; } case LIST: { pInfo->pList = g_list_append(pInfo->pList, pValue); break; } case NONE: default: { gchar *key = get_key_from_path( pInfo->path ); gchar *path = get_path_from_path( pInfo->path ); KvpFrame* frame = pInfo->pKvpFrame; if ( path ) { frame = kvp_frame_get_frame_slash( frame, path ); g_free( path ); } kvp_frame_set_value_nc( frame, key, pValue ); g_free( key ); break; } } }
static KvpFrame * kvp_frame_add_value_nc(KvpFrame * frame, const char * path, KvpValue *value) { char *key = NULL; KvpValue *oldvalue; KvpFrame* orig_frame = frame; frame = (KvpFrame *) get_trailer_or_null (frame, path, &key); oldvalue = kvp_frame_get_slot (frame, key); ENTER ("old frame=%s", kvp_frame_to_string(frame)); if (oldvalue) { /* If already a glist here, just append */ if (KVP_TYPE_GLIST == oldvalue->type) { GList * vlist = oldvalue->value.list; vlist = g_list_append (vlist, value); oldvalue->value.list = vlist; } else /* If some other value, convert it to a glist */ { KvpValue *klist; GList *vlist = NULL; vlist = g_list_append (vlist, oldvalue); vlist = g_list_append (vlist, value); klist = kvp_value_new_glist_nc (vlist); kvp_frame_replace_slot_nc (frame, key, klist); } LEAVE ("new frame=%s", kvp_frame_to_string(frame)); return frame; } /* Hmm, if we are here, the path doesn't exist. We need to * create the path, add the value to it. */ frame = orig_frame; frame = kvp_frame_set_value_nc (frame, path, value); LEAVE ("new frame=%s", kvp_frame_to_string(frame)); return frame; }
void kvp_frame_set_gvalue (KvpFrame *frame, const gchar *key, const GValue *value) { kvp_frame_set_value_nc (frame, key, kvp_value_from_gvalue (value)); }