Ticket #4801 (closed: fixed)
Live Data: Implement LiveListenerManager & LiveListenerFactory
Reported by: | Russell Taylor | Owned by: | Russell Taylor |
---|---|---|---|
Priority: | critical | Milestone: | Release 2.1 |
Component: | Mantid | Keywords: | LiveData, ADARA |
Cc: | Blocked By: | #4802 | |
Blocking: | #4787 | Tester: | Stuart Campbell |
Description
As described in https://github.com/mantidproject/documents/blob/master/Design/Live_Event_Data_Detailed_Design_Document.doc
These will be very similar to the AlgorithmFactory/Manager.
Change History
comment:5 Changed 9 years ago by Russell Taylor
Add LiveListenerFactory first version. Re #4801.
Deviating from what's currently written in the design document because: (a) I don't think that maintaining listener lifetime here and handing
out references to existing listeners will work out well - e.g. if two MonitorLiveData instances were created they would 'compete' in calling ILiveListener::extractData.
(b) Even if we did there's no need for a separate LiveListenerManager
class (see UnitFactory which does the same thing).
Changeset: e3aa3c768a772c48d0b00b92604ced61719b7fbc
comment:6 Changed 9 years ago by Russell Taylor
Fix cut'n'paste error. Re #4801.
Changeset: 9093f6932f87f9b515221e4d62d624811bfb8c35
comment:7 Changed 9 years ago by Russell Taylor
Add LiveListenerFactory first version. Re #4801.
Deviating from what's currently written in the design document because: (a) I don't think that maintaining listener lifetime here and handing
out references to existing listeners will work out well - e.g. if two MonitorLiveData instances were created they would 'compete' in calling ILiveListener::extractData.
(b) Even if we did there's no need for a separate LiveListenerManager
class (see UnitFactory which does the same thing).
Changeset: e3aa3c768a772c48d0b00b92604ced61719b7fbc
comment:8 Changed 9 years ago by Russell Taylor
Fix cut'n'paste error. Re #4801.
Changeset: 9093f6932f87f9b515221e4d62d624811bfb8c35
comment:9 Changed 9 years ago by Russell Taylor
Add live listener field to FacilityInfo. Re #4801.
A few minor tidy-ups alongside that.
Changeset: 9f13ae10aa29bdc5c4ffd9e34066127249da03d7
comment:10 Changed 9 years ago by Russell Taylor
Add live data fields to test facility. Re #4801.
Changeset: b10600daf5843b10d9ab7a16436ab463c02a54a4
comment:11 Changed 9 years ago by Russell Taylor
Re #4801. Split up long FacilityInfo constructor.
Changeset: 33aa8c4cb3f9709ec5e3da9f964d990c7449f45d
comment:12 Changed 9 years ago by Russell Taylor
Re #4801. Add reading of livelistener attribute and test.
Changeset: 9987938320071296d24b914fd9b53d7cb686a00f
comment:13 Changed 9 years ago by Russell Taylor
Add live listener field to FacilityInfo. Re #4801.
A few minor tidy-ups alongside that.
Changeset: 9f13ae10aa29bdc5c4ffd9e34066127249da03d7
comment:14 Changed 9 years ago by Russell Taylor
Add live data fields to test facility. Re #4801.
Changeset: b10600daf5843b10d9ab7a16436ab463c02a54a4
comment:15 Changed 9 years ago by Russell Taylor
Re #4801. Split up long FacilityInfo constructor.
Changeset: 33aa8c4cb3f9709ec5e3da9f964d990c7449f45d
comment:16 Changed 9 years ago by Russell Taylor
Re #4801. Add reading of livelistener attribute and test.
Changeset: 9987938320071296d24b914fd9b53d7cb686a00f
comment:17 Changed 9 years ago by Russell Taylor
Re #4801. Expand FacilityInfo unit test.
Let to a little refactoring in the class itself. In particular, removed an assumption that instruments always have uppercase names.
Changeset: 09f986054c68e156c3407c51e823f702610c7f7f
comment:18 Changed 9 years ago by Russell Taylor
Re #4801. Add unit test suite for InstrumentInfo class.
Changeset: e1226147fed75297b1e3e57aa4099d95dd628b8e
comment:19 Changed 9 years ago by Russell Taylor
Re #4801. Add live listener details to InstrumentInfo.
Read in from facilities file.
Changeset: 935fae24ac62a3a461a803a19c100d6d1345c77c
comment:20 Changed 9 years ago by Russell Taylor
Re #4801. Clear warnings that don't show up in a debug build
...for some reason. The warnings are plain wrong anyway - I notice that newer versions of gcc are smarter.
Changeset: 5214b5dc7d1d63834831baa1adecb41f7edeedb1
comment:21 Changed 9 years ago by Russell Taylor
Re #4801. LiveListenerFactory looks up listener from instrument name.
The create() method takes in an instrument name and will look in the InstrumentInfo object for the live listener class to create and the connection string to call ILiveListener::connect() with.
You can still pass in a concrete listener class name as well, so existing tests will still work.
Changeset: 8b5fd736b452c4fb7b0e5d988dfe83c5c0cfb4a5
comment:22 Changed 9 years ago by Russell Taylor
- Status changed from accepted to verify
- Resolution set to fixed
comment:23 Changed 8 years ago by Stuart Campbell
- Status changed from verify to verifying
- Tester set to Stuart Campbell
comment:24 Changed 8 years ago by Stuart Campbell
- Status changed from verifying to closed
Been playing with the Live data stuff for about a day trying to break it. Seems to be very stable, been running 7 instances, all with preserve events=true, and all seems happy.
comment:25 Changed 5 years ago by Stuart Campbell
This ticket has been transferred to github issue 5648