The current design where the codec and transport are template parameters to internal::Client is not tenable if the ability to compile CppWAMP as a static/shared library is to be retained. Adding more codecs and transports will lead to a combinatorial explosion of explicit template instantiations with the current design.
I'm therefore changing the design so that codecs and transports are polymorphic. I'm allowing myself to break the API if necessary to accomplish this. I foresee this API breakage to be limited to the operations related to Session creation and transport connection.
The current design where the codec and transport are template parameters to
internal::Client
is not tenable if the ability to compile CppWAMP as a static/shared library is to be retained. Adding more codecs and transports will lead to a combinatorial explosion of explicit template instantiations with the current design.I'm therefore changing the design so that codecs and transports are polymorphic. I'm allowing myself to break the API if necessary to accomplish this. I foresee this API breakage to be limited to the operations related to Session creation and transport connection.