Seriously. I am not even sure myself. :lol:
I just want to declutter the main folder a bit, its too much in it already. libUltra on the otherhand already gets too much space-shuttle specific stuff in it, which makes it harder to use it for other projects.
Maybe a good rule would be like that:
A DLL that provides a public interface, should define it in a special include folder for that DLL. A DLL that implements that interface does not need to publish this.
So, we would just need to make sure that we can get that implementation. One way would be making the full vessel class definition of MLP or Pad public. I am not sure this is helpful since we are only interested in one or two functions there. Maybe a limited interface would be wiser there as well.
I only got that you feel the main folder has too much stuff... same feelling here. Maybe later we could make a folder for the main vessel files, and leave the main folder for those orphan, non-libUltra, intra-project files like these.
One clarification: when you said A IT0Reference interface, that has two implementations: An OrbiterRuntimeT0Reference class and a DummyT0Reference class, you mean this to be implemented by the MLP (the OrbiterRuntimeT0Reference one), and the SSU vessel just looks for IT0Reference, correct? It makes sense so we can later replace the MLP by some test "something".
If so, do we need an interface for Atlantis to implement (so the MLP can talk to us), or do we just use Atlantis as the target? (I vote for this last one)