- changed headers so that any low level protocol-specific sizes and
[barry.git] / src / protocol.cc
bloba6d295a63538e840216165bb2fa3ba01e0977960
1 ///
2 /// \file protocol.cc
3 /// USB Blackberry bulk protocol API
4 ///
6 /*
7 Copyright (C) 2005, Net Direct Inc. (http://www.netdirect.ca/)
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU General Public License in the COPYING file at the
19 root directory of this project for more details.
22 #include "protocol.h"
23 #include "protostructs.h"
24 #include "data.h"
25 #include "error.h"
26 #include "debug.h"
28 #include <sstream>
30 namespace Barry {
32 void CheckSize(const Data &packet, int requiredsize)
34 const Packet *p = (const Packet *) packet.GetData();
35 if( p->size != (unsigned int) packet.GetSize() ||
36 packet.GetSize() < requiredsize )
38 std::ostringstream oss;
39 oss << "Bad packet size. Packet: " << p->size
40 << ". DataSize(): " << packet.GetSize()
41 << ". Required size: " << requiredsize;
42 eout(oss.str());
43 eout(packet);
44 throw BError(oss.str());
48 } // namespace Barry