Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
vsnet_parsecmd.cpp
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software
14  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
15  */
16 
17 #include "vsnet_parsecmd.h"
18 
19 namespace VsnetDownload
20 {
21 RecvCmdDownload::RecvCmdDownload( NetBuffer &buffer ) :
22  _buf( buffer )
23  , _base( NULL )
24 {}
25 
27 {
28  if (_base) delete _base;
29 }
30 
32 {
33  char c = _buf.getChar();
34  switch (c)
35  {
37  {
40  r->num = _buf.getShort();
41  for (int i = 0; i < r->num; i++) {
43  e.ft = _buf.getChar();
44  e.file = _buf.getString();
45  r->files.push_back( e );
46  }
47  _base = r;
48  break;
49  }
51  {
54  r->num = _buf.getShort();
55  for (int i = 0; i < r->num; i++) {
57  e.file = _buf.getString();
58  e.ok = _buf.getChar();
59  r->files.push_back( e );
60  }
61  _base = r;
62  break;
63  }
65  {
68  r->num = _buf.getShort();
69  for (int i = 0; i < r->num; i++) {
71  e.ft = _buf.getChar();
72  e.file = _buf.getString();
73  r->files.push_back( e );
74  }
75  _base = r;
76  break;
77  }
79  {
82  r->file = _buf.getString();
83  _base = r;
84  break;
85  }
87  {
90  r->file = _buf.getString();
91  r->payload_len = _buf.getShort();
92  r->payload = _buf.getBuffer( r->payload_len );
93  _base = r;
94  break;
95  }
97  {
100  r->file = _buf.getString();
101  r->file_len = _buf.getInt32();
102  r->payload_len = _buf.getShort();
103  r->payload = _buf.getBuffer( r->payload_len );
104  _base = r;
105  break;
106  }
108  {
111  r->payload_len = _buf.getShort();
112  r->payload = _buf.getBuffer( r->payload_len );
113  _base = r;
114  break;
115  }
117  {
120  r->payload_len = _buf.getShort();
121  r->payload = _buf.getBuffer( r->payload_len );
122  _base = r;
123  break;
124  }
125  default:
126  {
129  _base = r;
130  break;
131  }
132  }
133  return _base->c;
134 }
135 }; //VsnetDownload
136