1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
using System;
using libsecondlife;
namespace OpenSim.Framework.Types
{
class UUID
{
public LLUUID llUUID;
public UUID(string uuid)
{
llUUID = new LLUUID(uuid);
}
public UUID(byte[] uuid)
{
llUUID = new LLUUID(uuid, 0);
}
public UUID(byte[] uuid, int offset)
{
llUUID = new LLUUID(uuid, offset);
}
public UUID()
{
llUUID = LLUUID.Zero;
}
public UUID(ulong uuid)
{
llUUID = new LLUUID(uuid);
}
public UUID(UInt32 first, UInt32 second, UInt32 third, UInt32 fourth)
{
byte[] uuid = new byte[16];
byte[] n = BitConverter.GetBytes(first);
n.CopyTo(uuid, 0);
n = BitConverter.GetBytes(second);
n.CopyTo(uuid, 4);
n = BitConverter.GetBytes(third);
n.CopyTo(uuid, 8);
n = BitConverter.GetBytes(fourth);
n.CopyTo(uuid, 12);
llUUID = new LLUUID(uuid,0);
}
public override string ToString()
{
return llUUID.ToString();
}
public string ToStringHyphenated()
{
return llUUID.ToStringHyphenated();
}
public byte[] GetBytes()
{
return llUUID.GetBytes();
}
public UInt32[] GetInts()
{
UInt32[] ints = new UInt32[4];
ints[0] = BitConverter.ToUInt32(llUUID.Data, 0);
ints[1] = BitConverter.ToUInt32(llUUID.Data, 4);
ints[2] = BitConverter.ToUInt32(llUUID.Data, 8);
ints[3] = BitConverter.ToUInt32(llUUID.Data, 12);
return ints;
}
public LLUUID GetLLUUID()
{
return llUUID;
}
public uint CRC()
{
return llUUID.CRC();
}
public override int GetHashCode()
{
return llUUID.GetHashCode();
}
public void Combine(UUID other)
{
llUUID.Combine(other.GetLLUUID());
}
public void Combine(LLUUID other)
{
llUUID.Combine(other);
}
public override bool Equals(Object other)
{
return llUUID.Equals(other);
}
public static bool operator ==(UUID a, UUID b)
{
return a.llUUID.Equals(b.GetLLUUID());
}
public static bool operator !=(UUID a, UUID b)
{
return !a.llUUID.Equals(b.GetLLUUID());
}
public static bool operator ==(UUID a, LLUUID b)
{
return a.Equals(b);
}
public static bool operator !=(UUID a, LLUUID b)
{
return !a.Equals(b);
}
}
}
|