3
#define NLM_GENERATED_CODE_PROTO
5
#include <objinsdseq.h>
7
static Boolean loaded = FALSE;
9
#include <asninsdseq.h>
11
#ifndef NLM_EXTERN_LOADS
12
#define NLM_EXTERN_LOADS {}
15
NLM_EXTERN Boolean LIBCALL
16
objinsdseqAsnLoad(void)
32
/**************************************************
33
* Generated object loaders for Module INSD-INSDSeq
34
* Generated using ASNCODE Revision: 6.14 at Jun 1, 2004 11:01 AM
36
**************************************************/
39
/**************************************************
43
**************************************************/
48
INSDSeqPtr ptr = MemNew((size_t) sizeof(INSDSeq));
55
/**************************************************
59
**************************************************/
62
INSDSeqFree(INSDSeqPtr ptr)
68
MemFree(ptr -> locus);
69
MemFree(ptr -> strandedness);
70
MemFree(ptr -> moltype);
71
MemFree(ptr -> topology);
72
MemFree(ptr -> division);
73
MemFree(ptr -> update_date);
74
MemFree(ptr -> create_date);
75
MemFree(ptr -> update_release);
76
MemFree(ptr -> create_release);
77
MemFree(ptr -> definition);
78
MemFree(ptr -> primary_accession);
79
MemFree(ptr -> entry_version);
80
MemFree(ptr -> accession_version);
81
AsnGenericBaseSeqOfFree(ptr -> other_seqids ,ASNCODE_PTRVAL_SLOT);
82
AsnGenericBaseSeqOfFree(ptr -> secondary_accessions ,ASNCODE_PTRVAL_SLOT);
83
AsnGenericBaseSeqOfFree(ptr -> keywords ,ASNCODE_PTRVAL_SLOT);
84
MemFree(ptr -> segment);
85
MemFree(ptr -> source);
86
MemFree(ptr -> organism);
87
MemFree(ptr -> taxonomy);
88
AsnGenericUserSeqOfFree(ptr -> references, (AsnOptFreeFunc) INSDReferenceFree);
89
MemFree(ptr -> comment);
90
MemFree(ptr -> primary);
91
MemFree(ptr -> source_db);
92
MemFree(ptr -> database_reference);
93
AsnGenericUserSeqOfFree(ptr -> feature_table, (AsnOptFreeFunc) INSDFeatureFree);
94
MemFree(ptr -> sequence);
95
MemFree(ptr -> contig);
100
/**************************************************
104
**************************************************/
107
INSDSeqAsnRead(AsnIoPtr aip, AsnTypePtr orig)
111
Boolean isError = FALSE;
117
if (! objinsdseqAsnLoad()) {
126
if (orig == NULL) { /* INSDSeq ::= (self contained) */
127
atp = AsnReadId(aip, amp, INSDSEQ);
129
atp = AsnLinkType(orig, INSDSEQ);
131
/* link in local tree */
140
if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */
144
atp = AsnReadId(aip,amp, atp);
147
if (atp == INSDSEQ_locus) {
148
if ( AsnReadVal(aip, atp, &av) <= 0) {
151
ptr -> locus = av.ptrvalue;
152
atp = AsnReadId(aip,amp, atp);
154
if (atp == INSDSEQ_length) {
155
if ( AsnReadVal(aip, atp, &av) <= 0) {
158
ptr -> length = av.intvalue;
159
atp = AsnReadId(aip,amp, atp);
161
if (atp == INSDSEQ_strandedness) {
162
if ( AsnReadVal(aip, atp, &av) <= 0) {
165
ptr -> strandedness = av.ptrvalue;
166
atp = AsnReadId(aip,amp, atp);
168
if (atp == INSDSEQ_moltype) {
169
if ( AsnReadVal(aip, atp, &av) <= 0) {
172
ptr -> moltype = av.ptrvalue;
173
atp = AsnReadId(aip,amp, atp);
175
if (atp == INSDSEQ_topology) {
176
if ( AsnReadVal(aip, atp, &av) <= 0) {
179
ptr -> topology = av.ptrvalue;
180
atp = AsnReadId(aip,amp, atp);
182
if (atp == INSDSEQ_division) {
183
if ( AsnReadVal(aip, atp, &av) <= 0) {
186
ptr -> division = av.ptrvalue;
187
atp = AsnReadId(aip,amp, atp);
189
if (atp == INSDSEQ_update_date) {
190
if ( AsnReadVal(aip, atp, &av) <= 0) {
193
ptr -> update_date = av.ptrvalue;
194
atp = AsnReadId(aip,amp, atp);
196
if (atp == INSDSEQ_create_date) {
197
if ( AsnReadVal(aip, atp, &av) <= 0) {
200
ptr -> create_date = av.ptrvalue;
201
atp = AsnReadId(aip,amp, atp);
203
if (atp == INSDSEQ_update_release) {
204
if ( AsnReadVal(aip, atp, &av) <= 0) {
207
ptr -> update_release = av.ptrvalue;
208
atp = AsnReadId(aip,amp, atp);
210
if (atp == INSDSEQ_create_release) {
211
if ( AsnReadVal(aip, atp, &av) <= 0) {
214
ptr -> create_release = av.ptrvalue;
215
atp = AsnReadId(aip,amp, atp);
217
if (atp == INSDSEQ_definition) {
218
if ( AsnReadVal(aip, atp, &av) <= 0) {
221
ptr -> definition = av.ptrvalue;
222
atp = AsnReadId(aip,amp, atp);
224
if (atp == INSDSEQ_primary_accession) {
225
if ( AsnReadVal(aip, atp, &av) <= 0) {
228
ptr -> primary_accession = av.ptrvalue;
229
atp = AsnReadId(aip,amp, atp);
231
if (atp == INSDSEQ_entry_version) {
232
if ( AsnReadVal(aip, atp, &av) <= 0) {
235
ptr -> entry_version = av.ptrvalue;
236
atp = AsnReadId(aip,amp, atp);
238
if (atp == INSDSEQ_accession_version) {
239
if ( AsnReadVal(aip, atp, &av) <= 0) {
242
ptr -> accession_version = av.ptrvalue;
243
atp = AsnReadId(aip,amp, atp);
245
if (atp == INSDSEQ_other_seqids) {
246
ptr -> other_seqids = AsnGenericBaseSeqOfAsnRead(aip, amp, atp, ASNCODE_PTRVAL_SLOT, &isError);
247
if (isError && ptr -> other_seqids == NULL) {
250
atp = AsnReadId(aip,amp, atp);
252
if (atp == INSDSEQ_secondary_accessions) {
253
ptr -> secondary_accessions = AsnGenericBaseSeqOfAsnRead(aip, amp, atp, ASNCODE_PTRVAL_SLOT, &isError);
254
if (isError && ptr -> secondary_accessions == NULL) {
257
atp = AsnReadId(aip,amp, atp);
259
if (atp == INSDSEQ_keywords) {
260
ptr -> keywords = AsnGenericBaseSeqOfAsnRead(aip, amp, atp, ASNCODE_PTRVAL_SLOT, &isError);
261
if (isError && ptr -> keywords == NULL) {
264
atp = AsnReadId(aip,amp, atp);
266
if (atp == INSDSEQ_segment) {
267
if ( AsnReadVal(aip, atp, &av) <= 0) {
270
ptr -> segment = av.ptrvalue;
271
atp = AsnReadId(aip,amp, atp);
273
if (atp == INSDSEQ_source) {
274
if ( AsnReadVal(aip, atp, &av) <= 0) {
277
ptr -> source = av.ptrvalue;
278
atp = AsnReadId(aip,amp, atp);
280
if (atp == INSDSEQ_organism) {
281
if ( AsnReadVal(aip, atp, &av) <= 0) {
284
ptr -> organism = av.ptrvalue;
285
atp = AsnReadId(aip,amp, atp);
287
if (atp == INSDSEQ_taxonomy) {
288
if ( AsnReadVal(aip, atp, &av) <= 0) {
291
ptr -> taxonomy = av.ptrvalue;
292
atp = AsnReadId(aip,amp, atp);
294
if (atp == INSDSEQ_references) {
295
ptr -> references = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) INSDReferenceAsnRead, (AsnOptFreeFunc) INSDReferenceFree);
296
if (isError && ptr -> references == NULL) {
299
atp = AsnReadId(aip,amp, atp);
301
if (atp == INSDSEQ_comment) {
302
if ( AsnReadVal(aip, atp, &av) <= 0) {
305
ptr -> comment = av.ptrvalue;
306
atp = AsnReadId(aip,amp, atp);
308
if (atp == INSDSEQ_primary) {
309
if ( AsnReadVal(aip, atp, &av) <= 0) {
312
ptr -> primary = av.ptrvalue;
313
atp = AsnReadId(aip,amp, atp);
315
if (atp == INSDSEQ_source_db) {
316
if ( AsnReadVal(aip, atp, &av) <= 0) {
319
ptr -> source_db = av.ptrvalue;
320
atp = AsnReadId(aip,amp, atp);
322
if (atp == INSDSEQ_database_reference) {
323
if ( AsnReadVal(aip, atp, &av) <= 0) {
326
ptr -> database_reference = av.ptrvalue;
327
atp = AsnReadId(aip,amp, atp);
329
if (atp == INSDSEQ_feature_table) {
330
ptr -> feature_table = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) INSDFeatureAsnRead, (AsnOptFreeFunc) INSDFeatureFree);
331
if (isError && ptr -> feature_table == NULL) {
334
atp = AsnReadId(aip,amp, atp);
336
if (atp == INSDSEQ_sequence) {
337
if ( AsnReadVal(aip, atp, &av) <= 0) {
340
ptr -> sequence = av.ptrvalue;
341
atp = AsnReadId(aip,amp, atp);
343
if (atp == INSDSEQ_contig) {
344
if ( AsnReadVal(aip, atp, &av) <= 0) {
347
ptr -> contig = av.ptrvalue;
348
atp = AsnReadId(aip,amp, atp);
351
if (AsnReadVal(aip, atp, &av) <= 0) {
357
AsnUnlinkType(orig); /* unlink local tree */
361
aip -> io_failure = TRUE;
362
ptr = INSDSeqFree(ptr);
368
/**************************************************
372
**************************************************/
373
NLM_EXTERN Boolean LIBCALL
374
INSDSeqAsnWrite(INSDSeqPtr ptr, AsnIoPtr aip, AsnTypePtr orig)
378
Boolean retval = FALSE;
382
if (! objinsdseqAsnLoad()) {
391
atp = AsnLinkType(orig, INSDSEQ); /* link local tree */
396
if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; }
397
if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) {
401
if (ptr -> locus != NULL) {
402
av.ptrvalue = ptr -> locus;
403
retval = AsnWrite(aip, INSDSEQ_locus, &av);
405
av.intvalue = ptr -> length;
406
retval = AsnWrite(aip, INSDSEQ_length, &av);
407
if (ptr -> strandedness != NULL) {
408
av.ptrvalue = ptr -> strandedness;
409
retval = AsnWrite(aip, INSDSEQ_strandedness, &av);
411
if (ptr -> moltype != NULL) {
412
av.ptrvalue = ptr -> moltype;
413
retval = AsnWrite(aip, INSDSEQ_moltype, &av);
415
if (ptr -> topology != NULL) {
416
av.ptrvalue = ptr -> topology;
417
retval = AsnWrite(aip, INSDSEQ_topology, &av);
419
if (ptr -> division != NULL) {
420
av.ptrvalue = ptr -> division;
421
retval = AsnWrite(aip, INSDSEQ_division, &av);
423
if (ptr -> update_date != NULL) {
424
av.ptrvalue = ptr -> update_date;
425
retval = AsnWrite(aip, INSDSEQ_update_date, &av);
427
if (ptr -> create_date != NULL) {
428
av.ptrvalue = ptr -> create_date;
429
retval = AsnWrite(aip, INSDSEQ_create_date, &av);
431
if (ptr -> update_release != NULL) {
432
av.ptrvalue = ptr -> update_release;
433
retval = AsnWrite(aip, INSDSEQ_update_release, &av);
435
if (ptr -> create_release != NULL) {
436
av.ptrvalue = ptr -> create_release;
437
retval = AsnWrite(aip, INSDSEQ_create_release, &av);
439
if (ptr -> definition != NULL) {
440
av.ptrvalue = ptr -> definition;
441
retval = AsnWrite(aip, INSDSEQ_definition, &av);
443
if (ptr -> primary_accession != NULL) {
444
av.ptrvalue = ptr -> primary_accession;
445
retval = AsnWrite(aip, INSDSEQ_primary_accession, &av);
447
if (ptr -> entry_version != NULL) {
448
av.ptrvalue = ptr -> entry_version;
449
retval = AsnWrite(aip, INSDSEQ_entry_version, &av);
451
if (ptr -> accession_version != NULL) {
452
av.ptrvalue = ptr -> accession_version;
453
retval = AsnWrite(aip, INSDSEQ_accession_version, &av);
455
retval = AsnGenericBaseSeqOfAsnWrite(ptr -> other_seqids ,ASNCODE_PTRVAL_SLOT, aip, INSDSEQ_other_seqids, INSDSEQ_other_seqids_E);
456
retval = AsnGenericBaseSeqOfAsnWrite(ptr -> secondary_accessions ,ASNCODE_PTRVAL_SLOT, aip, INSDSEQ_secondary_accessions, INSDSEQ_secondary_accessions_E);
457
retval = AsnGenericBaseSeqOfAsnWrite(ptr -> keywords ,ASNCODE_PTRVAL_SLOT, aip, INSDSEQ_keywords, INSDSEQ_keywords_E);
458
if (ptr -> segment != NULL) {
459
av.ptrvalue = ptr -> segment;
460
retval = AsnWrite(aip, INSDSEQ_segment, &av);
462
if (ptr -> source != NULL) {
463
av.ptrvalue = ptr -> source;
464
retval = AsnWrite(aip, INSDSEQ_source, &av);
466
if (ptr -> organism != NULL) {
467
av.ptrvalue = ptr -> organism;
468
retval = AsnWrite(aip, INSDSEQ_organism, &av);
470
if (ptr -> taxonomy != NULL) {
471
av.ptrvalue = ptr -> taxonomy;
472
retval = AsnWrite(aip, INSDSEQ_taxonomy, &av);
474
AsnGenericUserSeqOfAsnWrite(ptr -> references, (AsnWriteFunc) INSDReferenceAsnWrite, aip, INSDSEQ_references, INSDSEQ_references_E);
475
if (ptr -> comment != NULL) {
476
av.ptrvalue = ptr -> comment;
477
retval = AsnWrite(aip, INSDSEQ_comment, &av);
479
if (ptr -> primary != NULL) {
480
av.ptrvalue = ptr -> primary;
481
retval = AsnWrite(aip, INSDSEQ_primary, &av);
483
if (ptr -> source_db != NULL) {
484
av.ptrvalue = ptr -> source_db;
485
retval = AsnWrite(aip, INSDSEQ_source_db, &av);
487
if (ptr -> database_reference != NULL) {
488
av.ptrvalue = ptr -> database_reference;
489
retval = AsnWrite(aip, INSDSEQ_database_reference, &av);
491
AsnGenericUserSeqOfAsnWrite(ptr -> feature_table, (AsnWriteFunc) INSDFeatureAsnWrite, aip, INSDSEQ_feature_table, INSDSEQ_feature_table_E);
492
if (ptr -> sequence != NULL) {
493
av.ptrvalue = ptr -> sequence;
494
retval = AsnWrite(aip, INSDSEQ_sequence, &av);
496
if (ptr -> contig != NULL) {
497
av.ptrvalue = ptr -> contig;
498
retval = AsnWrite(aip, INSDSEQ_contig, &av);
500
if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) {
506
AsnUnlinkType(orig); /* unlink local tree */
512
/**************************************************
516
**************************************************/
518
INSDReferencePtr LIBCALL
519
INSDReferenceNew(void)
521
INSDReferencePtr ptr = MemNew((size_t) sizeof(INSDReference));
528
/**************************************************
530
* INSDReferenceFree()
532
**************************************************/
534
INSDReferencePtr LIBCALL
535
INSDReferenceFree(INSDReferencePtr ptr)
541
MemFree(ptr -> reference);
542
AsnGenericBaseSeqOfFree(ptr -> authors ,ASNCODE_PTRVAL_SLOT);
543
MemFree(ptr -> consortium);
544
MemFree(ptr -> title);
545
MemFree(ptr -> journal);
546
MemFree(ptr -> remark);
551
/**************************************************
553
* INSDReferenceAsnRead()
555
**************************************************/
557
INSDReferencePtr LIBCALL
558
INSDReferenceAsnRead(AsnIoPtr aip, AsnTypePtr orig)
562
Boolean isError = FALSE;
564
INSDReferencePtr ptr;
568
if (! objinsdseqAsnLoad()) {
577
if (orig == NULL) { /* INSDReference ::= (self contained) */
578
atp = AsnReadId(aip, amp, INSDREFERENCE);
580
atp = AsnLinkType(orig, INSDREFERENCE);
582
/* link in local tree */
587
ptr = INSDReferenceNew();
591
if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */
595
atp = AsnReadId(aip,amp, atp);
598
if (atp == INSDREFERENCE_reference) {
599
if ( AsnReadVal(aip, atp, &av) <= 0) {
602
ptr -> reference = av.ptrvalue;
603
atp = AsnReadId(aip,amp, atp);
605
if (atp == INSDREFERENCE_authors) {
606
ptr -> authors = AsnGenericBaseSeqOfAsnRead(aip, amp, atp, ASNCODE_PTRVAL_SLOT, &isError);
607
if (isError && ptr -> authors == NULL) {
610
atp = AsnReadId(aip,amp, atp);
612
if (atp == INSDREFERENCE_consortium) {
613
if ( AsnReadVal(aip, atp, &av) <= 0) {
616
ptr -> consortium = av.ptrvalue;
617
atp = AsnReadId(aip,amp, atp);
619
if (atp == INSDREFERENCE_title) {
620
if ( AsnReadVal(aip, atp, &av) <= 0) {
623
ptr -> title = av.ptrvalue;
624
atp = AsnReadId(aip,amp, atp);
626
if (atp == INSDREFERENCE_journal) {
627
if ( AsnReadVal(aip, atp, &av) <= 0) {
630
ptr -> journal = av.ptrvalue;
631
atp = AsnReadId(aip,amp, atp);
633
if (atp == INSDREFERENCE_medline) {
634
if ( AsnReadVal(aip, atp, &av) <= 0) {
637
ptr -> medline = av.intvalue;
638
ptr -> OBbits__ |= 1<<0;
639
atp = AsnReadId(aip,amp, atp);
641
if (atp == INSDREFERENCE_pubmed) {
642
if ( AsnReadVal(aip, atp, &av) <= 0) {
645
ptr -> pubmed = av.intvalue;
646
ptr -> OBbits__ |= 1<<1;
647
atp = AsnReadId(aip,amp, atp);
649
if (atp == INSDREFERENCE_remark) {
650
if ( AsnReadVal(aip, atp, &av) <= 0) {
653
ptr -> remark = av.ptrvalue;
654
atp = AsnReadId(aip,amp, atp);
657
if (AsnReadVal(aip, atp, &av) <= 0) {
663
AsnUnlinkType(orig); /* unlink local tree */
667
aip -> io_failure = TRUE;
668
ptr = INSDReferenceFree(ptr);
674
/**************************************************
676
* INSDReferenceAsnWrite()
678
**************************************************/
679
NLM_EXTERN Boolean LIBCALL
680
INSDReferenceAsnWrite(INSDReferencePtr ptr, AsnIoPtr aip, AsnTypePtr orig)
684
Boolean retval = FALSE;
688
if (! objinsdseqAsnLoad()) {
697
atp = AsnLinkType(orig, INSDREFERENCE); /* link local tree */
702
if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; }
703
if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) {
707
if (ptr -> reference != NULL) {
708
av.ptrvalue = ptr -> reference;
709
retval = AsnWrite(aip, INSDREFERENCE_reference, &av);
711
retval = AsnGenericBaseSeqOfAsnWrite(ptr -> authors ,ASNCODE_PTRVAL_SLOT, aip, INSDREFERENCE_authors, INSDREFERENCE_authors_E);
712
if (ptr -> consortium != NULL) {
713
av.ptrvalue = ptr -> consortium;
714
retval = AsnWrite(aip, INSDREFERENCE_consortium, &av);
716
if (ptr -> title != NULL) {
717
av.ptrvalue = ptr -> title;
718
retval = AsnWrite(aip, INSDREFERENCE_title, &av);
720
if (ptr -> journal != NULL) {
721
av.ptrvalue = ptr -> journal;
722
retval = AsnWrite(aip, INSDREFERENCE_journal, &av);
724
if (ptr -> medline || (ptr -> OBbits__ & (1<<0) )){ av.intvalue = ptr -> medline;
725
retval = AsnWrite(aip, INSDREFERENCE_medline, &av);
727
if (ptr -> pubmed || (ptr -> OBbits__ & (1<<1) )){ av.intvalue = ptr -> pubmed;
728
retval = AsnWrite(aip, INSDREFERENCE_pubmed, &av);
730
if (ptr -> remark != NULL) {
731
av.ptrvalue = ptr -> remark;
732
retval = AsnWrite(aip, INSDREFERENCE_remark, &av);
734
if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) {
740
AsnUnlinkType(orig); /* unlink local tree */
746
/**************************************************
750
**************************************************/
752
INSDFeaturePtr LIBCALL
755
INSDFeaturePtr ptr = MemNew((size_t) sizeof(INSDFeature));
762
/**************************************************
766
**************************************************/
768
INSDFeaturePtr LIBCALL
769
INSDFeatureFree(INSDFeaturePtr ptr)
776
MemFree(ptr -> location);
777
AsnGenericUserSeqOfFree(ptr -> intervals, (AsnOptFreeFunc) INSDIntervalFree);
778
AsnGenericUserSeqOfFree(ptr -> quals, (AsnOptFreeFunc) INSDQualifierFree);
783
/**************************************************
785
* INSDFeatureAsnRead()
787
**************************************************/
789
INSDFeaturePtr LIBCALL
790
INSDFeatureAsnRead(AsnIoPtr aip, AsnTypePtr orig)
794
Boolean isError = FALSE;
800
if (! objinsdseqAsnLoad()) {
809
if (orig == NULL) { /* INSDFeature ::= (self contained) */
810
atp = AsnReadId(aip, amp, INSDFEATURE);
812
atp = AsnLinkType(orig, INSDFEATURE);
814
/* link in local tree */
819
ptr = INSDFeatureNew();
823
if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */
827
atp = AsnReadId(aip,amp, atp);
830
if (atp == INSDFEATURE_key) {
831
if ( AsnReadVal(aip, atp, &av) <= 0) {
834
ptr -> key = av.ptrvalue;
835
atp = AsnReadId(aip,amp, atp);
837
if (atp == INSDFEATURE_location) {
838
if ( AsnReadVal(aip, atp, &av) <= 0) {
841
ptr -> location = av.ptrvalue;
842
atp = AsnReadId(aip,amp, atp);
844
if (atp == INSDFEATURE_intervals) {
845
ptr -> intervals = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) INSDIntervalAsnRead, (AsnOptFreeFunc) INSDIntervalFree);
846
if (isError && ptr -> intervals == NULL) {
849
atp = AsnReadId(aip,amp, atp);
851
if (atp == INSDFEATURE_quals) {
852
ptr -> quals = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) INSDQualifierAsnRead, (AsnOptFreeFunc) INSDQualifierFree);
853
if (isError && ptr -> quals == NULL) {
856
atp = AsnReadId(aip,amp, atp);
859
if (AsnReadVal(aip, atp, &av) <= 0) {
865
AsnUnlinkType(orig); /* unlink local tree */
869
aip -> io_failure = TRUE;
870
ptr = INSDFeatureFree(ptr);
876
/**************************************************
878
* INSDFeatureAsnWrite()
880
**************************************************/
881
NLM_EXTERN Boolean LIBCALL
882
INSDFeatureAsnWrite(INSDFeaturePtr ptr, AsnIoPtr aip, AsnTypePtr orig)
886
Boolean retval = FALSE;
890
if (! objinsdseqAsnLoad()) {
899
atp = AsnLinkType(orig, INSDFEATURE); /* link local tree */
904
if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; }
905
if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) {
909
if (ptr -> key != NULL) {
910
av.ptrvalue = ptr -> key;
911
retval = AsnWrite(aip, INSDFEATURE_key, &av);
913
if (ptr -> location != NULL) {
914
av.ptrvalue = ptr -> location;
915
retval = AsnWrite(aip, INSDFEATURE_location, &av);
917
AsnGenericUserSeqOfAsnWrite(ptr -> intervals, (AsnWriteFunc) INSDIntervalAsnWrite, aip, INSDFEATURE_intervals, INSDFEATURE_intervals_E);
918
AsnGenericUserSeqOfAsnWrite(ptr -> quals, (AsnWriteFunc) INSDQualifierAsnWrite, aip, INSDFEATURE_quals, INSDFEATURE_quals_E);
919
if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) {
925
AsnUnlinkType(orig); /* unlink local tree */
931
/**************************************************
935
**************************************************/
937
INSDIntervalPtr LIBCALL
938
INSDIntervalNew(void)
940
INSDIntervalPtr ptr = MemNew((size_t) sizeof(INSDInterval));
947
/**************************************************
951
**************************************************/
953
INSDIntervalPtr LIBCALL
954
INSDIntervalFree(INSDIntervalPtr ptr)
960
MemFree(ptr -> accession);
965
/**************************************************
967
* INSDIntervalAsnRead()
969
**************************************************/
971
INSDIntervalPtr LIBCALL
972
INSDIntervalAsnRead(AsnIoPtr aip, AsnTypePtr orig)
976
Boolean isError = FALSE;
982
if (! objinsdseqAsnLoad()) {
991
if (orig == NULL) { /* INSDInterval ::= (self contained) */
992
atp = AsnReadId(aip, amp, INSDINTERVAL);
994
atp = AsnLinkType(orig, INSDINTERVAL);
996
/* link in local tree */
1001
ptr = INSDIntervalNew();
1005
if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */
1009
atp = AsnReadId(aip,amp, atp);
1012
if (atp == INSDINTERVAL_from) {
1013
if ( AsnReadVal(aip, atp, &av) <= 0) {
1016
ptr -> from = av.intvalue;
1017
ptr -> OBbits__ |= 1<<0;
1018
atp = AsnReadId(aip,amp, atp);
1020
if (atp == INSDINTERVAL_to) {
1021
if ( AsnReadVal(aip, atp, &av) <= 0) {
1024
ptr -> to = av.intvalue;
1025
ptr -> OBbits__ |= 1<<1;
1026
atp = AsnReadId(aip,amp, atp);
1028
if (atp == INSDINTERVAL_point) {
1029
if ( AsnReadVal(aip, atp, &av) <= 0) {
1032
ptr -> point = av.intvalue;
1033
ptr -> OBbits__ |= 1<<2;
1034
atp = AsnReadId(aip,amp, atp);
1036
if (atp == INSDINTERVAL_accession) {
1037
if ( AsnReadVal(aip, atp, &av) <= 0) {
1040
ptr -> accession = av.ptrvalue;
1041
atp = AsnReadId(aip,amp, atp);
1044
if (AsnReadVal(aip, atp, &av) <= 0) {
1050
AsnUnlinkType(orig); /* unlink local tree */
1054
aip -> io_failure = TRUE;
1055
ptr = INSDIntervalFree(ptr);
1061
/**************************************************
1063
* INSDIntervalAsnWrite()
1065
**************************************************/
1066
NLM_EXTERN Boolean LIBCALL
1067
INSDIntervalAsnWrite(INSDIntervalPtr ptr, AsnIoPtr aip, AsnTypePtr orig)
1071
Boolean retval = FALSE;
1075
if (! objinsdseqAsnLoad()) {
1084
atp = AsnLinkType(orig, INSDINTERVAL); /* link local tree */
1089
if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; }
1090
if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) {
1094
if (ptr -> from || (ptr -> OBbits__ & (1<<0) )){ av.intvalue = ptr -> from;
1095
retval = AsnWrite(aip, INSDINTERVAL_from, &av);
1097
if (ptr -> to || (ptr -> OBbits__ & (1<<1) )){ av.intvalue = ptr -> to;
1098
retval = AsnWrite(aip, INSDINTERVAL_to, &av);
1100
if (ptr -> point || (ptr -> OBbits__ & (1<<2) )){ av.intvalue = ptr -> point;
1101
retval = AsnWrite(aip, INSDINTERVAL_point, &av);
1103
if (ptr -> accession != NULL) {
1104
av.ptrvalue = ptr -> accession;
1105
retval = AsnWrite(aip, INSDINTERVAL_accession, &av);
1107
if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) {
1113
AsnUnlinkType(orig); /* unlink local tree */
1119
/**************************************************
1121
* INSDQualifierNew()
1123
**************************************************/
1125
INSDQualifierPtr LIBCALL
1126
INSDQualifierNew(void)
1128
INSDQualifierPtr ptr = MemNew((size_t) sizeof(INSDQualifier));
1135
/**************************************************
1137
* INSDQualifierFree()
1139
**************************************************/
1141
INSDQualifierPtr LIBCALL
1142
INSDQualifierFree(INSDQualifierPtr ptr)
1148
MemFree(ptr -> name);
1149
MemFree(ptr -> value);
1150
return MemFree(ptr);
1154
/**************************************************
1156
* INSDQualifierAsnRead()
1158
**************************************************/
1160
INSDQualifierPtr LIBCALL
1161
INSDQualifierAsnRead(AsnIoPtr aip, AsnTypePtr orig)
1165
Boolean isError = FALSE;
1167
INSDQualifierPtr ptr;
1171
if (! objinsdseqAsnLoad()) {
1180
if (orig == NULL) { /* INSDQualifier ::= (self contained) */
1181
atp = AsnReadId(aip, amp, INSDQUALIFIER);
1183
atp = AsnLinkType(orig, INSDQUALIFIER);
1185
/* link in local tree */
1190
ptr = INSDQualifierNew();
1194
if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */
1198
atp = AsnReadId(aip,amp, atp);
1201
if (atp == INSDQUALIFIER_name) {
1202
if ( AsnReadVal(aip, atp, &av) <= 0) {
1205
ptr -> name = av.ptrvalue;
1206
atp = AsnReadId(aip,amp, atp);
1208
if (atp == INSDQUALIFIER_value) {
1209
if ( AsnReadVal(aip, atp, &av) <= 0) {
1212
ptr -> value = av.ptrvalue;
1213
atp = AsnReadId(aip,amp, atp);
1216
if (AsnReadVal(aip, atp, &av) <= 0) {
1222
AsnUnlinkType(orig); /* unlink local tree */
1226
aip -> io_failure = TRUE;
1227
ptr = INSDQualifierFree(ptr);
1233
/**************************************************
1235
* INSDQualifierAsnWrite()
1237
**************************************************/
1238
NLM_EXTERN Boolean LIBCALL
1239
INSDQualifierAsnWrite(INSDQualifierPtr ptr, AsnIoPtr aip, AsnTypePtr orig)
1243
Boolean retval = FALSE;
1247
if (! objinsdseqAsnLoad()) {
1256
atp = AsnLinkType(orig, INSDQUALIFIER); /* link local tree */
1261
if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; }
1262
if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) {
1266
if (ptr -> name != NULL) {
1267
av.ptrvalue = ptr -> name;
1268
retval = AsnWrite(aip, INSDQUALIFIER_name, &av);
1270
if (ptr -> value != NULL) {
1271
av.ptrvalue = ptr -> value;
1272
retval = AsnWrite(aip, INSDQUALIFIER_value, &av);
1274
if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) {
1280
AsnUnlinkType(orig); /* unlink local tree */
1286
/**************************************************
1290
**************************************************/
1293
INSDSetFree(INSDSetPtr ptr)
1299
AsnGenericUserSeqOfFree(ptr, (AsnOptFreeFunc) INSDSeqFree);
1304
/**************************************************
1308
**************************************************/
1311
INSDSetAsnRead(AsnIoPtr aip, AsnTypePtr orig)
1314
Boolean isError = FALSE;
1320
if (! objinsdseqAsnLoad()) {
1329
if (orig == NULL) { /* INSDSet ::= (self contained) */
1330
atp = AsnReadId(aip, amp, INSDSET);
1332
atp = AsnLinkType(orig, INSDSET);
1334
/* link in local tree */
1341
ptr = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) INSDSeqAsnRead, (AsnOptFreeFunc) INSDSeqFree);
1342
if (isError && ptr == NULL) {
1349
AsnUnlinkType(orig); /* unlink local tree */
1353
aip -> io_failure = TRUE;
1354
ptr = INSDSetFree(ptr);
1360
/**************************************************
1364
**************************************************/
1365
NLM_EXTERN Boolean LIBCALL
1366
INSDSetAsnWrite(INSDSetPtr ptr, AsnIoPtr aip, AsnTypePtr orig)
1369
Boolean retval = FALSE;
1373
if (! objinsdseqAsnLoad()) {
1382
atp = AsnLinkType(orig, INSDSET); /* link local tree */
1387
if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; }
1388
retval = AsnGenericUserSeqOfAsnWrite(ptr , (AsnWriteFunc) INSDSeqAsnWrite, aip, atp, INSDSET_E);
1392
AsnUnlinkType(orig); /* unlink local tree */