mirror of
https://github.com/ruby-opencv/ruby-opencv
synced 2023-03-27 23:22:12 -04:00
modified CvError to handle errors
This commit is contained in:
parent
95777e75c1
commit
68ff16f20e
4 changed files with 140 additions and 132 deletions
|
@ -9,7 +9,7 @@
|
|||
************************************************************/
|
||||
#include "cverror.h"
|
||||
/*
|
||||
* Document-module: OpenCV::CvError
|
||||
* Document-class: OpenCV::CvError
|
||||
*
|
||||
* =Internal OpenCV errors
|
||||
*
|
||||
|
@ -57,75 +57,90 @@
|
|||
* * CvStatusNotImplemented
|
||||
* * CvStsBadMemoryBlock
|
||||
*/
|
||||
#define RESIST_CVERROR(object_name, error_code, parent) st_insert(cv_error, (st_data_t)error_code, (st_data_t)rb_define_class_under(rb_module_opencv(), object_name, parent))
|
||||
|
||||
__NAMESPACE_BEGIN_OPENCV
|
||||
__NAMESPACE_BEGIN_CVERROR
|
||||
|
||||
st_table *cv_error = st_init_numtable();
|
||||
|
||||
VALUE module;
|
||||
VALUE rb_klass;
|
||||
|
||||
void
|
||||
define_ruby_module()
|
||||
REGISTER_CVERROR(const char* object_name, int error_code)
|
||||
{
|
||||
st_insert(cv_error, (st_data_t)error_code,
|
||||
(st_data_t)rb_define_class_under(rb_module_opencv(), object_name, rb_klass));
|
||||
}
|
||||
|
||||
VALUE
|
||||
rb_class()
|
||||
{
|
||||
return rb_klass;
|
||||
}
|
||||
|
||||
void define_ruby_class()
|
||||
{
|
||||
if (rb_klass)
|
||||
return;
|
||||
|
||||
/*
|
||||
* opencv = rb_define_module("OpenCV");
|
||||
*
|
||||
* note: this comment is used by rdoc.
|
||||
*/
|
||||
VALUE opencv = rb_module_opencv();
|
||||
|
||||
module = rb_define_module_under(opencv, "CvError");
|
||||
RESIST_CVERROR("CvStatusBackTrace", CV_StsBackTrace, rb_eStandardError);
|
||||
RESIST_CVERROR("CvStatusError", CV_StsError, rb_eStandardError);
|
||||
RESIST_CVERROR("CvStatusInternal", CV_StsInternal, rb_eStandardError);
|
||||
RESIST_CVERROR("CvStatusNoMemory", CV_StsNoMem, rb_eNoMemError);
|
||||
RESIST_CVERROR("CvStatusBadArgument", CV_StsBadArg, rb_eArgError);
|
||||
RESIST_CVERROR("CvStatusBadFunction", CV_StsBadFunc, rb_eStandardError);
|
||||
RESIST_CVERROR("CvStatusNoConverge", CV_StsNoConv, rb_eStandardError);
|
||||
RESIST_CVERROR("CvStatusAutoTrace", CV_StsAutoTrace, rb_eStandardError);
|
||||
|
||||
RESIST_CVERROR("CvHeaderIsNull", CV_HeaderIsNull, rb_eStandardError);
|
||||
RESIST_CVERROR("CvBadImageSize", CV_BadImageSize, rb_eRangeError);
|
||||
RESIST_CVERROR("CvBadOffset", CV_BadOffset, rb_eStandardError);
|
||||
RESIST_CVERROR("CvBadDataPointer", CV_BadDataPtr, rb_eStandardError);
|
||||
RESIST_CVERROR("CvBadStep", CV_BadStep, rb_eStandardError);
|
||||
RESIST_CVERROR("CvBadModelOrChannelSequence", CV_BadModelOrChSeq, rb_eStandardError);
|
||||
RESIST_CVERROR("CvBadNumChannels", CV_BadNumChannels, rb_eStandardError);
|
||||
RESIST_CVERROR("CvBadNumChannel1U", CV_BadNumChannel1U, rb_eStandardError);
|
||||
RESIST_CVERROR("CvNBadDepth", CV_BadDepth, rb_eStandardError);
|
||||
RESIST_CVERROR("CvBadAlphaChannel", CV_BadAlphaChannel, rb_eStandardError);
|
||||
RESIST_CVERROR("CvBadOrder", CV_BadOrder, rb_eStandardError);
|
||||
RESIST_CVERROR("CvBadOrigin", CV_BadOrigin, rb_eStandardError);
|
||||
RESIST_CVERROR("CvBadAlign", CV_BadAlign, rb_eStandardError);
|
||||
RESIST_CVERROR("CvBadCallBack", CV_BadCallBack, rb_eStandardError);
|
||||
RESIST_CVERROR("CvBadTileSize", CV_BadTileSize, rb_eStandardError);
|
||||
RESIST_CVERROR("CvBadCOI", CV_BadCOI, rb_eStandardError);
|
||||
RESIST_CVERROR("CvBadROISize", CV_BadROISize, rb_eStandardError);
|
||||
|
||||
RESIST_CVERROR("CvMaskIsTiled", CV_MaskIsTiled, rb_eStandardError);
|
||||
|
||||
RESIST_CVERROR("CvStatusNullPointer", CV_StsNullPtr, rb_eStandardError);
|
||||
RESIST_CVERROR("CvStatusVectorLengthError", CV_StsVecLengthErr, rb_eStandardError);
|
||||
RESIST_CVERROR("CvStatusFilterStructContentError", CV_StsFilterStructContentErr, rb_eStandardError);
|
||||
RESIST_CVERROR("CvStatusKernelStructContentError", CV_StsKernelStructContentErr, rb_eStandardError);
|
||||
RESIST_CVERROR("CvStatusFilterOffsetError", CV_StsFilterOffsetErr, rb_eStandardError);
|
||||
|
||||
RESIST_CVERROR("CvStatusBadSize", CV_StsBadSize, rb_eStandardError);
|
||||
RESIST_CVERROR("CvStatusDivByZero", CV_StsDivByZero, rb_eStandardError);
|
||||
RESIST_CVERROR("CvStatusInplaceNotSupported", CV_StsInplaceNotSupported, rb_eStandardError);
|
||||
RESIST_CVERROR("CvStatusObjectNotFound", CV_StsObjectNotFound, rb_eStandardError);
|
||||
RESIST_CVERROR("CvStatusUnmatchedFormats", CV_StsUnmatchedFormats, rb_eStandardError);
|
||||
RESIST_CVERROR("CvStatusBadFlag", CV_StsBadFlag, rb_eStandardError);
|
||||
RESIST_CVERROR("CvStatusBadPoint", CV_StsBadPoint, rb_eStandardError);
|
||||
RESIST_CVERROR("CvStatusBadMask", CV_StsBadMask, rb_eStandardError);
|
||||
RESIST_CVERROR("CvStatusUnmatchedSizes", CV_StsUnmatchedSizes, rb_eStandardError);
|
||||
RESIST_CVERROR("CvStatusUnsupportedFormat", CV_StsUnsupportedFormat, rb_eStandardError);
|
||||
RESIST_CVERROR("CvStatusOutOfRange", CV_StsOutOfRange, rb_eStandardError);
|
||||
RESIST_CVERROR("CvStatusParseError", CV_StsParseError, rb_eStandardError);
|
||||
RESIST_CVERROR("CvStatusNotImplemented", CV_StsNotImplemented, rb_eNotImpError);
|
||||
RESIST_CVERROR("CvStsBadMemoryBlock", CV_StsBadMemBlock,rb_eStandardError);
|
||||
|
||||
rb_klass = rb_define_class_under(opencv, "CvError", rb_eStandardError);
|
||||
REGISTER_CVERROR("CvStsBackTrace", CV_StsBackTrace);
|
||||
REGISTER_CVERROR("CvStsError", CV_StsError);
|
||||
REGISTER_CVERROR("CvStsInternal", CV_StsInternal);
|
||||
REGISTER_CVERROR("CvStsNoMem", CV_StsNoMem);
|
||||
REGISTER_CVERROR("CvStsBadArg", CV_StsBadArg);
|
||||
REGISTER_CVERROR("CvStsBadFunc", CV_StsBadFunc);
|
||||
REGISTER_CVERROR("CvStsNoConv", CV_StsNoConv);
|
||||
REGISTER_CVERROR("CvStsAutoTrace", CV_StsAutoTrace);
|
||||
REGISTER_CVERROR("CvHeaderIsNull", CV_HeaderIsNull);
|
||||
REGISTER_CVERROR("CvBadImageSize", CV_BadImageSize);
|
||||
REGISTER_CVERROR("CvBadOffset", CV_BadOffset);
|
||||
REGISTER_CVERROR("CvBadDataPtr", CV_BadDataPtr);
|
||||
REGISTER_CVERROR("CvBadStep", CV_BadStep);
|
||||
REGISTER_CVERROR("CvBadModelOrChSeq", CV_BadModelOrChSeq);
|
||||
REGISTER_CVERROR("CvBadNumChannels", CV_BadNumChannels);
|
||||
REGISTER_CVERROR("CvBadNumChannel1U", CV_BadNumChannel1U);
|
||||
REGISTER_CVERROR("CvBadDepth", CV_BadDepth);
|
||||
REGISTER_CVERROR("CvBadAlphaChannel", CV_BadAlphaChannel);
|
||||
REGISTER_CVERROR("CvBadOrder", CV_BadOrder);
|
||||
REGISTER_CVERROR("CvBadOrigin", CV_BadOrigin);
|
||||
REGISTER_CVERROR("CvBadAlign", CV_BadAlign);
|
||||
REGISTER_CVERROR("CvBadCallBack", CV_BadCallBack);
|
||||
REGISTER_CVERROR("CvBadTileSize", CV_BadTileSize);
|
||||
REGISTER_CVERROR("CvBadCOI", CV_BadCOI);
|
||||
REGISTER_CVERROR("CvBadROISize", CV_BadROISize);
|
||||
REGISTER_CVERROR("CvMaskIsTiled", CV_MaskIsTiled);
|
||||
REGISTER_CVERROR("CvStsNullPtr", CV_StsNullPtr);
|
||||
REGISTER_CVERROR("CvStsVecLengthErr", CV_StsVecLengthErr);
|
||||
REGISTER_CVERROR("CvStsFilterStructContentErr", CV_StsFilterStructContentErr);
|
||||
REGISTER_CVERROR("CvStsKernelStructContentErr", CV_StsKernelStructContentErr);
|
||||
REGISTER_CVERROR("CvStsFilterOffsetErr", CV_StsFilterOffsetErr);
|
||||
REGISTER_CVERROR("CvStsBadSize", CV_StsBadSize);
|
||||
REGISTER_CVERROR("CvStsDivByZero", CV_StsDivByZero);
|
||||
REGISTER_CVERROR("CvStsInplaceNotSupported", CV_StsInplaceNotSupported);
|
||||
REGISTER_CVERROR("CvStsObjectNotFound", CV_StsObjectNotFound);
|
||||
REGISTER_CVERROR("CvStsUnmatchedFormats", CV_StsUnmatchedFormats);
|
||||
REGISTER_CVERROR("CvStsBadFlag", CV_StsBadFlag);
|
||||
REGISTER_CVERROR("CvStsBadPoint", CV_StsBadPoint);
|
||||
REGISTER_CVERROR("CvStsBadMask", CV_StsBadMask);
|
||||
REGISTER_CVERROR("CvStsUnmatchedSizes", CV_StsUnmatchedSizes);
|
||||
REGISTER_CVERROR("CvStsUnsupportedFormat", CV_StsUnsupportedFormat);
|
||||
REGISTER_CVERROR("CvStsOutOfRange", CV_StsOutOfRange);
|
||||
REGISTER_CVERROR("CvStsParseError", CV_StsParseError);
|
||||
REGISTER_CVERROR("CvStsNotImplemented", CV_StsNotImplemented);
|
||||
REGISTER_CVERROR("CvStsBadMemBlock", CV_StsBadMemBlock);
|
||||
REGISTER_CVERROR("CvStsAssert", CV_StsAssert);
|
||||
REGISTER_CVERROR("CvGpuNotSupported", CV_GpuNotSupported);
|
||||
REGISTER_CVERROR("CvGpuApiCallError", CV_GpuApiCallError);
|
||||
REGISTER_CVERROR("CvGpuNppCallError", CV_GpuNppCallError);
|
||||
REGISTER_CVERROR("CvGpuCufftCallError", CV_GpuCufftCallError);
|
||||
}
|
||||
|
||||
VALUE
|
||||
|
@ -136,5 +151,11 @@ by_code(int error_code)
|
|||
return klass ? klass : rb_eStandardError;
|
||||
}
|
||||
|
||||
void
|
||||
raise_cverror(cv::Exception e)
|
||||
{
|
||||
rb_raise(by_code(e.code), e.what());
|
||||
}
|
||||
|
||||
__NAMESPACE_END_CVERROR
|
||||
__NAMESPACE_END_OPENCV
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue