And there are several bitwise operation going on using the enumaration value. I am confused about this value like "0x000" . What does this "x" represent here?
//you'll need to include <iomanip> for std::setfill() and std::setw()
std::cout << "0x" << std::hex << std::setfill('0') << std::setw(3) << SYNC_DEVICE << std::endl;
//or
//you'll need to include <cstdio> for printf()
printf("0x%.3x\n", SYNC_DEVICE);
& is the bitwise and operator. What this means is that each bit in syncOp is compared to the equivalent bit in SYNC_DEVICE. If that bit is set to 1 in both, then the resulting bit in the value that's returned is set to 1; otherwise, it is set to 0.
Since syncOp is already set to SYNC_DEVICE, then the bits in both those entities are set identically. This means that the result of (syncOp & SYNC_DEVICE) will by SYNC_DEVICE.
Furthermore, since this result is non-zero, the if statement will be true.
This is an example of using bit flags. A search for "bit flags C++" should get you some more information.