I am writing a small distributed program. The program consists of two publishers and two subscribers. Each subscriber is multi-threaded with two threads of control. Each thread subscribes to one of the two subscribers. This means each subscriber will subscribe to both publishers, one in each thread.
When a thread in one of the subscriber receives a specific message from the current subscribing publisher, it should stop subscribing to the current publisher, and start subscribing to the other publisher.
How does a subscriber unsubscribe to the current publisher? I change the topic the subscriber associated but failed. What is the mechanism to construct and destroy a connection between a publisher and a subscriber? Topic match? QoS policy match? Which level of match is key to the problem?
Could you recommend some useful tutorials to learn the mechanism of Open DDS? I read the developer guide from official site (http://opendds.org/) but still cannot figure out the mechanism.