xref: /haiku/src/add-ons/kernel/file_systems/netfs/server/NodeRef.h (revision 508f54795f39c3e7552d87c95aae9dd8ec6f505b)
1 // NodeRef.h
2 
3 #ifndef NET_FS_NODE_REF_H
4 #define NET_FS_NODE_REF_H
5 
6 #include <Node.h>
7 
8 struct NodeRef : node_ref {
9 	NodeRef() {}
10 
11 	NodeRef(const node_ref& ref)
12 		: node_ref(ref)
13 	{
14 	}
15 
16 	NodeRef(dev_t volumeID, ino_t nodeID)
17 	{
18 		device = volumeID;
19 		node = nodeID;
20 	}
21 
22 	NodeRef(const NodeRef& other)
23 		: node_ref(other)
24 	{
25 	}
26 
27 	uint32 GetHashCode() const
28 	{
29 		uint64 v = (uint64)node;
30 		return (uint32)(v >> 32) ^ (uint32)v ^ (uint32)device;
31 	}
32 
33 	NodeRef& operator=(const node_ref& other)
34 	{
35 		node_ref::operator=(other);
36 		return *this;
37 	}
38 
39 	bool operator==(const node_ref& other) const
40 	{
41 		return node_ref::operator==(other);
42 	}
43 
44 	bool operator!=(const NodeRef& other) const
45 	{
46 		return !(*this == other);
47 	}
48 };
49 
50 #endif	// NET_FS_NODE_REF_H
51