python-pydhcplib is really Architecture: all.
[invirt/packages/python-pydhcplib.git] / pydhcplib / type_strlist.py
1 # Anemon Dhcp
2 # Copyright (C) 2005 Mathieu Ignacio -- mignacio@april.org
3 #
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
17
18 class strlist :
19     def __init__(self,data="") :
20         str_type = type(data)
21         self._str = ""
22         self._list = []
23         
24         if str_type == str :
25             self._str = data
26             for each in range(len(self._str)) :
27                 self._list.append(ord(self._str[each]))
28         elif str_type == list :
29             self._list = data
30             self._str = "".join(map(chr,self._list))
31         else : raise TypeError , 'strlist init : Valid types are str and  list of int'
32
33     # return string
34     def str(self) :
35         return self._str
36
37     # return list (useful for DhcpPacket class)
38     def list(self) :
39         return self._list
40
41     # return int
42     # FIXME
43     def int(self) :
44         return 0
45
46
47
48     """ Useful function for native python operations """
49
50     def __hash__(self) :
51         return self._str.__hash__()
52
53     def __repr__(self) :
54         return self._str
55
56     def __nonzero__(self) :
57         if self._str != "" : return 1
58         return 0
59
60     def __cmp__(self,other) :
61         if self._str == other : return 0
62         return 1
63                     
64
65