Fixing Account to get protocol class as parameter
[python-purple] / protocol.pyx
1 #
2 #  Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia
3 #
4 #  This file is part of python-purple.
5 #
6 #  python-purple is free software: you can redistribute it and/or modify
7 #  it under the terms of the GNU General Public License as published by
8 #  the Free Software Foundation, either version 3 of the License, or
9 #  (at your option) any later version.
10 #
11 #  python-purple is distributed in the hope that it will be useful,
12 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 #  GNU General Public License for more details.
15 #
16 #  You should have received a copy of the GNU General Public License
17 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 #
19
20 cimport purple
21
22 cdef class Protocol:
23     """
24     Protocol class
25     @param protocol_id
26     """
27
28     def __init__(self, id):
29         self.__id = id
30
31         if self._get_structure() != NULL:
32             self.__exists = True
33         else:
34             self.__exists = False
35
36     cdef plugin.PurplePlugin *_get_structure(self):
37         return plugin.purple_plugins_find_with_id(self.__protocol_id)
38
39     def __get_exists(self):
40         return self.__exists
41     exists = property(__get_exists)
42
43     def __get_id(self):
44         return self.__id
45     id = property(__get_id)
46
47     def __get_name(self):
48         cdef char *name = NULL
49         if self.__exists:
50             name = <char *> plugin.purple_plugin_get_name(self._get_structure())
51             if name != NULL:
52                 return name
53             else:
54                 return None
55         return None
56     name = property(__get_name)