Ticket #464 (closed: fixed)

Opened 12 years ago

Last modified 5 years ago

Change AlgorithmManager to store a Proxy version of the algorithm

Reported by: Nick Draper Owned by: Roman Tolchenov
Priority: major Milestone: Iteration 16
Component: Keywords:
Cc: Blocked By:
Blocking: Tester:

Description

Reason for change: This allows the actual algorithm class to be destroyed and any memory used reclaimed. Only the vital information such as property values would be maintained.

The Proxy, which I believe we can make completely generic to all algorithms should store all of the parameters that the original algorithm held.

It should still support the IAlgorithm interface. Except that for initialise and execute the code would have to first create the underlying algorithm, share the property managers and then pass through the original request.

The property Manager inheritance within Algorithm should be extracted and encapsulated in the PropertyManagerOwner class. This would in effect allow the same operations while holding the underlying property Manager as a shared pointer, therefore allowing both the proxy and the algorithm itself to share a PropertyManager.

The IPropertyManager class will ensure the methods of the various implementations stay consistent.

The attached uml diagram should help explain this otherwise come and talk to me.

Attachments

AlgorithmProxy.jpg (196.9 KB) - added by Nick Draper 12 years ago.

Change History

Changed 12 years ago by Nick Draper

comment:1 Changed 12 years ago by Roman Tolchenov

(In [2146]) Windows installer looks for Python both in HKLM and HKCU of the registry. re#464

comment:2 Changed 12 years ago by Martyn Gigg

(In [2151]) Minor fix to installer script. Re #464

comment:3 Changed 12 years ago by Roman Tolchenov

(In [2162]) AlgorithmProxy class is added. References to Algorithm are replaced to IAlgorithm in many cases. re #464

comment:4 Changed 12 years ago by Roman Tolchenov

(In [2163]) Forgotten file. re #464

comment:5 Changed 12 years ago by Roman Tolchenov

(In [2164]) try to fix linux build re #464

comment:6 Changed 12 years ago by Russell Taylor

(In [2165]) Adjust some template function specialisations to point to IPropertyManager. Re #464.

comment:7 Changed 12 years ago by Roman Tolchenov

(In [2166]) another try. re #464

comment:8 Changed 12 years ago by Roman Tolchenov

(In [2171]) Fixing PythonFrameworkTest. re #464

comment:9 Changed 12 years ago by Roman Tolchenov

(In [2175]) This should fix MantidPlot crashes. re #464

comment:10 Changed 12 years ago by Roman Tolchenov

(In [2181]) Changed AlgorithmProxy::executeAsync(). Removed a few doxygen warnings. re #464

comment:11 Changed 12 years ago by Martyn Gigg

(In [2192]) The PythonFrameworkTest had been failing on the Linux build server with a Poco exception due to libraries trying to be loaded from a non-existent location. The LibraryManager now checks that the path it is trying to load actually exists. Re #464

comment:12 Changed 12 years ago by Roman Tolchenov

(In [2193]) AlogorithmProxy tests. More doxygen. re #464

comment:13 Changed 12 years ago by Roman Tolchenov

  • Status changed from new to closed
  • Resolution set to fixed

comment:14 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 1312

Note: See TracTickets for help on using tickets.