Version 1.12 (15. Dec 2012)

  • CHG: Assemblies targeting .NET Framework 4.5 are now compiled against the official release version 4.5.8 available via NuGet (Microsoft.TPL.Dataflow).

amarok.agents

Dispatcher
  • NEW: Introduced interface IDispatcher to represent the concept of a dispatcher. A dispatcher is an object that is capable to forward (dispatch) messages to appropriate message handler. In general this is done by invoking the message handler method and supplying the message as an argument to the invoked method. In addition, a dispatcher provides rich queuing and scheduling mechanism that decouple caller from callee.

  • NEW: The interface IDispatcher contains a single method Post(Message). Overloaded variants of Post(..) and PostOperation(..) are provided via extension methods implemented in DispatcherExtensions.

  • NEW: The default implementation of a dispatcher that is used in agents is publicly available as DefaultDispatcher.

Publisher
  • NEW: Introduced interfaces IPublisher and IAdvertiser to represent the concepts of a publisher. A publisher is an object that is capable to send out (publish) messages to interested consumers (subscribers). In general a publisher serves two sides. First, the publishing side, second the side that manages consumer subscriptions. IPublisher represents the publishing side. IAdvertiser represents the side responsible for managing subscriptions.

  • NEW: The interface IPublisher contains a single method Publish(Message). Overloaded variants of Publish(..) and PublishOperation(..) are provided via extension methods implemented in PublisherExtensions.

  • NEW: Likewise, the interface IAdvertiser contains an overloaded method Subscribe(..). Further overloads are provided via extension methods implemented in AdvertiserExtensions.

  • NEW: The default implementation of a publisher that is used in agents and in the message bus implementation is publicly available as DefaultPublisher.

MessageBus
  • CHG: [Breaking] The interface IMessageBus now realizes IAdvertiser and IPublisher. The overloaded methods Subscribe(..), Publish(..) and PublishOperation(..) are now defined by IAdvertiser and IPublisher instead of by IMessageBus directly.

  • CHG: [Breaking] Renamed the default implementation of a message bus from MessageBus to DefaultMessageBus.

Messages
  • CHG: Optimized Operation{TResult, TProgress} so that the logic required for reporting progress is lazily loaded as needed. Since most operation messages won't use the progress reporting feature this reduces the overall allocation rate.
Agent
  • CHG: [Breaking] Introduced exception AgentSpawnException. This exception is thrown whenever the instantiation of a new agent fails. Prior a MissingMethodException was thrown.

  • CHG: [Breaking] The interface IAgent now realizes IAdvertiser and IDispatcher. The method Post(..) is now defined by IDispatcher instead of by IAgent directly. Furthermore, types implementing IAgent now have to realize IAdvertiser. AgentReference has been updated accordingly. Nearly all extension methods on IAgent are now available either for IDispatcher or for IAdvertiser.

  • NEW: Introduced interface IAgentProxy as companion to IAgent. IAgentProxy represents the inside view of an agent, which provides functionality to post and publish messages, whereas IAgent represents the outside view of an agent, which does not allow the publishing of messages. Since Agent realizes IAgentProxy, the new interface can be used to refactor logic out of agents (types derived from Agent) into helper types that accept a reference to an agent via IAgentProxy, which enables the helper types to post and publish messages much like inside of an agent.

Subsystem
  • CHG: [Breaking] Removed protected method RegisterSubscription(..) from Subsystem.

Last edited Dec 15, 2012 at 5:31 PM by OlafKober, version 1

Comments

No comments yet.