Move the Relation functor to a separate file.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Move the trace buffer handling into a separate module.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Move all the logging functions into the Logging module.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Move the main queue handling and the clock to separate modules.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Move the queue 'Directory' access into a sub-module.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Make a message_id into a pair of (queue name, id)

This will allow message ids to be generated per queue rather
than globally which will help understand the debug messages.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Make a Q.t containing everything you need to know about a specific queue

This replaces an ad-hoc set of hashtables.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
The result of a SEND message is now an option.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Make most of the switch into a library, so it can be tested via the toplevel.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Regenerate OASIS.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>