Ticket #4801 (closed: fixed)

Opened 9 years ago

Last modified 5 years ago

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:1 Changed 9 years ago by Russell Taylor

  • Blocking 4802 added

comment:2 Changed 9 years ago by Janik Zikovsky

  • Blocking 4787 added

comment:3 Changed 9 years ago by Russell Taylor

  • Blocking 4802 removed
  • Blocked By 4802 added

comment:4 Changed 9 years ago by Russell Taylor

  • Status changed from new to accepted

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

Note: See TracTickets for help on using tickets.