[WebIf]: Fix some bugs in timer handling
[enigma2-plugins.git] / pushservice / src / ServiceBase.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 from ModuleBase import ModuleBase
20
21
22 # Service base class
23 class ServiceBase(ModuleBase):
24         # You only have to overwrite the functions You need
25         # If You don't have to save something, You don't need getOptions / setOptions
26         
27         UniqueCounter = 0
28         
29         ForceSingleInstance = True
30         
31         def __init__(self):
32                 ModuleBase.__init__(self)
33                 # Is called on instance creation
34                 ServiceBase.UniqueCounter += 1
35                 self.uniqueid = ServiceBase.UniqueCounter
36
37
38         ################################################
39         # Base class functions
40         @classmethod
41         def forceSingle(cls):
42                 return cls.ForceSingleInstance
43
44         @staticmethod
45         def resetUniqueID():
46                 ServiceBase.UniqueCounter = 0
47
48
49         ################################################
50         # Functions to be implemented in the plugin
51         def push(self, callback, errback, pluginname, subject, body="", attachments=[]):
52                 # Will be called, if a plugin wants to send a notification
53                 # At the end a service has to call one of the functions: callback or errback
54                 errback( "Not implemented: " + self.getName() + ".push()")
55
56 #       def test(self, plugin, subject, body="", attachments=[], callback=None, errback=None):
57 #               # Normally you don't have to overwrite this function
58 #               self.push(self, plugin, subject, body="", attachments=[], callback=None, errback=None)