Commit 017ba9c3 authored by Andrew Smith's avatar Andrew Smith Committed by Facebook GitHub Bot

Change MergeChannel template parameter names

Summary: This diff changes MergeChannel's template parameter names to adhere to folly's style guidelines. It also reverses the order of the template parameters, as it conceptually makes more sense when the key parameter precedes the value parameter.

Reviewed By: Gownta

Differential Revision: D33033369

fbshipit-source-id: 0b31d18baa26778ba9e8d17b9419cb180b1939d9
parent e1e39232
......@@ -23,15 +23,15 @@ namespace folly {
namespace channels {
namespace detail {
template <typename TValue, typename TSubscriptionId>
template <typename KeyType, typename ValueType>
class IMergeChannelProcessor;
}
/**
* A merge channel allows one to merge multiple receivers into a single output
* receiver. The set of receivers being merged can be changed at runtime. Each
* receiver is added with a subscription ID, that can be used to remove the
* receiver at a later point.
* receiver is added with a key that can be used to remove the receiver at a
* later point.
*
* Example:
*
......@@ -42,19 +42,19 @@ class IMergeChannelProcessor;
* folly::Executor::KeepAlive<folly::SequencedExecutor> getExecutor();
*
* auto [outputReceiver, mergeChannel]
* = createMergeChannel<int, std::string>(getExecutor());
* = createMergeChannel<std::string, int>(getExecutor());
* mergeChannel.addNewReceiver("abc", subscribe("abc"));
* mergeChannel.addNewReceiver("def", subscribe("def"));
* mergeChannel.removeReceiver("abc");
* std::move(mergeChannel).close();
*/
template <typename TValue, typename TSubscriptionId>
template <typename KeyType, typename ValueType>
class MergeChannel {
using TProcessor = detail::IMergeChannelProcessor<TValue, TSubscriptionId>;
using TProcessor = detail::IMergeChannelProcessor<KeyType, ValueType>;
public:
explicit MergeChannel(
detail::IMergeChannelProcessor<TValue, TSubscriptionId>* processor);
detail::IMergeChannelProcessor<KeyType, ValueType>* processor);
MergeChannel(MergeChannel&& other) noexcept;
MergeChannel& operator=(MergeChannel&& other) noexcept;
~MergeChannel();
......@@ -65,21 +65,21 @@ class MergeChannel {
explicit operator bool() const;
/**
* Adds a new receiver to be merged, along with a given subscription ID. If
* the subscription ID matches the ID of an existing receiver, that existing
* receiver is replaced with the new one (and changes to the old receiver will
* no longer be merged). An added receiver can later be removed by passing the
* subscription ID to removeReceiver.
* Adds a new receiver to be merged, along with a given key. If the key
* matches the key of an existing receiver, that existing receiver is replaced
* with the new one (and updates from the old receiver will no longer be
* merged). An added receiver can later be removed by passing the same key to
* removeReceiver.
*/
template <typename TReceiver>
void addNewReceiver(TSubscriptionId subscriptionId, TReceiver receiver);
void addNewReceiver(KeyType key, TReceiver receiver);
/**
* Removes the receiver added with the given subscription ID. The receiver
* will be asynchronously removed, so the consumer may still receive some
* values from this receiver after this call.
* Removes the receiver added with the given key. The receiver will be
* asynchronously removed, so the consumer may still receive some values from
* this receiver after this call.
*/
void removeReceiver(TSubscriptionId subscriptionId);
void removeReceiver(KeyType key);
/**
* Closes the merge channel.
......@@ -95,8 +95,8 @@ class MergeChannel {
*
* @param executor: The SequencedExecutor to use for merging values.
*/
template <typename TValue, typename TSubscriptionId>
std::pair<Receiver<TValue>, MergeChannel<TValue, TSubscriptionId>>
template <typename KeyType, typename ValueType>
std::pair<Receiver<ValueType>, MergeChannel<KeyType, ValueType>>
createMergeChannel(
folly::Executor::KeepAlive<folly::SequencedExecutor> executor);
} // namespace channels
......
......@@ -54,7 +54,7 @@ TEST_F(MergeChannelFixture, ReceiveValues_ReturnMergedValues) {
auto [receiver2, sender2] = Channel<int>::create();
auto [receiver3, sender3] = Channel<int>::create();
auto [mergedReceiver, mergeChannel] =
createMergeChannel<int, std::string>(&executor_);
createMergeChannel<std::string, int>(&executor_);
mergeChannel.addNewReceiver("sub1", std::move(receiver1));
mergeChannel.addNewReceiver("sub2", std::move(receiver2));
......@@ -91,7 +91,7 @@ TEST_F(
auto [receiver2a, sender2a] = Channel<int>::create();
auto [receiver2b, sender2b] = Channel<int>::create();
auto [mergedReceiver, mergeChannel] =
createMergeChannel<int, std::string>(&executor_);
createMergeChannel<std::string, int>(&executor_);
mergeChannel.addNewReceiver("sub1", std::move(receiver1));
mergeChannel.addNewReceiver("sub2", std::move(receiver2a));
......@@ -127,7 +127,7 @@ TEST_F(
auto [receiver2a, sender2a] = Channel<int>::create();
auto [receiver2b, sender2b] = Channel<int>::create();
auto [mergedReceiver, mergeChannel] =
createMergeChannel<int, std::string>(&executor_);
createMergeChannel<std::string, int>(&executor_);
mergeChannel.addNewReceiver("sub1", std::move(receiver1));
mergeChannel.addNewReceiver("sub2", std::move(receiver2a));
......@@ -163,7 +163,7 @@ TEST_F(MergeChannelFixture, ReceiveValues_RemoveReceiver) {
auto [receiver1, sender1] = Channel<int>::create();
auto [receiver2, sender2] = Channel<int>::create();
auto [mergedReceiver, mergeChannel] =
createMergeChannel<int, std::string>(&executor_);
createMergeChannel<std::string, int>(&executor_);
mergeChannel.addNewReceiver("sub1", std::move(receiver1));
mergeChannel.addNewReceiver("sub2", std::move(receiver2));
......@@ -194,7 +194,7 @@ TEST_F(MergeChannelFixture, ReceiveValues_RemoveReceiver_AfterClose) {
auto [receiver1, sender1] = Channel<int>::create();
auto [receiver2, sender2] = Channel<int>::create();
auto [mergedReceiver, mergeChannel] =
createMergeChannel<int, std::string>(&executor_);
createMergeChannel<std::string, int>(&executor_);
mergeChannel.addNewReceiver("sub1", std::move(receiver1));
mergeChannel.addNewReceiver("sub2", std::move(receiver2));
......@@ -227,7 +227,7 @@ TEST_F(MergeChannelFixture, OneInputClosed_ContinuesMerging) {
auto [receiver2, sender2] = Channel<int>::create();
auto [receiver3, sender3] = Channel<int>::create();
auto [mergedReceiver, mergeChannel] =
createMergeChannel<int, std::string>(&executor_);
createMergeChannel<std::string, int>(&executor_);
mergeChannel.addNewReceiver("sub1", std::move(receiver1));
mergeChannel.addNewReceiver("sub2", std::move(receiver2));
......@@ -266,7 +266,7 @@ TEST_F(MergeChannelFixture, OneInputThrows_OutputClosedWithException) {
auto [receiver2, sender2] = Channel<int>::create();
auto [receiver3, sender3] = Channel<int>::create();
auto [mergedReceiver, mergeChannel] =
createMergeChannel<int, std::string>(&executor_);
createMergeChannel<std::string, int>(&executor_);
mergeChannel.addNewReceiver("sub1", std::move(receiver1));
mergeChannel.addNewReceiver("sub2", std::move(receiver2));
......@@ -298,7 +298,7 @@ TEST_F(MergeChannelFixture, Cancelled) {
auto [receiver2, sender2] = Channel<int>::create();
auto [receiver3, sender3] = Channel<int>::create();
auto [mergedReceiver, mergeChannel] =
createMergeChannel<int, std::string>(&executor_);
createMergeChannel<std::string, int>(&executor_);
mergeChannel.addNewReceiver("sub1", std::move(receiver1));
mergeChannel.addNewReceiver("sub2", std::move(receiver2));
......@@ -372,7 +372,7 @@ class MergeChannelFixtureStress : public Test {
TEST_F(MergeChannelFixtureStress, HandleClosed) {
folly::CPUThreadPoolExecutor mergeChannelExecutor(1);
auto [mergeReceiver, mergeChannel] = createMergeChannel<ProducedValue, int>(
auto [mergeReceiver, mergeChannel] = createMergeChannel<int, ProducedValue>(
folly::SerialExecutor::create(&mergeChannelExecutor));
consumer_->startConsuming(std::move(mergeReceiver));
......@@ -398,7 +398,7 @@ TEST_F(MergeChannelFixtureStress, HandleClosed) {
TEST_F(MergeChannelFixtureStress, InputChannelReceivesException) {
folly::CPUThreadPoolExecutor mergeChannelExecutor(1);
auto [mergeReceiver, mergeChannel] = createMergeChannel<ProducedValue, int>(
auto [mergeReceiver, mergeChannel] = createMergeChannel<int, ProducedValue>(
folly::SerialExecutor::create(&mergeChannelExecutor));
consumer_->startConsuming(std::move(mergeReceiver));
......@@ -432,7 +432,7 @@ TEST_F(MergeChannelFixtureStress, InputChannelReceivesException) {
TEST_F(MergeChannelFixtureStress, Cancelled) {
folly::CPUThreadPoolExecutor mergeChannelExecutor(1);
auto [mergeReceiver, mergeChannel] = createMergeChannel<ProducedValue, int>(
auto [mergeReceiver, mergeChannel] = createMergeChannel<int, ProducedValue>(
folly::SerialExecutor::create(&mergeChannelExecutor));
consumer_->startConsuming(std::move(mergeReceiver));
......@@ -458,7 +458,7 @@ TEST_F(MergeChannelFixtureStress, Cancelled) {
TEST_F(MergeChannelFixtureStress, Cancelled_ThenHandleClosedImmediately) {
folly::CPUThreadPoolExecutor mergeChannelExecutor(1);
auto [mergeReceiver, mergeChannel] = createMergeChannel<ProducedValue, int>(
auto [mergeReceiver, mergeChannel] = createMergeChannel<int, ProducedValue>(
folly::SerialExecutor::create(&mergeChannelExecutor));
consumer_->startConsuming(std::move(mergeReceiver));
......@@ -487,7 +487,7 @@ TEST_F(MergeChannelFixtureStress, Cancelled_ThenHandleClosedImmediately) {
TEST_F(MergeChannelFixtureStress, HandleClosed_ThenCancelledImmediately) {
folly::CPUThreadPoolExecutor mergeChannelExecutor(1);
auto [mergeReceiver, mergeChannel] = createMergeChannel<ProducedValue, int>(
auto [mergeReceiver, mergeChannel] = createMergeChannel<int, ProducedValue>(
folly::SerialExecutor::create(&mergeChannelExecutor));
consumer_->startConsuming(std::move(mergeReceiver));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment