blob: e0e3ad70ba58021cad42adba11445b259f78acfc [file] [log] [blame]
Jordan Halterman2bf177c2017-06-29 01:49:08 -07001/*
2 * Copyright 2017-present Open Networking Laboratory
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.onosproject.store.primitives.impl;
17
18import java.time.Instant;
19import java.util.ArrayList;
20import java.util.Collections;
21import java.util.HashSet;
22import java.util.LinkedList;
23
24import io.atomix.protocols.raft.RaftError;
25import io.atomix.protocols.raft.ReadConsistency;
26import io.atomix.protocols.raft.cluster.MemberId;
27import io.atomix.protocols.raft.cluster.RaftMember;
28import io.atomix.protocols.raft.cluster.impl.DefaultRaftMember;
29import io.atomix.protocols.raft.event.RaftEvent;
30import io.atomix.protocols.raft.event.impl.DefaultEventType;
31import io.atomix.protocols.raft.operation.OperationType;
32import io.atomix.protocols.raft.operation.RaftOperation;
33import io.atomix.protocols.raft.operation.impl.DefaultOperationId;
34import io.atomix.protocols.raft.protocol.AppendRequest;
35import io.atomix.protocols.raft.protocol.AppendResponse;
36import io.atomix.protocols.raft.protocol.CloseSessionRequest;
37import io.atomix.protocols.raft.protocol.CloseSessionResponse;
38import io.atomix.protocols.raft.protocol.CommandRequest;
39import io.atomix.protocols.raft.protocol.CommandResponse;
40import io.atomix.protocols.raft.protocol.ConfigureRequest;
41import io.atomix.protocols.raft.protocol.ConfigureResponse;
42import io.atomix.protocols.raft.protocol.InstallRequest;
43import io.atomix.protocols.raft.protocol.InstallResponse;
44import io.atomix.protocols.raft.protocol.JoinRequest;
45import io.atomix.protocols.raft.protocol.JoinResponse;
46import io.atomix.protocols.raft.protocol.KeepAliveRequest;
47import io.atomix.protocols.raft.protocol.KeepAliveResponse;
48import io.atomix.protocols.raft.protocol.LeaveRequest;
49import io.atomix.protocols.raft.protocol.LeaveResponse;
50import io.atomix.protocols.raft.protocol.MetadataRequest;
51import io.atomix.protocols.raft.protocol.MetadataResponse;
52import io.atomix.protocols.raft.protocol.OpenSessionRequest;
53import io.atomix.protocols.raft.protocol.OpenSessionResponse;
54import io.atomix.protocols.raft.protocol.PollRequest;
55import io.atomix.protocols.raft.protocol.PollResponse;
56import io.atomix.protocols.raft.protocol.PublishRequest;
57import io.atomix.protocols.raft.protocol.QueryRequest;
58import io.atomix.protocols.raft.protocol.QueryResponse;
59import io.atomix.protocols.raft.protocol.RaftResponse;
60import io.atomix.protocols.raft.protocol.ReconfigureRequest;
61import io.atomix.protocols.raft.protocol.ReconfigureResponse;
62import io.atomix.protocols.raft.protocol.ResetRequest;
63import io.atomix.protocols.raft.protocol.VoteRequest;
64import io.atomix.protocols.raft.protocol.VoteResponse;
65import io.atomix.protocols.raft.session.RaftSessionMetadata;
66import io.atomix.protocols.raft.session.SessionId;
67import io.atomix.protocols.raft.storage.log.entry.CloseSessionEntry;
68import io.atomix.protocols.raft.storage.log.entry.CommandEntry;
69import io.atomix.protocols.raft.storage.log.entry.ConfigurationEntry;
70import io.atomix.protocols.raft.storage.log.entry.InitializeEntry;
71import io.atomix.protocols.raft.storage.log.entry.KeepAliveEntry;
72import io.atomix.protocols.raft.storage.log.entry.MetadataEntry;
73import io.atomix.protocols.raft.storage.log.entry.OpenSessionEntry;
74import io.atomix.protocols.raft.storage.log.entry.QueryEntry;
75import io.atomix.protocols.raft.storage.system.Configuration;
76import org.onlab.util.KryoNamespace;
77import org.onosproject.store.primitives.resources.impl.AtomixAtomicCounterMapOperations;
78import org.onosproject.store.primitives.resources.impl.AtomixConsistentMapEvents;
79import org.onosproject.store.primitives.resources.impl.AtomixConsistentMapOperations;
80import org.onosproject.store.primitives.resources.impl.AtomixConsistentSetMultimapEvents;
81import org.onosproject.store.primitives.resources.impl.AtomixConsistentSetMultimapOperations;
82import org.onosproject.store.primitives.resources.impl.AtomixConsistentTreeMapEvents;
83import org.onosproject.store.primitives.resources.impl.AtomixConsistentTreeMapOperations;
84import org.onosproject.store.primitives.resources.impl.AtomixCounterOperations;
85import org.onosproject.store.primitives.resources.impl.AtomixDocumentTreeEvents;
86import org.onosproject.store.primitives.resources.impl.AtomixDocumentTreeOperations;
87import org.onosproject.store.primitives.resources.impl.AtomixLeaderElectorEvents;
88import org.onosproject.store.primitives.resources.impl.AtomixLeaderElectorOperations;
89import org.onosproject.store.primitives.resources.impl.AtomixWorkQueueEvents;
90import org.onosproject.store.primitives.resources.impl.AtomixWorkQueueOperations;
91import org.onosproject.store.serializers.KryoNamespaces;
92
93/**
94 * Storage serializer namespaces.
95 */
96public final class StorageNamespaces {
97
98 /**
99 * Raft protocol namespace.
100 */
101 public static final KryoNamespace RAFT_PROTOCOL = KryoNamespace.newBuilder()
102 .register(KryoNamespaces.BASIC)
103 .nextId(KryoNamespaces.BEGIN_USER_CUSTOM_ID)
104 .register(OpenSessionRequest.class)
105 .register(OpenSessionResponse.class)
106 .register(CloseSessionRequest.class)
107 .register(CloseSessionResponse.class)
108 .register(KeepAliveRequest.class)
109 .register(KeepAliveResponse.class)
110 .register(QueryRequest.class)
111 .register(QueryResponse.class)
112 .register(CommandRequest.class)
113 .register(CommandResponse.class)
114 .register(MetadataRequest.class)
115 .register(MetadataResponse.class)
116 .register(JoinRequest.class)
117 .register(JoinResponse.class)
118 .register(LeaveRequest.class)
119 .register(LeaveResponse.class)
120 .register(ConfigureRequest.class)
121 .register(ConfigureResponse.class)
122 .register(ReconfigureRequest.class)
123 .register(ReconfigureResponse.class)
124 .register(InstallRequest.class)
125 .register(InstallResponse.class)
126 .register(PollRequest.class)
127 .register(PollResponse.class)
128 .register(VoteRequest.class)
129 .register(VoteResponse.class)
130 .register(AppendRequest.class)
131 .register(AppendResponse.class)
132 .register(PublishRequest.class)
133 .register(ResetRequest.class)
134 .register(RaftResponse.Status.class)
135 .register(RaftError.class)
136 .register(RaftError.Type.class)
137 .register(ReadConsistency.class)
138 .register(RaftSessionMetadata.class)
139 .register(CloseSessionEntry.class)
140 .register(CommandEntry.class)
141 .register(ConfigurationEntry.class)
142 .register(InitializeEntry.class)
143 .register(KeepAliveEntry.class)
144 .register(MetadataEntry.class)
145 .register(OpenSessionEntry.class)
146 .register(QueryEntry.class)
147 .register(RaftOperation.class)
148 .register(RaftEvent.class)
149 .register(DefaultEventType.class)
150 .register(DefaultOperationId.class)
151 .register(OperationType.class)
152 .register(ReadConsistency.class)
153 .register(ArrayList.class)
154 .register(LinkedList.class)
155 .register(Collections.emptyList().getClass())
156 .register(HashSet.class)
157 .register(DefaultRaftMember.class)
158 .register(MemberId.class)
159 .register(SessionId.class)
160 .register(RaftMember.Type.class)
Jordan Halterman2bf177c2017-06-29 01:49:08 -0700161 .register(Instant.class)
162 .register(Configuration.class)
163 .register(AtomixAtomicCounterMapOperations.class)
164 .register(AtomixConsistentMapEvents.class)
165 .register(AtomixConsistentMapOperations.class)
166 .register(AtomixConsistentSetMultimapOperations.class)
167 .register(AtomixConsistentSetMultimapEvents.class)
168 .register(AtomixConsistentTreeMapEvents.class)
169 .register(AtomixConsistentTreeMapOperations.class)
170 .register(AtomixCounterOperations.class)
171 .register(AtomixDocumentTreeEvents.class)
172 .register(AtomixDocumentTreeOperations.class)
173 .register(AtomixLeaderElectorEvents.class)
174 .register(AtomixLeaderElectorOperations.class)
175 .register(AtomixWorkQueueEvents.class)
176 .register(AtomixWorkQueueOperations.class)
177 .build("RaftProtocol");
178
179 /**
180 * Raft storage namespace.
181 */
182 public static final KryoNamespace RAFT_STORAGE = KryoNamespace.newBuilder()
183 .register(KryoNamespaces.BASIC)
184 .nextId(KryoNamespaces.BEGIN_USER_CUSTOM_ID + 100)
185 .register(CloseSessionEntry.class)
186 .register(CommandEntry.class)
187 .register(ConfigurationEntry.class)
188 .register(InitializeEntry.class)
189 .register(KeepAliveEntry.class)
190 .register(MetadataEntry.class)
191 .register(OpenSessionEntry.class)
192 .register(QueryEntry.class)
193 .register(RaftOperation.class)
194 .register(ReadConsistency.class)
195 .register(ArrayList.class)
196 .register(HashSet.class)
197 .register(DefaultRaftMember.class)
198 .register(MemberId.class)
199 .register(RaftMember.Type.class)
Jordan Halterman2bf177c2017-06-29 01:49:08 -0700200 .register(Instant.class)
201 .register(Configuration.class)
202 .register(AtomixAtomicCounterMapOperations.class)
203 .register(AtomixConsistentMapOperations.class)
204 .register(AtomixConsistentSetMultimapOperations.class)
205 .register(AtomixConsistentTreeMapOperations.class)
206 .register(AtomixCounterOperations.class)
207 .register(AtomixDocumentTreeOperations.class)
208 .register(AtomixLeaderElectorOperations.class)
209 .register(AtomixWorkQueueOperations.class)
210 .build("RaftStorage");
211
212 private StorageNamespaces() {
213 }
214}