objmgr_exception.hpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:6k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: objmgr_exception.hpp,v $
  4.  * PRODUCTION Revision 1000.3  2004/04/12 17:27:21  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.7
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef OBJMGR_EXCEPTION__HPP
  10. #define OBJMGR_EXCEPTION__HPP
  11. /*  $Id: objmgr_exception.hpp,v 1000.3 2004/04/12 17:27:21 gouriano Exp $
  12. * ===========================================================================
  13. *
  14. *                            PUBLIC DOMAIN NOTICE
  15. *               National Center for Biotechnology Information
  16. *
  17. *  This software/database is a "United States Government Work" under the
  18. *  terms of the United States Copyright Act.  It was written as part of
  19. *  the author's official duties as a United States Government employee and
  20. *  thus cannot be copyrighted.  This software/database is freely available
  21. *  to the public for use. The National Library of Medicine and the U.S.
  22. *  Government have not placed any restriction on its use or reproduction.
  23. *
  24. *  Although all reasonable efforts have been taken to ensure the accuracy
  25. *  and reliability of the software and data, the NLM and the U.S.
  26. *  Government do not and cannot warrant the performance or results that
  27. *  may be obtained by using this software or data. The NLM and the U.S.
  28. *  Government disclaim all warranties, express or implied, including
  29. *  warranties of performance, merchantability or fitness for any particular
  30. *  purpose.
  31. *
  32. *  Please cite the author in any work or product based on this material.
  33. *
  34. * ===========================================================================
  35. *
  36. * Author: Aleksey Grichenko
  37. *
  38. * File Description:
  39. *   Object manager exceptions
  40. *
  41. */
  42. #include <corelib/ncbistd.hpp>
  43. #include <corelib/ncbiexpt.hpp>
  44. BEGIN_NCBI_SCOPE
  45. BEGIN_SCOPE(objects)
  46. // root class for all object manager exceptions
  47. class NCBI_XOBJMGR_EXPORT CObjMgrException : public CException
  48. {
  49. public:
  50.     enum EErrCode {
  51.         eNotImplemented,
  52.         eRegisterError,   // error while registering a data source/loader
  53.         eFindConflict,
  54.         eFindFailed,
  55.         eAddDataError,
  56.         eModifyDataError,
  57.         eIdMapperError,
  58.         eInvalidHandle,
  59.         eOtherError
  60.     };
  61.     virtual const char* GetErrCodeString(void) const;
  62.     NCBI_EXCEPTION_DEFAULT(CObjMgrException,CException);
  63. };
  64. class NCBI_XOBJMGR_EXPORT CSeqMapException : public CObjMgrException
  65. {
  66. public:
  67.     enum EErrCode {
  68.         eUnimplemented,
  69.         eIteratorTooBig,
  70.         eSegmentTypeError,
  71.         eDataError,
  72.         eOutOfRange,
  73.         eInvalidIndex,
  74.         eNullPointer,
  75.         eFail
  76.     };
  77.     virtual const char* GetErrCodeString(void) const;
  78.     NCBI_EXCEPTION_DEFAULT(CSeqMapException, CObjMgrException);
  79. };
  80. class NCBI_XOBJMGR_EXPORT CSeqVectorException : public CObjMgrException
  81. {
  82. public:
  83.     enum EErrCode {
  84.         eCodingError,
  85.         eDataError,
  86.         eOutOfRange
  87.     };
  88.     virtual const char* GetErrCodeString(void) const;
  89.     NCBI_EXCEPTION_DEFAULT(CSeqVectorException, CObjMgrException);
  90. };
  91. class NCBI_XOBJMGR_EXPORT CAnnotException : public CObjMgrException
  92. {
  93. public:
  94.     enum EErrCode {
  95.         eBadLocation,
  96.         eFindFailed,
  97.         eLimitError,
  98.         eOtherError
  99.     };
  100.     virtual const char* GetErrCodeString(void) const;
  101.     NCBI_EXCEPTION_DEFAULT(CAnnotException, CObjMgrException);
  102. };
  103. class NCBI_XOBJMGR_EXPORT CLocMapperException : public CObjMgrException
  104. {
  105. public:
  106.     enum EErrCode {
  107.         eBadLocation,
  108.         eUnknownLength,
  109.         eBadAlignment,
  110.         eOtherError
  111.     };
  112.     virtual const char* GetErrCodeString(void) const;
  113.     NCBI_EXCEPTION_DEFAULT(CLocMapperException, CObjMgrException);
  114. };
  115. class NCBI_XOBJMGR_EXPORT CLoaderException : public CObjMgrException
  116. {
  117. public:
  118.     enum EErrCode {
  119.         eNoData,
  120.         ePrivateData,
  121.         eConnectionFailed,
  122.         eCompressionError,
  123.         eLoaderFailed,
  124.         eNoConnection,
  125.         eOtherError
  126.     };
  127.     virtual const char* GetErrCodeString(void) const;
  128.     NCBI_EXCEPTION_DEFAULT(CLoaderException, CObjMgrException);
  129. };
  130. class NCBI_XOBJMGR_EXPORT CObjmgrUtilException : public CObjMgrException
  131. {
  132. public:
  133.     enum EErrCode {
  134.         eNotImplemented,
  135.         eBadSequenceType,
  136.         eBadLocation
  137.     };
  138.     virtual const char* GetErrCodeString(void) const;
  139.     NCBI_EXCEPTION_DEFAULT(CObjmgrUtilException, CObjMgrException);
  140. };
  141. END_SCOPE(objects)
  142. END_NCBI_SCOPE
  143. /*
  144. * ---------------------------------------------------------------------------
  145. * $Log: objmgr_exception.hpp,v $
  146. * Revision 1000.3  2004/04/12 17:27:21  gouriano
  147. * PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.7
  148. *
  149. * Revision 1.7  2004/03/19 14:19:08  grichenk
  150. * Added seq-loc mapping through a seq-align.
  151. *
  152. * Revision 1.6  2004/03/10 16:24:27  grichenk
  153. * Added CSeq_loc_Mapper
  154. *
  155. * Revision 1.5  2003/11/19 22:18:01  grichenk
  156. * All exceptions are now CException-derived. Catch "exception" rather
  157. * than "runtime_error".
  158. *
  159. * Revision 1.4  2003/11/17 16:03:12  grichenk
  160. * Throw exception in CBioseq_Handle if the parent scope has been reset
  161. *
  162. * Revision 1.3  2003/10/22 16:12:37  vasilche
  163. * Added CLoaderException::eNoConnection.
  164. * Added check for 'fail' state of ID1 connection stream.
  165. * CLoaderException::eNoConnection will be rethrown from CGBLoader.
  166. *
  167. * Revision 1.2  2003/09/30 16:21:59  vasilche
  168. * Updated internal object manager classes to be able to load ID2 data.
  169. * SNP blobs are loaded as ID2 split blobs - readers convert them automatically.
  170. * Scope caches results of requests for data to data loaders.
  171. * Optimized CSeq_id_Handle for gis.
  172. * Optimized bioseq lookup in scope.
  173. * Reduced object allocations in annotation iterators.
  174. * CScope is allowed to be destroyed before other objects using this scope are
  175. * deleted (feature iterators, bioseq handles etc).
  176. * Optimized lookup for matching Seq-ids in CSeq_id_Mapper.
  177. * Added 'adaptive' option to objmgr_demo application.
  178. *
  179. * Revision 1.1  2003/09/05 17:28:32  grichenk
  180. * Initial revision
  181. *
  182. *
  183. * ===========================================================================
  184. */
  185. #endif  // OBJMGR_EXCEPTION__HPP