## grendel.storage.intertwingle
Class Twingle

    java.lang.Object
      |
      +--grendel.storage.intertwingle.Twingle

public class Twingle
extends java.lang.Object
implements java.lang.Runnable

This is the glue between the storage of intertwingle data and the rest of the mail system. It will probably get thrown out or extensively rewritten; I'm still playing.

Field Summary
`protected DB` | `db`
`protected java.util.Vector` | `queue`
`protected java.lang.Thread` | `thread`

Method Summary
`void` | `add(javax.mail.internet.InternetHeaders headers, javax.mail.Folder folder)`
`static Twingle` | `GetSingleton()`
`protected void` | `hackAddressList(java.lang.String id, javax.mail.internet.InternetHeaders headers, java.lang.String slot)` Find the given header ("to" or "cc"), and assert an entry for each address in it.
`void` | `run()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### db

    protected DB db

### thread

    protected java.lang.Thread thread

### queue

    protected java.util.Vector queue

Method Detail

### GetSingleton

    public static Twingle GetSingleton()

### add

    public void add(javax.mail.internet.InternetHeaders headers,
                    javax.mail.Folder folder)

### hackAddressList

    protected void hackAddressList(java.lang.String id,
                                   javax.mail.internet.InternetHeaders headers,
                                   java.lang.String slot)

  Find the given header ("to" or "cc"), and assert an entry for each address in it. This needs the code to parse the zillions of different kinds of addresses; for now, we just assume everything is of the form "Full name <mail@addr.com>".

### run

    public void run()

  Specified by:
    run in interface java.lang.Runnable