aboutsummaryrefslogtreecommitdiff
path: root/externals/g3dlite/G3D.lib/source/GUniqueID.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'externals/g3dlite/G3D.lib/source/GUniqueID.cpp')
-rw-r--r--externals/g3dlite/G3D.lib/source/GUniqueID.cpp78
1 files changed, 0 insertions, 78 deletions
diff --git a/externals/g3dlite/G3D.lib/source/GUniqueID.cpp b/externals/g3dlite/G3D.lib/source/GUniqueID.cpp
deleted file mode 100644
index 25c757b70e4..00000000000
--- a/externals/g3dlite/G3D.lib/source/GUniqueID.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- @file GUniqueID.cpp
- @author Morgan McGuire, morgan@cs.williams.edu
- */
-#include "G3D/GUniqueID.h"
-#include "G3D/BinaryInput.h"
-#include "G3D/TextInput.h"
-#include "G3D/BinaryOutput.h"
-#include "G3D/TextOutput.h"
-#include "G3D/NetworkDevice.h"
-
-namespace G3D {
-
-void GUniqueID::serialize(BinaryOutput& b) const {
- b.writeUInt64(id);
-}
-
-
-void GUniqueID::deserialize(BinaryInput& b) {
- id = b.readUInt64();
-}
-
-void GUniqueID::serialize(TextOutput& t) const {
- t.writeSymbol("(");
- t.writeNumber((double)(id >> 32));
- t.writeNumber((double)(id & 0xFFFFFFFF));
- t.writeSymbol(")");
-}
-
-void GUniqueID::deserialize(TextInput& t) {
- t.readSymbol("(");
- id = (((uint64)t.readNumber()) << 32) + (uint64)t.readNumber();
- t.readSymbol(")");
-}
-
-
-GUniqueID GUniqueID::create(uint16 tag) {
- static uint64 counter = 0;
- static uint64 systemID = 0;
-
- if (systemID == 0) {
- // Create a unique ID for this machine/program instance
-
- // TODO: see ioctl(skfd, SIOCGIFHWADDR, &if_hwaddr)
- Array<NetAddress> addr;
- NetworkDevice::instance()->localHostAddresses(addr);
- if (addr.size() > 0) {
- systemID |= addr[0].ip();
- }
-
- union {
- float64 ft;
- uint64 ut;
- };
- ft = System::time();
- systemID = ut << 22;
- systemID ^= ((uint64)iRandom(0, 32768)) << 8;
-
- systemID &= ~((uint64)1023 << 54);
-
- // Ensure that the systemID is non-zero (vanishingly small probability)
- if (systemID == 0) {
- systemID = 1;
- }
- }
-
- // No need for modulo; we'll all be dead before this counter
- // overflows 54 bits
- ++counter;
-
- GUniqueID i;
-
- i.id = (((uint64)(tag & 1023)) << 54) | (counter ^ systemID);
-
- return i;
-}
-
-} // G3D