Show
Ignore:
Timestamp:
10/18/07 01:15:41 (1 year ago)
Author:
amcgregor
Message:

Lots of changes. Minor updates to the Message class, created the immediate manager and the debug provider, and created a sample extension, utf8qp.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/3.0/turbomail/api.py

    r37 r40  
     1# encoding: utf-8 
     2 
     3"""TurboMail extension API.""" 
     4 
     5 
     6class Extension(object): 
     7        def __init__(self): 
     8                super(Extension, self).__init__() 
     9                self.ready = False 
     10         
     11        def start(self): 
     12                self.ready = True 
     13                 
     14                return True 
     15         
     16        def stop(self): 
     17                if not self.ready: return False 
     18                 
     19                self.ready = False 
     20                 
     21                return True 
     22 
     23 
     24class ProviderFactory(Extension): 
     25        """docstring for ProviderFactory""" 
     26        provider = None 
     27         
     28        def __init__(self): 
     29                super(ProviderFactory, self).__init__() 
     30         
     31        def new(self): 
     32                if not self.ready: return None 
     33                return self.provider() 
     34 
     35 
     36class Provider(object): 
     37        """docstring for Provider""" 
     38        def __init__(self): 
     39                super(Provider, self).__init__() 
     40 
     41        def deliver(self, message): 
     42                raise NotImplementedError, "Provider plugin must override this method without inheritance." 
     43 
     44 
     45class Manager(Extension): 
     46        """docstring for Manager""" 
     47        def __init__(self): 
     48                super(Manager, self).__init__() 
     49         
     50        def deliver(self, message): 
     51                if not self.ready: return False 
     52                return True 
     53