ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/dynbuf.h
(Generate patch)

Comparing deliantra/server/include/dynbuf.h (file contents):
Revision 1.33 by root, Tue Jan 3 11:25:31 2012 UTC vs.
Revision 1.37 by root, Sat Nov 17 23:33:18 2018 UTC

1/* 1/*
2 * This file is part of Deliantra, the Roguelike Realtime MMORPG. 2 * This file is part of Deliantra, the Roguelike Realtime MMORPG.
3 * 3 *
4 * Copyright (©) 2005,2006,2007,2008,2009,2010,2011,2012 Marc Alexander Lehmann / Robin Redeker / the Deliantra team 4 * Copyright (©) 2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
5 * Copyright (©) 2002 Mark Wedel & Crossfire Development Team 5 * Copyright (©) 2002 Mark Wedel & Crossfire Development Team
6 * Copyright (©) 1992 Frank Tore Johansen 6 * Copyright (©) 1992 Frank Tore Johansen
7 * 7 *
8 * Deliantra is free software: you can redistribute it and/or modify it under 8 * Deliantra is free software: you can redistribute it and/or modify it under
9 * the terms of the Affero GNU General Public License as published by the 9 * the terms of the Affero GNU General Public License as published by the
10 * Free Software Foundation, either version 3 of the License, or (at your 10 * Free Software Foundation, either version 3 of the License, or (at your
11 * option) any later version. 11 * option) any later version.
12 * 12 *
13 * This program is distributed in the hope that it will be useful, 13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * You should have received a copy of the Affero GNU General Public License 18 * You should have received a copy of the Affero GNU General Public License
19 * and the GNU General Public License along with this program. If not, see 19 * and the GNU General Public License along with this program. If not, see
20 * <http://www.gnu.org/licenses/>. 20 * <http://www.gnu.org/licenses/>.
21 * 21 *
22 * The authors can be reached via e-mail to <support@deliantra.net> 22 * The authors can be reached via e-mail to <support@deliantra.net>
23 */ 23 */
24 24
25#ifndef DYNBUF_H__ 25#ifndef DYNBUF_H__
26#define DYNBUF_H__ 26#define DYNBUF_H__
84 int size () const { return _size + (ptr - last->data); } 84 int size () const { return _size + (ptr - last->data); }
85 bool empty () const { return !size (); } 85 bool empty () const { return !size (); }
86 86
87 void linearise (void *data); 87 void linearise (void *data);
88 char *linearise () // does not 0-terminate(!) 88 char *linearise () // does not 0-terminate(!)
89 { 89 {
90 return first->next ? _linearise () : first->data; 90 return first->next ? _linearise () : first->data;
91 } 91 }
92 92
93 int room () const { return end - ptr; } 93 int room () const { return end - ptr; }
94 94
96 char *force (int size) 96 char *force (int size)
97 { 97 {
98 if (expect_false (ptr + size > end)) 98 if (expect_false (ptr + size > end))
99 reserve (size); 99 reserve (size);
100 100
101 assume (ptr + size <= end); 101 ecb_assume (ptr + size <= end);
102 102
103 return ptr; 103 return ptr;
104 } 104 }
105 105
106 // used for force + alloc combo 106 // used for force + alloc combo
190 dynbuf_text &operator << (sint32 i) { add (sint32 (i)); return *this; } 190 dynbuf_text &operator << (sint32 i) { add (sint32 (i)); return *this; }
191 dynbuf_text &operator << (sint64 i) { add (sint64 (i)); return *this; } 191 dynbuf_text &operator << (sint64 i) { add (sint64 (i)); return *this; }
192 dynbuf_text &operator << (uint32 i) { add (sint64 (i)); return *this; } 192 dynbuf_text &operator << (uint32 i) { add (sint64 (i)); return *this; }
193 dynbuf_text &operator << (uint64 i) { add (sint64 (i)); return *this; } 193 dynbuf_text &operator << (uint64 i) { add (sint64 (i)); return *this; }
194 194
195 void printf (const char *format, ...) attribute ((format (printf, 2, 3))); 195 void printf (const char *format, ...) ecb_attribute ((format (printf, 2, 3)));
196 void vprintf (const char *format, va_list ap); 196 void vprintf (const char *format, va_list ap);
197 197
198 void add_abilities (const char *name, uint32 abilities); 198 void add_abilities (const char *name, uint32 abilities);
199 void add_paths (const char *name, uint32 paths); 199 void add_paths (const char *name, uint32 paths);
200 200

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines