Now that IsLiveBroker is sorted out, I'm making much better progress on my service plugin. I've been working with all of the interfaces (Iservice, IBarDataRetrieval, ITickRetrieval, IBroker) in a single monolithic plugin class as this is supposed to operate on a single connection only.
I've set the IService.SupportsMultipleInstances to return false
I can connect live, stream ticks, add/remove symbols etc.. and only one instance is created. History downloads, when run without streaming data, work fine. However, while connected live, if I try to update history on another symbol a new instance of the service (and thus a new connection) is created.
I haven't begun work on the broker piece yet, so I don't know what happens there.
Does SupportsMultipleInstances() only apply to the component service? As it is part of the IService interface it seemed like it might be "plugin" global.