1 #ifndef DYNAMITEdisplayHEADERFILE
2 #define DYNAMITEdisplayHEADERFILE
3 #ifdef _cplusplus
4 extern "C" {
5 #endif
6 
7 #include "wisebase.h"
8 #include "dynfile.h"
9 
10 
11 /********************************************************/
12 /* Wisetools version 3 file                             */
13 /*                                                      */
14 /* this file is copyright (c) Ewan Birney 1996          */
15 /* this file is part of the wisetools sequence analysis */
16 /* package                                              */
17 /********************************************************/
18 
19 /********************************************************/
20 /* Display is an internal module for dynamite itself    */
21 /* to manage the display tag found in dynamite files    */
22 /*                                                      */
23 /*                                                      */
24 /********************************************************/
25 
26 /***** RCS Info *****************************************/
27 /*
28    $Id:
29 
30    $Log:
31 */
32 /*********************************************************/
33 
34 
35 
36 #define Label2DisplayLISTLENGTH    32
37 #define Sequence2DisplayLISTLENGTH 32
38 #define Aln2DisplayLISTLENGTH      32
39 
40 #define ALL_OTHER_NUMBER (-10)
41 
42 struct Aln2DisplayField {
43     int dynamite_hard_link;
44 #ifdef PTHREAD
45     pthread_mutex_t dynamite_mutex;
46 #endif
47     char * string;
48     char * length;
49     char * direction;
50     char * convert;
51     boolean is_static;
52     boolean is_string;
53     boolean is_single;
54     boolean is_sub;
55     } ;
56 /* Aln2DisplayField defined */
57 #ifndef DYNAMITE_DEFINED_Aln2DisplayField
58 typedef struct Aln2DisplayField Aln2DisplayField;
59 #define DYNAMITE_DEFINED_Aln2DisplayField
60 #endif
61 
62 
63 struct Index2Display {
64     int dynamite_hard_link;
65 #ifdef PTHREAD
66     pthread_mutex_t dynamite_mutex;
67 #endif
68     char * name;
69     char * eval;
70     boolean is_start;
71     int number;
72     } ;
73 /* Index2Display defined */
74 #ifndef DYNAMITE_DEFINED_Index2Display
75 typedef struct Index2Display Index2Display;
76 #define DYNAMITE_DEFINED_Index2Display
77 #endif
78 
79 
80 struct Label2Display {
81     int dynamite_hard_link;
82 #ifdef PTHREAD
83     pthread_mutex_t dynamite_mutex;
84 #endif
85     char * label;
86     char * direction;
87     Aln2DisplayField ** a2df;
88     int len;/* len for above a2df  */
89     int maxlen; /* maxlen for above a2df */
90     Index2Display ** i2d;
91     int ind_len;/* len for above i2d  */
92     int ind_maxlen; /* maxlen for above i2d */
93     boolean is_lone;
94     } ;
95 /* Label2Display defined */
96 #ifndef DYNAMITE_DEFINED_Label2Display
97 typedef struct Label2Display Label2Display;
98 #define DYNAMITE_DEFINED_Label2Display
99 #endif
100 
101 
102 struct Sequence2Display {
103     int dynamite_hard_link;
104 #ifdef PTHREAD
105     pthread_mutex_t dynamite_mutex;
106 #endif
107     int number;
108     Label2Display ** l2d;
109     int len;/* len for above l2d  */
110     int maxlen; /* maxlen for above l2d */
111     Index2Display ** i2d;
112     int ind_len;/* len for above i2d  */
113     int ind_maxlen; /* maxlen for above i2d */
114     char * name_str;
115     int length; /*  of name */
116     boolean is_static;
117     char * direction;
118     } ;
119 /* Sequence2Display defined */
120 #ifndef DYNAMITE_DEFINED_Sequence2Display
121 typedef struct Sequence2Display Sequence2Display;
122 #define DYNAMITE_DEFINED_Sequence2Display
123 #endif
124 
125 
126 struct Aln2DisplayResource {
127     int dynamite_hard_link;
128 #ifdef PTHREAD
129     pthread_mutex_t dynamite_mutex;
130 #endif
131     char * type;
132     char * name;
133     char * arg;
134     } ;
135 /* Aln2DisplayResource defined */
136 #ifndef DYNAMITE_DEFINED_Aln2DisplayResource
137 typedef struct Aln2DisplayResource Aln2DisplayResource;
138 #define DYNAMITE_DEFINED_Aln2DisplayResource
139 #endif
140 
141 
142 struct Aln2Display {
143     int dynamite_hard_link;
144 #ifdef PTHREAD
145     pthread_mutex_t dynamite_mutex;
146 #endif
147     char * name;
148     Aln2DisplayResource ** a2dr;
149     int res_len;/* len for above a2dr  */
150     int res_maxlen; /* maxlen for above a2dr */
151     Sequence2Display ** s2d;
152     int len;/* len for above s2d  */
153     int maxlen; /* maxlen for above s2d */
154     Sequence2Display * other;
155     } ;
156 /* Aln2Display defined */
157 #ifndef DYNAMITE_DEFINED_Aln2Display
158 typedef struct Aln2Display Aln2Display;
159 #define DYNAMITE_DEFINED_Aln2Display
160 #endif
161 
162 
163 
164 
165     /***************************************************/
166     /* Callable functions                              */
167     /* These are the functions you are expected to use */
168     /***************************************************/
169 
170 
171 
172 /* Function:  hard_link_Aln2DisplayField(obj)
173  *
174  * Descrip:    Bumps up the reference count of the object
175  *             Meaning that multiple pointers can 'own' it
176  *
177  *
178  * Arg:        obj [UNKN ] Object to be hard linked [Aln2DisplayField *]
179  *
180  * Return [UNKN ]  Undocumented return value [Aln2DisplayField *]
181  *
182  */
183 Aln2DisplayField * hard_link_Aln2DisplayField(Aln2DisplayField * obj);
184 
185 
186 /* Function:  Aln2DisplayField_alloc(void)
187  *
188  * Descrip:    Allocates structure: assigns defaults if given
189  *
190  *
191  *
192  * Return [UNKN ]  Undocumented return value [Aln2DisplayField *]
193  *
194  */
195 Aln2DisplayField * Aln2DisplayField_alloc(void);
196 
197 
198 /* Function:  free_Aln2DisplayField(obj)
199  *
200  * Descrip:    Free Function: removes the memory held by obj
201  *             Will chain up to owned members and clear all lists
202  *
203  *
204  * Arg:        obj [UNKN ] Object that is free'd [Aln2DisplayField *]
205  *
206  * Return [UNKN ]  Undocumented return value [Aln2DisplayField *]
207  *
208  */
209 Aln2DisplayField * free_Aln2DisplayField(Aln2DisplayField * obj);
210 
211 
212 /* Function:  hard_link_Index2Display(obj)
213  *
214  * Descrip:    Bumps up the reference count of the object
215  *             Meaning that multiple pointers can 'own' it
216  *
217  *
218  * Arg:        obj [UNKN ] Object to be hard linked [Index2Display *]
219  *
220  * Return [UNKN ]  Undocumented return value [Index2Display *]
221  *
222  */
223 Index2Display * hard_link_Index2Display(Index2Display * obj);
224 
225 
226 /* Function:  Index2Display_alloc(void)
227  *
228  * Descrip:    Allocates structure: assigns defaults if given
229  *
230  *
231  *
232  * Return [UNKN ]  Undocumented return value [Index2Display *]
233  *
234  */
235 Index2Display * Index2Display_alloc(void);
236 
237 
238 /* Function:  free_Index2Display(obj)
239  *
240  * Descrip:    Free Function: removes the memory held by obj
241  *             Will chain up to owned members and clear all lists
242  *
243  *
244  * Arg:        obj [UNKN ] Object that is free'd [Index2Display *]
245  *
246  * Return [UNKN ]  Undocumented return value [Index2Display *]
247  *
248  */
249 Index2Display * free_Index2Display(Index2Display * obj);
250 
251 
252 /* Function:  add_Label2Display(obj,add)
253  *
254  * Descrip:    Adds another object to the list. It will expand the list if necessary
255  *
256  *
257  * Arg:        obj [UNKN ] Object which contains the list [Label2Display *]
258  * Arg:        add [OWNER] Object to add to the list [Aln2DisplayField *]
259  *
260  * Return [UNKN ]  Undocumented return value [boolean]
261  *
262  */
263 boolean add_Label2Display(Label2Display * obj,Aln2DisplayField * add);
264 
265 
266 /* Function:  flush_Label2Display(obj)
267  *
268  * Descrip:    Frees the list elements, sets length to 0
269  *             If you want to save some elements, use hard_link_xxx
270  *             to protect them from being actually destroyed in the free
271  *
272  *
273  * Arg:        obj [UNKN ] Object which contains the list  [Label2Display *]
274  *
275  * Return [UNKN ]  Undocumented return value [int]
276  *
277  */
278 int flush_Label2Display(Label2Display * obj);
279 
280 
281 /* Function:  add_ind_Label2Display(obj,add)
282  *
283  * Descrip:    Adds another object to the list. It will expand the list if necessary
284  *
285  *
286  * Arg:        obj [UNKN ] Object which contains the list [Label2Display *]
287  * Arg:        add [OWNER] Object to add to the list [Index2Display *]
288  *
289  * Return [UNKN ]  Undocumented return value [boolean]
290  *
291  */
292 boolean add_ind_Label2Display(Label2Display * obj,Index2Display * add);
293 
294 
295 /* Function:  flush_ind_Label2Display(obj)
296  *
297  * Descrip:    Frees the list elements, sets length to 0
298  *             If you want to save some elements, use hard_link_xxx
299  *             to protect them from being actually destroyed in the free
300  *
301  *
302  * Arg:        obj [UNKN ] Object which contains the list  [Label2Display *]
303  *
304  * Return [UNKN ]  Undocumented return value [int]
305  *
306  */
307 int flush_ind_Label2Display(Label2Display * obj);
308 
309 
310 /* Function:  Label2Display_alloc_std(void)
311  *
312  * Descrip:    Equivalent to Label2Display_alloc_len(Label2DisplayLISTLENGTH)
313  *
314  *
315  *
316  * Return [UNKN ]  Undocumented return value [Label2Display *]
317  *
318  */
319 Label2Display * Label2Display_alloc_std(void);
320 
321 
322 /* Function:  Label2Display_alloc_len(len)
323  *
324  * Descrip:    Allocates len length to all lists
325  *
326  *
327  * Arg:        len [UNKN ] Length of lists to allocate [int]
328  *
329  * Return [UNKN ]  Undocumented return value [Label2Display *]
330  *
331  */
332 Label2Display * Label2Display_alloc_len(int len);
333 
334 
335 /* Function:  hard_link_Label2Display(obj)
336  *
337  * Descrip:    Bumps up the reference count of the object
338  *             Meaning that multiple pointers can 'own' it
339  *
340  *
341  * Arg:        obj [UNKN ] Object to be hard linked [Label2Display *]
342  *
343  * Return [UNKN ]  Undocumented return value [Label2Display *]
344  *
345  */
346 Label2Display * hard_link_Label2Display(Label2Display * obj);
347 
348 
349 /* Function:  Label2Display_alloc(void)
350  *
351  * Descrip:    Allocates structure: assigns defaults if given
352  *
353  *
354  *
355  * Return [UNKN ]  Undocumented return value [Label2Display *]
356  *
357  */
358 Label2Display * Label2Display_alloc(void);
359 
360 
361 /* Function:  free_Label2Display(obj)
362  *
363  * Descrip:    Free Function: removes the memory held by obj
364  *             Will chain up to owned members and clear all lists
365  *
366  *
367  * Arg:        obj [UNKN ] Object that is free'd [Label2Display *]
368  *
369  * Return [UNKN ]  Undocumented return value [Label2Display *]
370  *
371  */
372 Label2Display * free_Label2Display(Label2Display * obj);
373 
374 
375 /* Function:  add_Sequence2Display(obj,add)
376  *
377  * Descrip:    Adds another object to the list. It will expand the list if necessary
378  *
379  *
380  * Arg:        obj [UNKN ] Object which contains the list [Sequence2Display *]
381  * Arg:        add [OWNER] Object to add to the list [Label2Display *]
382  *
383  * Return [UNKN ]  Undocumented return value [boolean]
384  *
385  */
386 boolean add_Sequence2Display(Sequence2Display * obj,Label2Display * add);
387 
388 
389 /* Function:  flush_Sequence2Display(obj)
390  *
391  * Descrip:    Frees the list elements, sets length to 0
392  *             If you want to save some elements, use hard_link_xxx
393  *             to protect them from being actually destroyed in the free
394  *
395  *
396  * Arg:        obj [UNKN ] Object which contains the list  [Sequence2Display *]
397  *
398  * Return [UNKN ]  Undocumented return value [int]
399  *
400  */
401 int flush_Sequence2Display(Sequence2Display * obj);
402 
403 
404 /* Function:  add_ind_Sequence2Display(obj,add)
405  *
406  * Descrip:    Adds another object to the list. It will expand the list if necessary
407  *
408  *
409  * Arg:        obj [UNKN ] Object which contains the list [Sequence2Display *]
410  * Arg:        add [OWNER] Object to add to the list [Index2Display *]
411  *
412  * Return [UNKN ]  Undocumented return value [boolean]
413  *
414  */
415 boolean add_ind_Sequence2Display(Sequence2Display * obj,Index2Display * add);
416 
417 
418 /* Function:  flush_ind_Sequence2Display(obj)
419  *
420  * Descrip:    Frees the list elements, sets length to 0
421  *             If you want to save some elements, use hard_link_xxx
422  *             to protect them from being actually destroyed in the free
423  *
424  *
425  * Arg:        obj [UNKN ] Object which contains the list  [Sequence2Display *]
426  *
427  * Return [UNKN ]  Undocumented return value [int]
428  *
429  */
430 int flush_ind_Sequence2Display(Sequence2Display * obj);
431 
432 
433 /* Function:  Sequence2Display_alloc_std(void)
434  *
435  * Descrip:    Equivalent to Sequence2Display_alloc_len(Sequence2DisplayLISTLENGTH)
436  *
437  *
438  *
439  * Return [UNKN ]  Undocumented return value [Sequence2Display *]
440  *
441  */
442 Sequence2Display * Sequence2Display_alloc_std(void);
443 
444 
445 /* Function:  Sequence2Display_alloc_len(len)
446  *
447  * Descrip:    Allocates len length to all lists
448  *
449  *
450  * Arg:        len [UNKN ] Length of lists to allocate [int]
451  *
452  * Return [UNKN ]  Undocumented return value [Sequence2Display *]
453  *
454  */
455 Sequence2Display * Sequence2Display_alloc_len(int len);
456 
457 
458 /* Function:  hard_link_Sequence2Display(obj)
459  *
460  * Descrip:    Bumps up the reference count of the object
461  *             Meaning that multiple pointers can 'own' it
462  *
463  *
464  * Arg:        obj [UNKN ] Object to be hard linked [Sequence2Display *]
465  *
466  * Return [UNKN ]  Undocumented return value [Sequence2Display *]
467  *
468  */
469 Sequence2Display * hard_link_Sequence2Display(Sequence2Display * obj);
470 
471 
472 /* Function:  Sequence2Display_alloc(void)
473  *
474  * Descrip:    Allocates structure: assigns defaults if given
475  *
476  *
477  *
478  * Return [UNKN ]  Undocumented return value [Sequence2Display *]
479  *
480  */
481 Sequence2Display * Sequence2Display_alloc(void);
482 
483 
484 /* Function:  free_Sequence2Display(obj)
485  *
486  * Descrip:    Free Function: removes the memory held by obj
487  *             Will chain up to owned members and clear all lists
488  *
489  *
490  * Arg:        obj [UNKN ] Object that is free'd [Sequence2Display *]
491  *
492  * Return [UNKN ]  Undocumented return value [Sequence2Display *]
493  *
494  */
495 Sequence2Display * free_Sequence2Display(Sequence2Display * obj);
496 
497 
498 /* Function:  hard_link_Aln2DisplayResource(obj)
499  *
500  * Descrip:    Bumps up the reference count of the object
501  *             Meaning that multiple pointers can 'own' it
502  *
503  *
504  * Arg:        obj [UNKN ] Object to be hard linked [Aln2DisplayResource *]
505  *
506  * Return [UNKN ]  Undocumented return value [Aln2DisplayResource *]
507  *
508  */
509 Aln2DisplayResource * hard_link_Aln2DisplayResource(Aln2DisplayResource * obj);
510 
511 
512 /* Function:  Aln2DisplayResource_alloc(void)
513  *
514  * Descrip:    Allocates structure: assigns defaults if given
515  *
516  *
517  *
518  * Return [UNKN ]  Undocumented return value [Aln2DisplayResource *]
519  *
520  */
521 Aln2DisplayResource * Aln2DisplayResource_alloc(void);
522 
523 
524 /* Function:  free_Aln2DisplayResource(obj)
525  *
526  * Descrip:    Free Function: removes the memory held by obj
527  *             Will chain up to owned members and clear all lists
528  *
529  *
530  * Arg:        obj [UNKN ] Object that is free'd [Aln2DisplayResource *]
531  *
532  * Return [UNKN ]  Undocumented return value [Aln2DisplayResource *]
533  *
534  */
535 Aln2DisplayResource * free_Aln2DisplayResource(Aln2DisplayResource * obj);
536 
537 
538 /* Function:  add_res_Aln2Display(obj,add)
539  *
540  * Descrip:    Adds another object to the list. It will expand the list if necessary
541  *
542  *
543  * Arg:        obj [UNKN ] Object which contains the list [Aln2Display *]
544  * Arg:        add [OWNER] Object to add to the list [Aln2DisplayResource *]
545  *
546  * Return [UNKN ]  Undocumented return value [boolean]
547  *
548  */
549 boolean add_res_Aln2Display(Aln2Display * obj,Aln2DisplayResource * add);
550 
551 
552 /* Function:  flush_res_Aln2Display(obj)
553  *
554  * Descrip:    Frees the list elements, sets length to 0
555  *             If you want to save some elements, use hard_link_xxx
556  *             to protect them from being actually destroyed in the free
557  *
558  *
559  * Arg:        obj [UNKN ] Object which contains the list  [Aln2Display *]
560  *
561  * Return [UNKN ]  Undocumented return value [int]
562  *
563  */
564 int flush_res_Aln2Display(Aln2Display * obj);
565 
566 
567 /* Function:  add_Aln2Display(obj,add)
568  *
569  * Descrip:    Adds another object to the list. It will expand the list if necessary
570  *
571  *
572  * Arg:        obj [UNKN ] Object which contains the list [Aln2Display *]
573  * Arg:        add [OWNER] Object to add to the list [Sequence2Display *]
574  *
575  * Return [UNKN ]  Undocumented return value [boolean]
576  *
577  */
578 boolean add_Aln2Display(Aln2Display * obj,Sequence2Display * add);
579 
580 
581 /* Function:  flush_Aln2Display(obj)
582  *
583  * Descrip:    Frees the list elements, sets length to 0
584  *             If you want to save some elements, use hard_link_xxx
585  *             to protect them from being actually destroyed in the free
586  *
587  *
588  * Arg:        obj [UNKN ] Object which contains the list  [Aln2Display *]
589  *
590  * Return [UNKN ]  Undocumented return value [int]
591  *
592  */
593 int flush_Aln2Display(Aln2Display * obj);
594 
595 
596 /* Function:  Aln2Display_alloc_std(void)
597  *
598  * Descrip:    Equivalent to Aln2Display_alloc_len(Aln2DisplayLISTLENGTH)
599  *
600  *
601  *
602  * Return [UNKN ]  Undocumented return value [Aln2Display *]
603  *
604  */
605 Aln2Display * Aln2Display_alloc_std(void);
606 
607 
608 /* Function:  Aln2Display_alloc_len(len)
609  *
610  * Descrip:    Allocates len length to all lists
611  *
612  *
613  * Arg:        len [UNKN ] Length of lists to allocate [int]
614  *
615  * Return [UNKN ]  Undocumented return value [Aln2Display *]
616  *
617  */
618 Aln2Display * Aln2Display_alloc_len(int len);
619 
620 
621 /* Function:  hard_link_Aln2Display(obj)
622  *
623  * Descrip:    Bumps up the reference count of the object
624  *             Meaning that multiple pointers can 'own' it
625  *
626  *
627  * Arg:        obj [UNKN ] Object to be hard linked [Aln2Display *]
628  *
629  * Return [UNKN ]  Undocumented return value [Aln2Display *]
630  *
631  */
632 Aln2Display * hard_link_Aln2Display(Aln2Display * obj);
633 
634 
635 /* Function:  Aln2Display_alloc(void)
636  *
637  * Descrip:    Allocates structure: assigns defaults if given
638  *
639  *
640  *
641  * Return [UNKN ]  Undocumented return value [Aln2Display *]
642  *
643  */
644 Aln2Display * Aln2Display_alloc(void);
645 
646 
647 /* Function:  free_Aln2Display(obj)
648  *
649  * Descrip:    Free Function: removes the memory held by obj
650  *             Will chain up to owned members and clear all lists
651  *
652  *
653  * Arg:        obj [UNKN ] Object that is free'd [Aln2Display *]
654  *
655  * Return [UNKN ]  Undocumented return value [Aln2Display *]
656  *
657  */
658 Aln2Display * free_Aln2Display(Aln2Display * obj);
659 
660 
661   /* Unplaced functions */
662   /* There has been no indication of the use of these functions */
663 void write_Aln2Display_header(DYNFILE * dfp,Aln2Display * a2d);
664 void write_Aln2Display_function(DYNFILE * dfp,Aln2Display * a2d);
665 void write_Aln2Display_convert_func(DYNFILE * dfp,Aln2Display * a2d);
666 boolean prepare_Aln2Display(Aln2Display * a2d);
667 void number_up_Sequence_Index2Display(Aln2Display * a2d);
668 boolean crosslink_Index(Aln2Display * a2d);
669 boolean crosslink_Label2Display_Index(Label2Display * l2d,Sequence2Display * s2d);
670 Index2Display * Index2Display_from_name(Sequence2Display * s2d,char * name);
671 Aln2Display         * read_Aln2Display_line(char * line,FILE * ifp);
672 Sequence2Display    * read_Sequence2Display_line(char * line,FILE * ifp);
673 Label2Display       * read_Label2Display_line(char * line,FILE * ifp);
674 Aln2DisplayField    * read_Aln2DisplayField_line(char * line,FILE * ifp);
675 boolean read_name_line(Sequence2Display * s2d,char * name_line);
676 boolean put_away_Aln2DisplayField_strpair(Aln2DisplayField * a2df,char * pair);
677 Aln2DisplayResource * read_Aln2DisplayResource_line(char * line);
678 Index2Display * read_Index2Display_line(char * line);
679 void show_Aln2Display(Aln2Display * a2d,FILE * ofp);
680 void show_Aln2DisplayResource(Aln2DisplayResource * a2dr,FILE * ofp);
681 void show_Sequence2Display(Sequence2Display * s2d,FILE * ofp);
682 void show_Label2Display(Label2Display * l2d,FILE * ofp);
683 void show_Aln2DisplayField(Aln2DisplayField * a2df,FILE * ofp);
684 
685 
686     /***************************************************/
687     /* Internal functions                              */
688     /* you are not expected to have to call these      */
689     /***************************************************/
690 void swap_Label2Display(Aln2DisplayField ** list,int i,int j) ;
691 void qsort_Label2Display(Aln2DisplayField ** list,int left,int right,int (*comp)(Aln2DisplayField * ,Aln2DisplayField * ));
692 void sort_Label2Display(Label2Display * obj,int (*comp)(Aln2DisplayField *, Aln2DisplayField *));
693 boolean expand_Label2Display(Label2Display * obj,int len);
694 void swap_ind_Label2Display(Index2Display ** list,int i,int j) ;
695 void qsort_ind_Label2Display(Index2Display ** list,int left,int right,int (*comp)(Index2Display * ,Index2Display * ));
696 void sort_ind_Label2Display(Label2Display * obj,int (*comp)(Index2Display *, Index2Display *));
697 boolean expand_ind_Label2Display(Label2Display * obj,int len);
698 void swap_Sequence2Display(Label2Display ** list,int i,int j) ;
699 void qsort_Sequence2Display(Label2Display ** list,int left,int right,int (*comp)(Label2Display * ,Label2Display * ));
700 void sort_Sequence2Display(Sequence2Display * obj,int (*comp)(Label2Display *, Label2Display *));
701 boolean expand_Sequence2Display(Sequence2Display * obj,int len);
702 void swap_ind_Sequence2Display(Index2Display ** list,int i,int j) ;
703 void qsort_ind_Sequence2Display(Index2Display ** list,int left,int right,int (*comp)(Index2Display * ,Index2Display * ));
704 void sort_ind_Sequence2Display(Sequence2Display * obj,int (*comp)(Index2Display *, Index2Display *));
705 boolean expand_ind_Sequence2Display(Sequence2Display * obj,int len);
706 void swap_res_Aln2Display(Aln2DisplayResource ** list,int i,int j) ;
707 void qsort_res_Aln2Display(Aln2DisplayResource ** list,int left,int right,int (*comp)(Aln2DisplayResource * ,Aln2DisplayResource * ));
708 void sort_res_Aln2Display(Aln2Display * obj,int (*comp)(Aln2DisplayResource *, Aln2DisplayResource *));
709 boolean expand_res_Aln2Display(Aln2Display * obj,int len);
710 void swap_Aln2Display(Sequence2Display ** list,int i,int j) ;
711 void qsort_Aln2Display(Sequence2Display ** list,int left,int right,int (*comp)(Sequence2Display * ,Sequence2Display * ));
712 void sort_Aln2Display(Aln2Display * obj,int (*comp)(Sequence2Display *, Sequence2Display *));
713 boolean expand_Aln2Display(Aln2Display * obj,int len);
714 
715 #ifdef _cplusplus
716 }
717 #endif
718 
719 #endif
720