46 lines
1.2 KiB
C++
46 lines
1.2 KiB
C++
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#include "nsRFPTargetSetIDL.h"
|
|
|
|
namespace mozilla {
|
|
|
|
NS_IMPL_ISUPPORTS(nsRFPTargetSetIDL, nsIRFPTargetSetIDL)
|
|
|
|
NS_IMETHODIMP
|
|
nsRFPTargetSetIDL::GetLow(uint64_t* aLow) {
|
|
std::bitset<128> bitset = mBits.serialize();
|
|
std::bitset<128> mask = std::bitset<128>(0xFFFFFFFFFFFFFFFF);
|
|
*aLow = (bitset & mask).to_ullong();
|
|
return NS_OK;
|
|
}
|
|
|
|
NS_IMETHODIMP
|
|
nsRFPTargetSetIDL::GetHigh(uint64_t* aHigh) {
|
|
std::bitset<128> bitset = mBits.serialize();
|
|
std::bitset<128> mask = std::bitset<128>(0xFFFFFFFFFFFFFFFF);
|
|
*aHigh = ((bitset >> 64) & mask).to_ullong();
|
|
return NS_OK;
|
|
}
|
|
|
|
NS_IMETHODIMP
|
|
nsRFPTargetSetIDL::SetLow(uint64_t aLow) {
|
|
std::bitset<128> bitset = mBits.serialize();
|
|
bitset |= aLow;
|
|
mBits.deserialize(bitset);
|
|
return NS_OK;
|
|
}
|
|
|
|
NS_IMETHODIMP
|
|
nsRFPTargetSetIDL::SetHigh(uint64_t aHigh) {
|
|
std::bitset<128> bitset = mBits.serialize();
|
|
std::bitset<128> mask = std::bitset<128>(0xFFFFFFFFFFFFFFFF);
|
|
uint64_t low = (bitset & mask).to_ullong();
|
|
bitset = aHigh;
|
|
bitset <<= 64;
|
|
bitset |= low;
|
|
return NS_OK;
|
|
}
|
|
|
|
} // namespace mozilla
|