Commit c27fd279 authored by Patrick Monette's avatar Patrick Monette Committed by Commit Bot

[PM] Remove VoteConsumerDefaultImpl

This class is currently unused. Also, the ability to switch out the
VoteReceipt in ChangeVote() will go away in a future CL, rendering this
class obsolete.

Bug: 971272
Change-Id: Ie5d59b3d6ebba10acbb312e63aaaa701b20690ae
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2518207
Commit-Queue: Chris Hamilton <chrisha@chromium.org>
Reviewed-by: default avatarChris Hamilton <chrisha@chromium.org>
Cr-Commit-Position: refs/heads/master@{#823864}
parent 666572d1
......@@ -59,7 +59,6 @@ using VoteReceipt = voting::VoteReceipt<Vote>;
using VotingChannel = voting::VotingChannel<Vote>;
using VotingChannelFactory = voting::VotingChannelFactory<Vote>;
using VoteConsumer = voting::VoteConsumer<Vote>;
using VoteConsumerDefaultImpl = voting::VoteConsumerDefaultImpl<Vote>;
using AcceptedVote = voting::AcceptedVote<Vote>;
} // namespace execution_context_priority
......
......@@ -398,28 +398,6 @@ class VoteConsumer {
AcceptedVote* vote) = 0;
};
// Provides a default implementation of VoteConsumer that implements a naive
// (less efficient) version of "ChangeVote".
template <class VoteImpl>
class VoteConsumerDefaultImpl : public VoteConsumer<VoteImpl> {
public:
VoteConsumerDefaultImpl();
~VoteConsumerDefaultImpl() override;
VoteConsumerDefaultImpl(const VoteConsumerDefaultImpl& rhs) = delete;
VoteConsumerDefaultImpl& operator=(const VoteConsumerDefaultImpl& rhs) =
delete;
// VoteConsumer implementation left to the derived class:
VoteReceipt<VoteImpl> SubmitVote(VoterId<VoteImpl> voter_id,
const VoteImpl& vote) override = 0;
void VoteInvalidated(AcceptedVote<VoteImpl>* vote) override = 0;
// VoteConsumer implementation provided by this class:
VoteReceipt<VoteImpl> ChangeVote(VoteReceipt<VoteImpl> receipt,
AcceptedVote<VoteImpl>* existing_vote,
const VoteImpl& new_vote) override;
};
/////////////////////////////////////////////////////////////////////
// Vote
......@@ -826,30 +804,6 @@ VoteConsumer<VoteImpl>::VoteConsumer() = default;
template <class VoteImpl>
VoteConsumer<VoteImpl>::~VoteConsumer() = default;
/////////////////////////////////////////////////////////////////////
// VoteConsumerDefaultImpl
template <class VoteImpl>
VoteConsumerDefaultImpl<VoteImpl>::VoteConsumerDefaultImpl() = default;
template <class VoteImpl>
VoteConsumerDefaultImpl<VoteImpl>::~VoteConsumerDefaultImpl() = default;
template <class VoteImpl>
VoteReceipt<VoteImpl> VoteConsumerDefaultImpl<VoteImpl>::ChangeVote(
VoteReceipt<VoteImpl> receipt,
AcceptedVote<VoteImpl>* old_vote,
const VoteImpl& new_vote) {
// The receipt and vote should be entangled, and the vote should be valid.
DCHECK(receipt.HasVote(old_vote));
DCHECK(old_vote->IsValid());
// Tear down the old vote before submitting a new one in order to prevent
// the voter from having 2 simultaneous votes for the same context.
auto voter_id = receipt.GetVoterId();
receipt.Reset();
return SubmitVote(voter_id, new_vote);
}
} // namespace voting
} // namespace performance_manager
......
......@@ -20,7 +20,6 @@ using TestVoteReceipt = voting::VoteReceipt<TestVote>;
using TestVotingChannel = voting::VotingChannel<TestVote>;
using TestVotingChannelFactory = voting::VotingChannelFactory<TestVote>;
using TestVoteConsumer = voting::VoteConsumer<TestVote>;
using TestVoteConsumerDefaultImpl = voting::VoteConsumerDefaultImpl<TestVote>;
using TestAcceptedVote = voting::AcceptedVote<TestVote>;
using DummyVoter = voting::test::DummyVoter<TestVote>;
......
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