Using Axum programtically? RRS feed

  • Question

  • Can Axum agents, channels and pipelines be created programatically in a dynamic fashion? Let's say that I have an application where I can draw up and configure the relationships between Axum agents, channels and pipelines; or a DSL that does a similar thing textually; can the application or DSL programatically create the Axum agents, channels and pipelines and cause them to execute without generating Axum source code and compiling? Are there factories for creating Axum "objects" ? Is there examples of building Axum applications dynamically?
    Sunday, May 16, 2010 8:31 PM


  • Yes, you can do that -- each agent has a method 'CreateInNewDomain()' which is public and may be invoked from C# or VB. It returns a channel end instance, which can be cast to an interface 'MyChannel.IForward' that you can use directly from C# and VB. It will have methods for all the input ports of the channel.

    Each port is also surfaced as a property on the channel end instance, having the same name as it is declared to have in the channel. This property will return either an IInteractionTarget or an IInteractionSource, depending on the port's direction. Which segues into the pipeline interfaces -- these are also available to C# developers is you want: post data using IInteractionTarget<T>, accept data using IInteractionSource<T>.

    Hoping this helps,


    Monday, May 17, 2010 7:05 PM