Atlas 0.7.0
Networking protocol for the Worldforge system.
binary2.py
1#binary2 codec: nothing really here yet
2
3#Copyright 2001 by Aloril
4
5#This library is free software; you can redistribute it and/or
6#modify it under the terms of the GNU Lesser General Public
7#License as published by the Free Software Foundation; either
8#version 2.1 of the License, or (at your option) any later version.
9
10#This library is distributed in the hope that it will be useful,
11#but WITHOUT ANY WARRANTY; without even the implied warranty of
12#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13#Lesser General Public License for more details.
14
15#You should have received a copy of the GNU Lesser General Public
16#License along with this library; if not, write to the Free Software
17#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
19
20from .binary1 import *
21
22from . import xml2
23#attribute_type_dict = {"id": user_type}
24attribute_type_dict = {}
25next_type = user_type
26for name in list(xml2.attribute_type_dict.keys()):
27 attribute_type_dict[name] = next_type
28 next_type = next_type + 1
29
30discard_name=""
31
32def gen_binary2(obj):
33 gen = GenerateBinary2()
34 return gen.encode(obj)
35
37 def encode_attribute(self, name, value):
38 #CHEAT!: assuming that type code is 1 byte (which though always is true for binary1...)
39 type = attribute_type_dict.get(name, 0)
40 if type:
41 return encode_pos_int(type) + self.encode(value)[1:]
42 return GenerateBinary1.encode_attribute(self, name, value)
43
44 def encode_map(self, obj):
45 str_list = [encode_pos_int(map_type) + encode_pos_int(len(obj))]
46 for name, value in list(obj.items()):
47 if name!=discard_name:
48 str_list.append(self.encode_attributeencode_attribute(name, value))
49 return string.join(str_list, "")
50
51
71
72
73
75 pass
76
def encode_attribute(self, name, value)
Definition: binary1.py:113
def encode_float(self, value): mant, exp = frexp(value) mant = long(mant *2L**20) exp = exp - 20 if m...
Definition: binary2.py:74
def encode_attribute(self, name, value)
Definition: binary2.py:37