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