Как трансформировать cold observable в hot?

Существует два способа трансформировать cold observable в hot.

Первый – это использование методов publish() и connect().
Метод publish() создает из observable объект типа ConnectableObservable. ConnectableObservable не начинает рассылать элементы, когда на него подписываются. Рассылка запускается после вызова метода connect(). Когда вызван метод connect(), начинается эмитинг элементов независимо от того, есть ли подписчики.

Второй способ – обернуть observable в subject, как показано на картинке. В этом случае эмитинг элементов оригинального observable стартует, когда на него подписывается subject. А subject, являясь hot observable, рассылает элементы независимо от наличия подписчиков.
Как трансформировать cold observable в hot?