1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
#include <asn.h>
#include <objegkludge.h>
/* allows asncode-generated Entrezgene object loaders to use hand-coded Dbtag reader/writer */
/**************************************************
*
* EGDbtagNew()
*
**************************************************/
NLM_EXTERN
EGDbtagPtr LIBCALL
EGDbtagNew(void)
{
EGDbtagPtr ptr = MemNew((size_t) sizeof(EGDbtag));
return ptr;
}
/**************************************************
*
* EGDbtagFree()
*
**************************************************/
NLM_EXTERN
EGDbtagPtr LIBCALL
EGDbtagFree(EGDbtagPtr ptr)
{
if(ptr == NULL) {
return NULL;
}
MemFree(ptr -> db);
ObjectIdFree(ptr -> tag);
return MemFree(ptr);
}
/**************************************************
*
* EGDbtagAsnRead()
*
**************************************************/
NLM_EXTERN
EGDbtagPtr LIBCALL
EGDbtagAsnRead(AsnIoPtr aip, AsnTypePtr orig)
{
DbtagPtr dbt;
EGDbtagPtr ptr;
if (aip == NULL) return NULL;
dbt = DbtagAsnRead (aip, orig);
if (dbt == NULL) return NULL;
ptr = EGDbtagNew();
if (ptr == NULL) return NULL;
ptr->db = dbt->db;
ptr->tag = dbt->tag;
MemFree (dbt);
return ptr;
}
/**************************************************
*
* EGDbtagAsnWrite()
*
**************************************************/
NLM_EXTERN Boolean LIBCALL
EGDbtagAsnWrite(EGDbtagPtr ptr, AsnIoPtr aip, AsnTypePtr orig)
{
DbtagPtr dbt;
Boolean retval = FALSE;
if (aip == NULL || ptr == NULL) return FALSE;
dbt = DbtagNew ();
if (dbt == NULL) return FALSE;
dbt->db = ptr->db;
dbt->tag = ptr->tag;
retval = DbtagAsnWrite (dbt, aip, orig);
MemFree (dbt);
return retval;
}
|