- added initial parsing of ServiceBook field 0x09, and calling it
[barry.git] / src / parser.cc
blobca8d5a5fda261ed16ed79e938147a2d822cc717d
1 ///
2 /// \file parser.cc
3 /// Virtual parser functor class. Also, all protocol-specific
4 /// parser code goes in here.
5 ///
7 /*
8 Copyright (C) 2005-2006, Net Direct Inc. (http://www.netdirect.ca/)
10 This program is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation; either version 2 of the License, or
13 (at your option) any later version.
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19 See the GNU General Public License in the COPYING file at the
20 root directory of this project for more details.
23 #include "parser.h"
24 #include "protocol.h"
25 #include "protostructs.h"
27 namespace Barry {
29 bool Parser::GetOperation(const Data &data, unsigned int &operation)
31 // check size to make sure we have up to the DBAccess operation byte
32 if( (unsigned int)data.GetSize() < (SB_PACKET_DBACCESS_HEADER_SIZE + 1) )
33 return false;
35 MAKE_PACKET(pack, data);
36 operation = pack->u.db.u.response.operation;
37 return true;
40 } // namespace Barry