diff --git a/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java b/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java index 9fecb2bfc..8928a6b9b 100644 --- a/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java +++ b/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java @@ -1533,79 +1533,4 @@ class ReplicatedChronicleMap, } } -} - -abstract class Replicator { - - /** - * A constructor for use in subclasses. - */ - protected Replicator() { - } - - /** - * Applies the replicator to the map instance and returns a Closeable token to manage resources, - * associated with the replication.

This method isn't intended to be called from the - * client code. - * - * @param builder the builder from which the map was constructed. The replicator may - * obtain some map configurations, not accessible via the map - * instance. - * @param map a replicated map instance. Provides basic tools for replication - * implementation. - * @param entryExternalizable the callback for ser/deser implementation in the replicator - * @param chronicleMap to wrap. - * @return a {@code Closeable} token to control replication resources. It should be closed on - * closing the replicated map. - * @throws java.io.IOException if an io error occurred during the replicator setup - * @throws IllegalStateException if this replicator doesn't support application to more than one - * map (or the specified number of maps), and this replicator has - * already been applied to a map (or the specified number of - * maps) - */ - protected abstract Closeable applyTo(AbstractChronicleMapBuilder builder, - Replica map, Replica.EntryExternalizable entryExternalizable, - final ChronicleMap chronicleMap) - throws IOException; -} - - -final class Replicators { - - private Replicators() { - } - - static Replicator tcp(final TcpReplicationConfig replicationConfig) { - return new Replicator() { - - @Override - protected Closeable applyTo(AbstractChronicleMapBuilder builder, - Replica replica, Replica.EntryExternalizable entryExternalizable, - final ChronicleMap chronicleMap) throws IOException { - - final KeyValueSerializer keyValueSerializer = new KeyValueSerializer(builder - .keyBuilder, builder.valueBuilder); - - StatelessServerConnector statelessServer = new StatelessServerConnector - (keyValueSerializer, chronicleMap, builder.entrySize()); - - return new TcpReplicator(replica, entryExternalizable, replicationConfig, - builder.entrySize(), statelessServer); - } - }; - } - - static Replicator udp( - final UdpReplicationConfig replicationConfig) { - return new Replicator() { - - @Override - protected Closeable applyTo(AbstractChronicleMapBuilder builder, - Replica map, Replica.EntryExternalizable entryExternalizable, final ChronicleMap chronicleMap) - throws IOException { - return new UdpReplicator(map, entryExternalizable, replicationConfig, - builder.entrySize()); - } - }; - } -} +} \ No newline at end of file diff --git a/src/main/java/net/openhft/chronicle/map/Replicator.java b/src/main/java/net/openhft/chronicle/map/Replicator.java new file mode 100644 index 000000000..8687e2ecb --- /dev/null +++ b/src/main/java/net/openhft/chronicle/map/Replicator.java @@ -0,0 +1,54 @@ +/* + * Copyright 2014 Higher Frequency Trading http://www.higherfrequencytrading.com + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.openhft.chronicle.map; + +import java.io.Closeable; +import java.io.IOException; + +abstract class Replicator { + + /** + * A constructor for use in subclasses. + */ + protected Replicator() { + } + + /** + * Applies the replicator to the map instance and returns a Closeable token to manage resources, + * associated with the replication.

This method isn't intended to be called from the + * client code. + * + * @param builder the builder from which the map was constructed. The replicator may + * obtain some map configurations, not accessible via the map + * instance. + * @param map a replicated map instance. Provides basic tools for replication + * implementation. + * @param entryExternalizable the callback for ser/deser implementation in the replicator + * @param chronicleMap to wrap. + * @return a {@code Closeable} token to control replication resources. It should be closed on + * closing the replicated map. + * @throws java.io.IOException if an io error occurred during the replicator setup + * @throws IllegalStateException if this replicator doesn't support application to more than one + * map (or the specified number of maps), and this replicator has + * already been applied to a map (or the specified number of + * maps) + */ + protected abstract Closeable applyTo(AbstractChronicleMapBuilder builder, + Replica map, Replica.EntryExternalizable entryExternalizable, + final ChronicleMap chronicleMap) + throws IOException; +} diff --git a/src/main/java/net/openhft/chronicle/map/Replicators.java b/src/main/java/net/openhft/chronicle/map/Replicators.java new file mode 100644 index 000000000..5de1db1a6 --- /dev/null +++ b/src/main/java/net/openhft/chronicle/map/Replicators.java @@ -0,0 +1,60 @@ +/* + * Copyright 2014 Higher Frequency Trading http://www.higherfrequencytrading.com + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.openhft.chronicle.map; + +import java.io.Closeable; +import java.io.IOException; + +final class Replicators { + + private Replicators() { + } + + static Replicator tcp(final TcpReplicationConfig replicationConfig) { + return new Replicator() { + + @Override + protected Closeable applyTo(AbstractChronicleMapBuilder builder, + Replica replica, Replica.EntryExternalizable entryExternalizable, + final ChronicleMap chronicleMap) throws IOException { + + final KeyValueSerializer keyValueSerializer = new KeyValueSerializer(builder + .keyBuilder, builder.valueBuilder); + + StatelessServerConnector statelessServer = new StatelessServerConnector + (keyValueSerializer, chronicleMap, builder.entrySize()); + + return new TcpReplicator(replica, entryExternalizable, replicationConfig, + builder.entrySize(), statelessServer); + } + }; + } + + static Replicator udp( + final UdpReplicationConfig replicationConfig) { + return new Replicator() { + + @Override + protected Closeable applyTo(AbstractChronicleMapBuilder builder, + Replica map, Replica.EntryExternalizable entryExternalizable, final ChronicleMap chronicleMap) + throws IOException { + return new UdpReplicator(map, entryExternalizable, replicationConfig, + builder.entrySize()); + } + }; + } +}