blob: 835049926852a5cd2bcb3150e79c249167681885 [file] [log] [blame]
Jordan Halterman2bf177c2017-06-29 01:49:08 -07001/*
Brian O'Connora09fe5b2017-08-03 21:12:30 -07002 * Copyright 2017-present Open Networking Foundation
Jordan Halterman2bf177c2017-06-29 01:49:08 -07003 *
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;
Jordan Haltermane372d852017-11-02 15:00:06 -070042import io.atomix.protocols.raft.protocol.HeartbeatRequest;
43import io.atomix.protocols.raft.protocol.HeartbeatResponse;
Jordan Halterman2bf177c2017-06-29 01:49:08 -070044import io.atomix.protocols.raft.protocol.InstallRequest;
45import io.atomix.protocols.raft.protocol.InstallResponse;
46import io.atomix.protocols.raft.protocol.JoinRequest;
47import io.atomix.protocols.raft.protocol.JoinResponse;
48import io.atomix.protocols.raft.protocol.KeepAliveRequest;
49import io.atomix.protocols.raft.protocol.KeepAliveResponse;
50import io.atomix.protocols.raft.protocol.LeaveRequest;
51import io.atomix.protocols.raft.protocol.LeaveResponse;
52import io.atomix.protocols.raft.protocol.MetadataRequest;
53import io.atomix.protocols.raft.protocol.MetadataResponse;
54import io.atomix.protocols.raft.protocol.OpenSessionRequest;
55import io.atomix.protocols.raft.protocol.OpenSessionResponse;
56import io.atomix.protocols.raft.protocol.PollRequest;
57import io.atomix.protocols.raft.protocol.PollResponse;
58import io.atomix.protocols.raft.protocol.PublishRequest;
59import io.atomix.protocols.raft.protocol.QueryRequest;
60import io.atomix.protocols.raft.protocol.QueryResponse;
61import io.atomix.protocols.raft.protocol.RaftResponse;
62import io.atomix.protocols.raft.protocol.ReconfigureRequest;
63import io.atomix.protocols.raft.protocol.ReconfigureResponse;
64import io.atomix.protocols.raft.protocol.ResetRequest;
65import io.atomix.protocols.raft.protocol.VoteRequest;
66import io.atomix.protocols.raft.protocol.VoteResponse;
67import io.atomix.protocols.raft.session.RaftSessionMetadata;
68import io.atomix.protocols.raft.session.SessionId;
69import io.atomix.protocols.raft.storage.log.entry.CloseSessionEntry;
70import io.atomix.protocols.raft.storage.log.entry.CommandEntry;
71import io.atomix.protocols.raft.storage.log.entry.ConfigurationEntry;
72import io.atomix.protocols.raft.storage.log.entry.InitializeEntry;
73import io.atomix.protocols.raft.storage.log.entry.KeepAliveEntry;
74import io.atomix.protocols.raft.storage.log.entry.MetadataEntry;
75import io.atomix.protocols.raft.storage.log.entry.OpenSessionEntry;
76import io.atomix.protocols.raft.storage.log.entry.QueryEntry;
77import io.atomix.protocols.raft.storage.system.Configuration;
78import org.onlab.util.KryoNamespace;
79import org.onosproject.store.primitives.resources.impl.AtomixAtomicCounterMapOperations;
80import org.onosproject.store.primitives.resources.impl.AtomixConsistentMapEvents;
81import org.onosproject.store.primitives.resources.impl.AtomixConsistentMapOperations;
82import org.onosproject.store.primitives.resources.impl.AtomixConsistentSetMultimapEvents;
83import org.onosproject.store.primitives.resources.impl.AtomixConsistentSetMultimapOperations;
Jordan Halterman2bf177c2017-06-29 01:49:08 -070084import org.onosproject.store.primitives.resources.impl.AtomixConsistentTreeMapOperations;
85import org.onosproject.store.primitives.resources.impl.AtomixCounterOperations;
86import org.onosproject.store.primitives.resources.impl.AtomixDocumentTreeEvents;
87import org.onosproject.store.primitives.resources.impl.AtomixDocumentTreeOperations;
88import org.onosproject.store.primitives.resources.impl.AtomixLeaderElectorEvents;
89import org.onosproject.store.primitives.resources.impl.AtomixLeaderElectorOperations;
90import org.onosproject.store.primitives.resources.impl.AtomixWorkQueueEvents;
91import org.onosproject.store.primitives.resources.impl.AtomixWorkQueueOperations;
92import org.onosproject.store.serializers.KryoNamespaces;
93
94/**
95 * Storage serializer namespaces.
96 */
97public final class StorageNamespaces {
98
99 /**
100 * Raft protocol namespace.
101 */
102 public static final KryoNamespace RAFT_PROTOCOL = KryoNamespace.newBuilder()
103 .register(KryoNamespaces.BASIC)
104 .nextId(KryoNamespaces.BEGIN_USER_CUSTOM_ID)
105 .register(OpenSessionRequest.class)
106 .register(OpenSessionResponse.class)
107 .register(CloseSessionRequest.class)
108 .register(CloseSessionResponse.class)
109 .register(KeepAliveRequest.class)
110 .register(KeepAliveResponse.class)
Jordan Haltermane372d852017-11-02 15:00:06 -0700111 .register(HeartbeatRequest.class)
112 .register(HeartbeatResponse.class)
Jordan Halterman2bf177c2017-06-29 01:49:08 -0700113 .register(QueryRequest.class)
114 .register(QueryResponse.class)
115 .register(CommandRequest.class)
116 .register(CommandResponse.class)
117 .register(MetadataRequest.class)
118 .register(MetadataResponse.class)
119 .register(JoinRequest.class)
120 .register(JoinResponse.class)
121 .register(LeaveRequest.class)
122 .register(LeaveResponse.class)
123 .register(ConfigureRequest.class)
124 .register(ConfigureResponse.class)
125 .register(ReconfigureRequest.class)
126 .register(ReconfigureResponse.class)
127 .register(InstallRequest.class)
128 .register(InstallResponse.class)
129 .register(PollRequest.class)
130 .register(PollResponse.class)
131 .register(VoteRequest.class)
132 .register(VoteResponse.class)
133 .register(AppendRequest.class)
134 .register(AppendResponse.class)
135 .register(PublishRequest.class)
136 .register(ResetRequest.class)
137 .register(RaftResponse.Status.class)
138 .register(RaftError.class)
139 .register(RaftError.Type.class)
140 .register(ReadConsistency.class)
141 .register(RaftSessionMetadata.class)
142 .register(CloseSessionEntry.class)
143 .register(CommandEntry.class)
144 .register(ConfigurationEntry.class)
145 .register(InitializeEntry.class)
146 .register(KeepAliveEntry.class)
147 .register(MetadataEntry.class)
148 .register(OpenSessionEntry.class)
149 .register(QueryEntry.class)
150 .register(RaftOperation.class)
151 .register(RaftEvent.class)
152 .register(DefaultEventType.class)
153 .register(DefaultOperationId.class)
154 .register(OperationType.class)
155 .register(ReadConsistency.class)
156 .register(ArrayList.class)
157 .register(LinkedList.class)
158 .register(Collections.emptyList().getClass())
159 .register(HashSet.class)
160 .register(DefaultRaftMember.class)
161 .register(MemberId.class)
162 .register(SessionId.class)
163 .register(RaftMember.Type.class)
Jordan Halterman2bf177c2017-06-29 01:49:08 -0700164 .register(Instant.class)
165 .register(Configuration.class)
166 .register(AtomixAtomicCounterMapOperations.class)
167 .register(AtomixConsistentMapEvents.class)
168 .register(AtomixConsistentMapOperations.class)
169 .register(AtomixConsistentSetMultimapOperations.class)
170 .register(AtomixConsistentSetMultimapEvents.class)
Jordan Halterman2bf177c2017-06-29 01:49:08 -0700171 .register(AtomixConsistentTreeMapOperations.class)
172 .register(AtomixCounterOperations.class)
173 .register(AtomixDocumentTreeEvents.class)
174 .register(AtomixDocumentTreeOperations.class)
175 .register(AtomixLeaderElectorEvents.class)
176 .register(AtomixLeaderElectorOperations.class)
177 .register(AtomixWorkQueueEvents.class)
178 .register(AtomixWorkQueueOperations.class)
179 .build("RaftProtocol");
180
181 /**
182 * Raft storage namespace.
183 */
184 public static final KryoNamespace RAFT_STORAGE = KryoNamespace.newBuilder()
185 .register(KryoNamespaces.BASIC)
186 .nextId(KryoNamespaces.BEGIN_USER_CUSTOM_ID + 100)
187 .register(CloseSessionEntry.class)
188 .register(CommandEntry.class)
189 .register(ConfigurationEntry.class)
190 .register(InitializeEntry.class)
191 .register(KeepAliveEntry.class)
192 .register(MetadataEntry.class)
193 .register(OpenSessionEntry.class)
194 .register(QueryEntry.class)
195 .register(RaftOperation.class)
196 .register(ReadConsistency.class)
197 .register(ArrayList.class)
198 .register(HashSet.class)
199 .register(DefaultRaftMember.class)
200 .register(MemberId.class)
201 .register(RaftMember.Type.class)
Jordan Halterman2bf177c2017-06-29 01:49:08 -0700202 .register(Instant.class)
203 .register(Configuration.class)
204 .register(AtomixAtomicCounterMapOperations.class)
205 .register(AtomixConsistentMapOperations.class)
206 .register(AtomixConsistentSetMultimapOperations.class)
207 .register(AtomixConsistentTreeMapOperations.class)
208 .register(AtomixCounterOperations.class)
209 .register(AtomixDocumentTreeOperations.class)
210 .register(AtomixLeaderElectorOperations.class)
211 .register(AtomixWorkQueueOperations.class)
212 .build("RaftStorage");
213
214 private StorageNamespaces() {
215 }
216}