diff --git a/src/NATS.Server/Internal/Avl/SequenceSet.cs b/src/NATS.Server/Internal/Avl/SequenceSet.cs new file mode 100644 index 0000000..5b3c169 --- /dev/null +++ b/src/NATS.Server/Internal/Avl/SequenceSet.cs @@ -0,0 +1,7 @@ +namespace NATS.Server.Internal.Avl; + +// Go reference: server/avl/seqset.go +// TODO: Port AVL-backed sparse sequence set +public class SequenceSet +{ +} diff --git a/src/NATS.Server/Internal/Gsl/GenericSubjectList.cs b/src/NATS.Server/Internal/Gsl/GenericSubjectList.cs new file mode 100644 index 0000000..b2a8cd9 --- /dev/null +++ b/src/NATS.Server/Internal/Gsl/GenericSubjectList.cs @@ -0,0 +1,7 @@ +namespace NATS.Server.Internal.Gsl; + +// Go reference: server/gsl/gsl.go +// TODO: Port generic trie-based subject list +public class GenericSubjectList where T : IEquatable +{ +} diff --git a/src/NATS.Server/Internal/SubjectTree/SubjectTree.cs b/src/NATS.Server/Internal/SubjectTree/SubjectTree.cs new file mode 100644 index 0000000..74a22d5 --- /dev/null +++ b/src/NATS.Server/Internal/SubjectTree/SubjectTree.cs @@ -0,0 +1,7 @@ +namespace NATS.Server.Internal.SubjectTree; + +// Go reference: server/stree/stree.go +// TODO: Port Adaptive Radix Tree for per-subject state +public class SubjectTree +{ +} diff --git a/src/NATS.Server/Internal/TimeHashWheel/HashWheel.cs b/src/NATS.Server/Internal/TimeHashWheel/HashWheel.cs new file mode 100644 index 0000000..00ed916 --- /dev/null +++ b/src/NATS.Server/Internal/TimeHashWheel/HashWheel.cs @@ -0,0 +1,7 @@ +namespace NATS.Server.Internal.TimeHashWheel; + +// Go reference: server/thw/thw.go +// TODO: Port time hash wheel for TTL expiration +public class HashWheel +{ +} diff --git a/src/NATS.Server/Raft/IRaftNode.cs b/src/NATS.Server/Raft/IRaftNode.cs new file mode 100644 index 0000000..00e033d --- /dev/null +++ b/src/NATS.Server/Raft/IRaftNode.cs @@ -0,0 +1,7 @@ +namespace NATS.Server.Raft; + +// Go reference: server/raft.go lines 40-92 +// TODO: Port RaftNode interface +public interface IRaftNode +{ +} diff --git a/src/NATS.Server/Raft/RaftState.cs b/src/NATS.Server/Raft/RaftState.cs new file mode 100644 index 0000000..5c46366 --- /dev/null +++ b/src/NATS.Server/Raft/RaftState.cs @@ -0,0 +1,10 @@ +namespace NATS.Server.Raft; + +// Go reference: server/raft.go +public enum RaftState : byte +{ + Follower = 0, + Leader = 1, + Candidate = 2, + Closed = 3 +} diff --git a/tests/NATS.Server.Tests/Concurrency/.gitkeep b/tests/NATS.Server.Tests/Concurrency/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tests/NATS.Server.Tests/Internal/Avl/.gitkeep b/tests/NATS.Server.Tests/Internal/Avl/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tests/NATS.Server.Tests/Internal/Gsl/.gitkeep b/tests/NATS.Server.Tests/Internal/Gsl/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tests/NATS.Server.Tests/Internal/SubjectTree/.gitkeep b/tests/NATS.Server.Tests/Internal/SubjectTree/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tests/NATS.Server.Tests/Internal/TimeHashWheel/.gitkeep b/tests/NATS.Server.Tests/Internal/TimeHashWheel/.gitkeep new file mode 100644 index 0000000..e69de29