PushService: Added Schwerkraft Git stuff
[enigma2-plugins.git] / pushservice / src / PluginBase.py
1 #######################################################################
2 #
3 #    Push Service for Enigma-2
4 #    Coded by betonme (c) 2012 <glaserfrank(at)gmail.com>
5 #    Support: http://www.i-have-a-dreambox.com/wbb2/thread.php?threadid=167779
6 #
7 #    This program is free software; you can redistribute it and/or
8 #    modify it under the terms of the GNU General Public License
9 #    as published by the Free Software Foundation; either version 2
10 #    of the License, or (at your option) any later version.
11 #
12 #    This program is distributed in the hope that it will be useful,
13 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
14 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 #    GNU General Public License for more details.
16 #
17 #######################################################################
18
19
20 from ModuleBase import ModuleBase
21
22
23 # Plugin base class
24 class PluginBase(ModuleBase):
25         # You only have to overwrite the functions You need
26         # If You don't have to save something, You don't need getOptions / setOptions
27         
28         UniqueCounter = 0
29         
30         ForceSingleInstance = True
31         
32         def __init__(self):
33                 ModuleBase.__init__(self)
34                 # Is called on instance creation
35                 PluginBase.UniqueCounter += 1
36                 self.uniqueid = PluginBase.UniqueCounter
37
38
39         ################################################
40         # Base class functions
41         @classmethod
42         def forceSingle(cls):
43                 return cls.ForceSingleInstance
44
45         @staticmethod
46         def resetUniqueID():
47                 PluginBase.UniqueCounter = 0
48
49
50         ################################################
51         # Functions to be implemented in the plugin
52         def run(self, callback, errback):
53                 # At the end a plugin has to call one of the functions: callback or errback
54                 # Callback should return with at least one of the parameter: Header, Body, Attachment
55                 # If empty or none is returned, nothing will be sent
56                 errback( "Not implemented: " + self.getName() + ".run()")
57
58         # Callback functions
59         def callback(self):
60                 # Called after all services succeded
61                 pass
62
63         def errback(self):
64                 # Called after all services has returned, but at least one has failed
65                 pass
66
67 #       def test(self):
68 #               # Normally you don't have to overwrite this function
69 #               self.run(self)