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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines