For what it's worth - I agree with Frank and, to be honest, can't imagine why
you would ever want to make things any more complex by using DLLs etc. I would
guess that Frank's interspersed comments within the message below were pretty
much made up while he was reading the original message, as they are almost
identical to what I was thinking as I read it.
As far as reliability is concerned, I would certainly avoid the DLL method and
stay within Ada as much as possible.
> I am trying to decide between to different designs that will accomplish
> the same task. And I was just wondering if it was possible (or even
> recommended) to do.
> Here's the situation via an example:
> - I wish to have a wrapper object that will manage a linked list of data.
Protected type around a list (any old list will do).
Booch probably already has a protected type queue.
> - I have an object that will need to call upong the Wrapper object's
> methods to insert, delete and manipulate data inside that linked list.
> - I have another object that will need to take the contents of the wrapper
> object's linked list and process them.
Task - sounds like it might overlap some with the task above.
> - Finally I have another object that will need to take the processed
> linked list and send it say to a serial port.
> In essense, I'm assuming I can do this be either declaring 3 dlls for each
> of those objects plus the dll for the wrapper object with the linked list
> making the methods open to the outside world.
> Or I can declare a bunch of Tasks that could potentially be a task for
> each of the jobs I need done on the linked lists and execute them
> asynchroneously in a controlled environment.
> Only 2 criteria for making this decision.
> 1. I would like the most speed possible.
> 2. The most reliable possible.
> Which method would you recommend?
Stay platform independent, less complex, easier to maintain, and more
Use the Ada tasking model and a protected type.
The tasks will be at least as fast, if not faster, than the DLLs.