mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 03:15:11 +00:00
Bug 1510853 - Make TransactionId usable for other 64bit identifiers. r=jrmuizel
MozReview-Commit-ID: 9qX9A7ZGWS8 Differential Revision: https://phabricator.services.mozilla.com/D13349 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
68d2cbb22e
commit
cd30c32037
@ -79,39 +79,51 @@ struct LayersId {
|
||||
};
|
||||
};
|
||||
|
||||
struct TransactionId {
|
||||
uint64_t mId;
|
||||
template <typename T>
|
||||
struct BaseTransactionId {
|
||||
uint64_t mId = 0;
|
||||
|
||||
bool IsValid() const { return mId != 0; }
|
||||
|
||||
MOZ_MUST_USE TransactionId Next() const { return TransactionId{mId + 1}; }
|
||||
MOZ_MUST_USE BaseTransactionId<T> Next() const {
|
||||
return BaseTransactionId<T>{mId + 1};
|
||||
}
|
||||
|
||||
MOZ_MUST_USE TransactionId Prev() const { return TransactionId{mId - 1}; }
|
||||
MOZ_MUST_USE BaseTransactionId<T> Prev() const {
|
||||
return BaseTransactionId<T>{mId - 1};
|
||||
}
|
||||
|
||||
int64_t operator-(const TransactionId& aOther) const {
|
||||
int64_t operator-(const BaseTransactionId<T>& aOther) const {
|
||||
return mId - aOther.mId;
|
||||
}
|
||||
|
||||
// Allow explicit cast to a uint64_t for now
|
||||
explicit operator uint64_t() const { return mId; }
|
||||
|
||||
bool operator<(const TransactionId& aOther) const { return mId < aOther.mId; }
|
||||
bool operator<(const BaseTransactionId<T>& aOther) const {
|
||||
return mId < aOther.mId;
|
||||
}
|
||||
|
||||
bool operator<=(const TransactionId& aOther) const {
|
||||
bool operator<=(const BaseTransactionId<T>& aOther) const {
|
||||
return mId <= aOther.mId;
|
||||
}
|
||||
|
||||
bool operator>(const TransactionId& aOther) const { return mId > aOther.mId; }
|
||||
bool operator>(const BaseTransactionId<T>& aOther) const {
|
||||
return mId > aOther.mId;
|
||||
}
|
||||
|
||||
bool operator>=(const TransactionId& aOther) const {
|
||||
bool operator>=(const BaseTransactionId<T>& aOther) const {
|
||||
return mId >= aOther.mId;
|
||||
}
|
||||
|
||||
bool operator==(const TransactionId& aOther) const {
|
||||
bool operator==(const BaseTransactionId<T>& aOther) const {
|
||||
return mId == aOther.mId;
|
||||
}
|
||||
};
|
||||
|
||||
class TransactionIdType {};
|
||||
typedef BaseTransactionId<TransactionIdType> TransactionId;
|
||||
|
||||
struct LayersObserverEpoch {
|
||||
uint64_t mId;
|
||||
|
||||
|
@ -38,9 +38,9 @@ template <>
|
||||
struct ParamTraits<mozilla::layers::LayersId>
|
||||
: public PlainOldDataSerializer<mozilla::layers::LayersId> {};
|
||||
|
||||
template <>
|
||||
struct ParamTraits<mozilla::layers::TransactionId>
|
||||
: public PlainOldDataSerializer<mozilla::layers::TransactionId> {};
|
||||
template <typename T>
|
||||
struct ParamTraits<mozilla::layers::BaseTransactionId<T>>
|
||||
: public PlainOldDataSerializer<mozilla::layers::BaseTransactionId<T>> {};
|
||||
|
||||
template <>
|
||||
struct ParamTraits<mozilla::layers::LayersObserverEpoch>
|
||||
|
Loading…
Reference in New Issue
Block a user