commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ohe...@apache.org
Subject svn commit: r1479365 - /commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/NoOpSynchronizer.java
Date Sun, 05 May 2013 20:09:19 GMT
Author: oheger
Date: Sun May  5 20:09:18 2013
New Revision: 1479365

URL: http://svn.apache.org/r1479365
Log:
Added NoOpSynchronizer, a trivial implementation of Synchronizer.

This Synchronizer implementation is used per default. Configurations using
this Synchronizer are not thread-safe.

Added:
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/NoOpSynchronizer.java

Added: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/NoOpSynchronizer.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/NoOpSynchronizer.java?rev=1479365&view=auto
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/NoOpSynchronizer.java
(added)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/NoOpSynchronizer.java
Sun May  5 20:09:18 2013
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 org.apache.commons.configuration;
+
+/**
+ * <p>
+ * An implementation of the {@code Synchronizer} interface which does not
+ * perform any synchronization.
+ * </p>
+ * <p>
+ * This class is the option of choice for applications that do not access
+ * configuration concurrently. All methods required by the {@code Synchronizer}
+ * interface are just empty dummies. Therefore, this class does not have any
+ * synchronization overhead. Of course, configurations using this
+ * {@code Synchronizer} implementation are not thread-safe!
+ * </p>
+ * <p>
+ * Implementation note: This class is an enumeration because only a single
+ * instance needs to exist. This instance can be shared between arbitrary
+ * configurations.
+ * </p>
+ *
+ * @version $Id: $
+ * @since 2.0
+ */
+public enum NoOpSynchronizer implements Synchronizer
+{
+    /** The single shared instance of this class. */
+    INSTANCE;
+
+    public void beginRead()
+    {
+    }
+
+    public void endRead()
+    {
+    }
+
+    public void beginWrite()
+    {
+    }
+
+    public void endWrite()
+    {
+    }
+}



Mime
View raw message