1 /*===========================================================================
2 *
3 *                            PUBLIC DOMAIN NOTICE
4 *               National Center for Biotechnology Information
5 *
6 *  This software/database is a "United States Government Work" under the
7 *  terms of the United States Copyright Act.  It was written as part of
8 *  the author's official duties as a United States Government employee and
9 *  thus cannot be copyrighted.  This software/database is freely available
10 *  to the public for use. The National Library of Medicine and the U.S.
11 *  Government have not placed any restriction on its use or reproduction.
12 *
13 *  Although all reasonable efforts have been taken to ensure the accuracy
14 *  and reliability of the software and data, the NLM and the U.S.
15 *  Government do not and cannot warrant the performance or results that
16 *  may be obtained by using this software or data. The NLM and the U.S.
17 *  Government disclaim all warranties, express or implied, including
18 *  warranties of performance, merchantability or fitness for any particular
19 *  purpose.
20 *
21 *  Please cite the author in any work or product based on this material.
22 *
23 * ===========================================================================
24 *
25 */
26 
27 #include "py_FragmentItf.h"
28 #include "py_ErrorMsg.hpp"
29 
30 #include <ngs/itf/FragmentItf.hpp>
31 
PY_NGS_FragmentGetFragmentId(void * pRef,void ** pRet,void ** ppNGSStrError)32 PY_RES_TYPE PY_NGS_FragmentGetFragmentId ( void* pRef, void** pRet, void** ppNGSStrError )
33 {
34     PY_RES_TYPE ret = PY_RES_ERROR; // TODO: use xt_* codes
35     try
36     {
37         void* res = CheckedCast< ngs::FragmentItf* >(pRef) -> getFragmentId ();
38         assert (pRet != NULL);
39         *pRet = (void*) res;
40         ret = PY_RES_OK;
41     }
42     catch ( ngs::ErrorMsg & x )
43     {
44         ret = ExceptionHandler ( x, ppNGSStrError );
45     }
46     catch ( std::exception & x )
47     {
48         ret = ExceptionHandler ( x, ppNGSStrError );
49     }
50     catch ( ... )
51     {
52         ret = ExceptionHandler ( ppNGSStrError );
53     }
54 
55     return ret;
56 }
57 
PY_NGS_FragmentGetFragmentBases(void * pRef,uint64_t offset,uint64_t length,void ** pRet,void ** ppNGSStrError)58 PY_RES_TYPE PY_NGS_FragmentGetFragmentBases ( void* pRef, uint64_t offset, uint64_t length, void** pRet, void** ppNGSStrError )
59 {
60     PY_RES_TYPE ret = PY_RES_ERROR; // TODO: use xt_* codes
61     try
62     {
63         void* res = CheckedCast< ngs::FragmentItf* >(pRef) -> getFragmentBases ( offset, length );
64         assert (pRet != NULL);
65         *pRet = (void*) res;
66         ret = PY_RES_OK;
67     }
68     catch ( ngs::ErrorMsg & x )
69     {
70         ret = ExceptionHandler ( x, ppNGSStrError );
71     }
72     catch ( std::exception & x )
73     {
74         ret = ExceptionHandler ( x, ppNGSStrError );
75     }
76     catch ( ... )
77     {
78         ret = ExceptionHandler ( ppNGSStrError );
79     }
80 
81     return ret;
82 }
83 
PY_NGS_FragmentGetFragmentQualities(void * pRef,uint64_t offset,uint64_t length,void ** pRet,void ** ppNGSStrError)84 PY_RES_TYPE PY_NGS_FragmentGetFragmentQualities ( void* pRef, uint64_t offset, uint64_t length, void** pRet, void** ppNGSStrError )
85 {
86     PY_RES_TYPE ret = PY_RES_ERROR; // TODO: use xt_* codes
87     try
88     {
89         void* res = CheckedCast< ngs::FragmentItf* >(pRef) -> getFragmentQualities ( offset, length );
90         assert (pRet != NULL);
91         *pRet = (void*) res;
92         ret = PY_RES_OK;
93     }
94     catch ( ngs::ErrorMsg & x )
95     {
96         ret = ExceptionHandler ( x, ppNGSStrError );
97     }
98     catch ( std::exception & x )
99     {
100         ret = ExceptionHandler ( x, ppNGSStrError );
101     }
102     catch ( ... )
103     {
104         ret = ExceptionHandler ( ppNGSStrError );
105     }
106 
107     return ret;
108 }
109 
PY_NGS_FragmentIsPaired(void * pRef,int * pRet,void ** ppNGSStrError)110 PY_RES_TYPE PY_NGS_FragmentIsPaired ( void* pRef, int* pRet, void** ppNGSStrError )
111 {
112     PY_RES_TYPE ret = PY_RES_ERROR; // TODO: use xt_* codes
113     try
114     {
115         bool res = CheckedCast< ngs::FragmentItf* >(pRef) -> isPaired ();
116         assert (pRet != NULL);
117         *pRet = (int) res;
118         ret = PY_RES_OK;
119     }
120     catch ( ngs::ErrorMsg & x )
121     {
122         ret = ExceptionHandler ( x, ppNGSStrError );
123     }
124     catch ( std::exception & x )
125     {
126         ret = ExceptionHandler ( x, ppNGSStrError );
127     }
128     catch ( ... )
129     {
130         ret = ExceptionHandler ( ppNGSStrError );
131     }
132 
133     return ret;
134 }
135 
PY_NGS_FragmentIsAligned(void * pRef,int * pRet,void ** ppNGSStrError)136 PY_RES_TYPE PY_NGS_FragmentIsAligned ( void* pRef, int* pRet, void** ppNGSStrError )
137 {
138     PY_RES_TYPE ret = PY_RES_ERROR; // TODO: use xt_* codes
139     try
140     {
141         bool res = CheckedCast< ngs::FragmentItf* >(pRef) -> isAligned ();
142         assert (pRet != NULL);
143         *pRet = (int) res;
144         ret = PY_RES_OK;
145     }
146     catch ( ngs::ErrorMsg & x )
147     {
148         ret = ExceptionHandler ( x, ppNGSStrError );
149     }
150     catch ( std::exception & x )
151     {
152         ret = ExceptionHandler ( x, ppNGSStrError );
153     }
154     catch ( ... )
155     {
156         ret = ExceptionHandler ( ppNGSStrError );
157     }
158 
159     return ret;
160 }
161 
162