1//---------------------------------------------------------------------- 2// This software is part of the Haiku distribution and is covered 3// by the MIT License. 4//--------------------------------------------------------------------- 5/*! 6 \file Range.cpp 7 MIME sniffer range implementation 8*/ 9 10#include <sniffer/Err.h> 11#include <sniffer/Range.h> 12#include <sniffer/Parser.h> 13#include <stdio.h> 14 15using namespace BPrivate::Storage::Sniffer; 16 17Range::Range(int32 start, int32 end) 18 : fStart(-1) 19 , fEnd(-1) 20 , fCStatus(B_NO_INIT) 21{ 22 SetTo(start, end); 23} 24 25status_t 26Range::InitCheck() const { 27 return fCStatus; 28} 29 30Err* 31Range::GetErr() const { 32 if (fCStatus == B_OK) 33 return NULL; 34 else { 35 char start_str[32]; 36 char end_str[32]; 37 sprintf(start_str, "%" B_PRId32, fStart); 38 sprintf(end_str, "%" B_PRId32, fEnd); 39 return new Err(std::string("Sniffer Parser Error -- Invalid range: [") + start_str + ":" + end_str + "]", -1); 40 } 41} 42 43int32 44Range::Start() const { 45 return fStart; 46} 47 48int32 49Range::End() const { 50 return fEnd; 51} 52 53void 54Range::SetTo(int32 start, int32 end) { 55 fStart = start; 56 fEnd = end; 57 if (start > end) { 58 fCStatus = B_BAD_VALUE; 59 } else { 60 fCStatus = B_OK; 61 } 62} 63 64 65 66