From: Aleš Křenek Date: Fri, 26 Aug 2005 14:22:08 +0000 (+0000) Subject: glite_jp_attrval_copy() X-Git-Tag: gridsite-core_R_1_1_11~51 X-Git-Url: http://scientific.zcu.cz/git/?a=commitdiff_plain;h=5b9b2e32972c1e848d1cae4dd8b6ed901cf71ec6;p=jra1mw.git glite_jp_attrval_copy() --- diff --git a/org.glite.jp.common/interface/attr.h b/org.glite.jp.common/interface/attr.h index 0856963..2e371d8 100644 --- a/org.glite.jp.common/interface/attr.h +++ b/org.glite.jp.common/interface/attr.h @@ -5,6 +5,7 @@ #define GLITE_JP_ATTR_OWNER GLITE_JP_SYSTEM_NS ":owner" void glite_jp_attrval_free(glite_jp_attrval_t *,int); +void glite_jp_attrval_copy(glite_jp_attrval_t *,const glite_jp_attrval_t *); /* Search through registered type plugins and call appropriate plugin method. * See type_plugin.h for detailed description. @@ -21,4 +22,5 @@ const char *glite_jp_attrval_db_type_index(glite_jp_context_t ctx,const char *at + #endif diff --git a/org.glite.jp.common/src/attr.c b/org.glite.jp.common/src/attr.c index a745fdc..c8f6ff3 100644 --- a/org.glite.jp.common/src/attr.c +++ b/org.glite.jp.common/src/attr.c @@ -17,6 +17,22 @@ void glite_jp_attrval_free(glite_jp_attrval_t *a,int f) if (f) free(a); } +void glite_jp_attrval_copy(glite_jp_attrval_t *dst,const glite_jp_attrval_t *src) +{ + dst->name = strdup(src->name); + dst->origin = src->origin; + dst->size = src->size; + dst->timestamp = src->timestamp; + dst->origin_detail = src->origin_detail ? + strdup(src->origin_detail) : NULL; + if (dst->binary = src->binary) { + dst->value = malloc(src->size); + memcpy(dst->value,src->value,src->size); + } + else dst->value = strdup(src->value); +} + + #define min(x,y) ((x) > (y) ? (y) : (x)) static int fb_cmp(void *ctx,const glite_jp_attrval_t *a,const glite_jp_attrval_t *b,int *result)