From 9d97f52d8de7ef32e7fe701f92da6a32e210eb1b Mon Sep 17 00:00:00 2001 From: Tyler Dauwalder Date: Tue, 6 Aug 2002 08:30:44 +0000 Subject: [PATCH] Added InitCheck() and GetErr() git-svn-id: file:///srv/svn/repos/haiku/trunk/current@606 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/storage/sniffer/Range.h | 6 +++++ src/kits/storage/sniffer/Range.cpp | 31 +++++++++++++++++++------ 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/headers/private/storage/sniffer/Range.h b/headers/private/storage/sniffer/Range.h index 6af58a5d61..fa21ad48d4 100644 --- a/headers/private/storage/sniffer/Range.h +++ b/headers/private/storage/sniffer/Range.h @@ -13,9 +13,14 @@ namespace Sniffer { +class Err; + class Range { public: Range(int32 start, int32 end); + + status_t InitCheck() const; + Err* GetErr() const; int32 Start() const; int32 End() const; @@ -24,6 +29,7 @@ public: private: int32 fStart; int32 fEnd; + status_t fCStatus; }; } diff --git a/src/kits/storage/sniffer/Range.cpp b/src/kits/storage/sniffer/Range.cpp index d48dc8fce7..c64fc2016e 100644 --- a/src/kits/storage/sniffer/Range.cpp +++ b/src/kits/storage/sniffer/Range.cpp @@ -7,6 +7,7 @@ MIME sniffer range implementation */ +#include #include #include #include @@ -16,10 +17,29 @@ using namespace Sniffer; Range::Range(int32 start, int32 end) : fStart(-1) , fEnd(-1) + , fCStatus(B_NO_INIT) { SetTo(start, end); } +status_t +Range::InitCheck() const { + return fCStatus; +} + +Err* +Range::GetErr() const { + if (fCStatus == B_OK) + return NULL; + else { + char start_str[32]; + char end_str[32]; + sprintf(start_str, "%ld", fStart); + sprintf(end_str, "%ld", fEnd); + return new Err(std::string("Sniffer Parser Error -- Invalid range: [") + start_str + ":" + end_str + "]", -1); + } +} + int32 Range::Start() const { return fStart; @@ -32,14 +52,11 @@ Range::End() const { void Range::SetTo(int32 start, int32 end) { - if (start > end) { - char start_str[32]; - char end_str[32]; - sprintf(start_str, "%ld", start); - sprintf(end_str, "%ld", end); - throw new Err(std::string("Sniffer Parser Error -- Invalid range: [") + start_str + ":" + end_str + "]", -1); - } else { fStart = start; fEnd = end; + if (start > end) { + fCStatus = B_BAD_VALUE; + } else { + fCStatus = B_OK; } }