File: tracealign_helper.cpp

package info (click to toggle)
staden 2.0.0%2Bb11-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, buster
  • size: 21,556 kB
  • sloc: ansic: 240,603; tcl: 65,360; cpp: 12,854; makefile: 11,201; sh: 2,952; fortran: 2,033; perl: 63; awk: 46
file content (62 lines) | stat: -rw-r--r-- 1,605 bytes parent folder | download | duplicates (5)
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
/*
 * Copyright (c) Medical Research Council 2001. All rights reserved.
 *
 * Permission to use, copy, modify and distribute this software and its
 * documentation for any purpose is hereby granted without fee, provided that
 * this copyright and notice appears in all copies.
 *
 * This file was written as part of the Staden Package at the MRC Laboratory
 * of Molecular Biology, Hills Road, Cambridge, CB2 2QH, United Kingdom.
 *
 * MRC disclaims all warranties with regard to this software.
 *
 */


#include <cassert>
#include <cstring>                // For std::memset()
#include <mutlib.h>
#include <trace.hpp>
#include <tracealign_cache.hpp>



void TraceAlignDestroyResults( tracealign_t* ta )
{
   assert(ta != NULL);


   // Reset result code/string
   ta->ResultCode      = MUTLIB_RESULT_SUCCESS;
   ta->ResultString[0] = 0;


   // Delete alignments, trace object destructor disposes of the Read* pointers
   if( ta->Alignment[MUTLIB_INPUT].Trace )
   {
      Trace t1;
      t1.Wrap( ta->Alignment[MUTLIB_INPUT].Trace, true );
      std::memset( &ta->Alignment[MUTLIB_INPUT], 0, sizeof(mutlib_trace_t) );
   }
   if( ta->Alignment[MUTLIB_INPUT_REFERENCE].Trace )
   {
      Trace t2;
      t2.Wrap( ta->Alignment[MUTLIB_INPUT_REFERENCE].Trace, true );
      std::memset( &ta->Alignment[MUTLIB_INPUT_REFERENCE], 0, sizeof(mutlib_trace_t) );
   }
}



void TraceAlignDestroyCache( tracealign_t* ta )
{
   assert(ta != NULL);


   // Delete reference cache data
   TraceAlignCache* pCache = static_cast<TraceAlignCache*>( ta->Cache );
   if( pCache )
      delete pCache;
   ta->Cache = 0;
}