# HG changeset patch
# User Steven Robbins
# Date 1268587916 0
# Branch messenger
# Node ID 4a3e11ca644d49e8c0b96f8f851c657c075c426f
# Parent 9aea0843b34b1329c258f6b3803ee82f1b715c12
Moved default proxy to public and a singleton
diff -r 9aea0843b34b1329c258f6b3803ee82f1b715c12 -r 4a3e11ca644d49e8c0b96f8f851c657c075c426f TinyIoC/TinyMessenger.cs
--- a/TinyIoC/TinyMessenger.cs Sat Mar 13 13:53:34 2010 +0000
+++ b/TinyIoC/TinyMessenger.cs Sun Mar 14 17:31:56 2010 +0000
@@ -126,6 +126,40 @@
{
void Deliver(ITinyMessage message, ITinyMessageSubscription subscription);
}
+
+ ///
+ /// Default "pass through" proxy.
+ ///
+ /// Does nothing other than deliver the message.
+ ///
+ public sealed class DefaultTinyMessageProxy : ITinyMessageProxy
+ {
+ private static readonly DefaultTinyMessageProxy _Instance = new DefaultTinyMessageProxy();
+
+ static DefaultTinyMessageProxy()
+ {
+ }
+
+ ///
+ /// Singleton instance of the proxy.
+ ///
+ public static DefaultTinyMessageProxy Instance
+ {
+ get
+ {
+ return _Instance;
+ }
+ }
+
+ private DefaultTinyMessageProxy()
+ {
+ }
+
+ public void Deliver(ITinyMessage message, ITinyMessageSubscription subscription)
+ {
+ subscription.Deliver(message);
+ }
+ }
#endregion
#region Exceptions
@@ -404,18 +438,6 @@
_MessageFilter = messageFilter;
}
}
-
- #region Default Message Proxy + Singleton
- private static readonly ITinyMessageProxy _DefaultTinyMessageProxy = new DefaultPassThroughTinyMessageProxy();
-
- private class DefaultPassThroughTinyMessageProxy : ITinyMessageProxy
- {
- public void Deliver(ITinyMessage message, ITinyMessageSubscription subscription)
- {
- subscription.Deliver(message);
- }
- }
- #endregion
#endregion
#region Subscription dictionary
@@ -430,7 +452,7 @@
Subscription = subscription;
}
}
-
+
private readonly object _SubscriptionsPadlock = new object();
private readonly Dictionary> _Subscriptions = new Dictionary>();
#endregion
@@ -447,7 +469,7 @@
/// TinyMessageSubscription used to unsubscribing
public TinyMessageSubscriptionToken Subscribe(Action deliveryAction) where TMessage : class, ITinyMessage
{
- return AddSubscriptionInternal(deliveryAction, (m) => true, false, _DefaultTinyMessageProxy);
+ return AddSubscriptionInternal(deliveryAction, (m) => true, false, DefaultTinyMessageProxy.Instance);
}
///
@@ -477,7 +499,7 @@
/// TinyMessageSubscription used to unsubscribing
public TinyMessageSubscriptionToken Subscribe(Action deliveryAction, bool useStrongReferences) where TMessage : class, ITinyMessage
{
- return AddSubscriptionInternal(deliveryAction, (m) => true, useStrongReferences, _DefaultTinyMessageProxy);
+ return AddSubscriptionInternal(deliveryAction, (m) => true, useStrongReferences, DefaultTinyMessageProxy.Instance);
}
///
@@ -507,7 +529,7 @@
/// TinyMessageSubscription used to unsubscribing
public TinyMessageSubscriptionToken Subscribe(Action deliveryAction, Func messageFilter) where TMessage : class, ITinyMessage
{
- return AddSubscriptionInternal(deliveryAction, messageFilter, false, _DefaultTinyMessageProxy);
+ return AddSubscriptionInternal(deliveryAction, messageFilter, false, DefaultTinyMessageProxy.Instance);
}
///
@@ -538,7 +560,7 @@
/// TinyMessageSubscription used to unsubscribing
public TinyMessageSubscriptionToken Subscribe(Action deliveryAction, Func messageFilter, bool useStrongReferences) where TMessage : class, ITinyMessage
{
- return AddSubscriptionInternal(deliveryAction, messageFilter, useStrongReferences, _DefaultTinyMessageProxy);
+ return AddSubscriptionInternal(deliveryAction, messageFilter, useStrongReferences, DefaultTinyMessageProxy.Instance);
}
///