summaryrefslogtreecommitdiff
path: root/qpid/java/common/src/main/java/org/apache/qpid/transport/util
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/common/src/main/java/org/apache/qpid/transport/util')
-rw-r--r--qpid/java/common/src/main/java/org/apache/qpid/transport/util/Functions.java102
-rw-r--r--qpid/java/common/src/main/java/org/apache/qpid/transport/util/Logger.java130
-rw-r--r--qpid/java/common/src/main/java/org/apache/qpid/transport/util/SliceIterator.java59
-rw-r--r--qpid/java/common/src/main/java/org/apache/qpid/transport/util/Waiter.java63
4 files changed, 354 insertions, 0 deletions
diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/util/Functions.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/util/Functions.java
new file mode 100644
index 0000000000..5761228642
--- /dev/null
+++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/util/Functions.java
@@ -0,0 +1,102 @@
+/*
+ *
+ * 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.qpid.transport.util;
+
+import java.nio.ByteBuffer;
+
+import static java.lang.Math.*;
+
+
+/**
+ * Functions
+ *
+ * @author Rafael H. Schloming
+ */
+
+public class Functions
+{
+
+ public static final int mod(int n, int m)
+ {
+ int r = n % m;
+ return r < 0 ? m + r : r;
+ }
+
+ public static final byte lsb(int i)
+ {
+ return (byte) (0xFF & i);
+ }
+
+ public static final byte lsb(long l)
+ {
+ return (byte) (0xFF & l);
+ }
+
+ public static final String str(ByteBuffer buf)
+ {
+ return str(buf, buf.remaining());
+ }
+
+ public static final String str(ByteBuffer buf, int limit)
+ {
+ return str(buf, limit,buf.position());
+ }
+
+ public static final String str(ByteBuffer buf, int limit,int start)
+ {
+ StringBuilder str = new StringBuilder();
+ str.append('"');
+
+ for (int i = start; i < min(buf.limit(), limit); i++)
+ {
+ byte c = buf.get(i);
+
+ if (c > 31 && c < 127 && c != '\\')
+ {
+ str.append((char)c);
+ }
+ else
+ {
+ str.append(String.format("\\x%02x", c));
+ }
+ }
+
+ str.append('"');
+
+ if (limit < buf.remaining())
+ {
+ str.append("...");
+ }
+
+ return str.toString();
+ }
+
+ public static final String str(byte[] bytes)
+ {
+ return str(ByteBuffer.wrap(bytes));
+ }
+
+ public static final String str(byte[] bytes, int limit)
+ {
+ return str(ByteBuffer.wrap(bytes), limit);
+ }
+
+}
diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/util/Logger.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/util/Logger.java
new file mode 100644
index 0000000000..8c4818df92
--- /dev/null
+++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/util/Logger.java
@@ -0,0 +1,130 @@
+/*
+ *
+ * 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.qpid.transport.util;
+
+import org.slf4j.LoggerFactory;
+
+/**
+ * Logger
+ *
+ */
+
+public final class Logger
+{
+
+ public static final Logger get(Class<?> klass)
+ {
+ return new Logger(LoggerFactory.getLogger(klass));
+ }
+
+ private final org.slf4j.Logger log;
+
+ private Logger(org.slf4j.Logger log)
+ {
+ this.log = log;
+ }
+
+ public boolean isDebugEnabled()
+ {
+ return log.isDebugEnabled();
+ }
+
+ public void debug(String message, Object ... args)
+ {
+ if (log.isDebugEnabled())
+ {
+ log.debug(String.format(message, args));
+ }
+ }
+
+ public void debug(Throwable t, String message, Object ... args)
+ {
+ if (log.isDebugEnabled())
+ {
+ log.debug(String.format(message, args), t);
+ }
+ }
+
+ public void error(String message, Object ... args)
+ {
+ if (log.isErrorEnabled())
+ {
+ log.error(String.format(message, args));
+ }
+ }
+
+ public void error(Throwable t, String message, Object ... args)
+ {
+ if (log.isErrorEnabled())
+ {
+ log.error(String.format(message, args), t);
+ }
+ }
+
+ public void warn(String message, Object ... args)
+ {
+ if (log.isWarnEnabled())
+ {
+ log.warn(String.format(message, args));
+ }
+ }
+
+ public void warn(Throwable t, String message, Object ... args)
+ {
+ if (log.isWarnEnabled())
+ {
+ log.warn(String.format(message, args), t);
+ }
+ }
+
+ public void info(String message, Object ... args)
+ {
+ if (log.isInfoEnabled())
+ {
+ log.info(String.format(message, args));
+ }
+ }
+
+ public void info(Throwable t, String message, Object ... args)
+ {
+ if (log.isInfoEnabled())
+ {
+ log.info(String.format(message, args), t);
+ }
+ }
+
+ public void trace(String message, Object ... args)
+ {
+ if (log.isTraceEnabled())
+ {
+ log.trace(String.format(message, args));
+ }
+ }
+
+ public void trace(Throwable t, String message, Object ... args)
+ {
+ if (log.isTraceEnabled())
+ {
+ log.trace(String.format(message, args), t);
+ }
+ }
+
+}
diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/util/SliceIterator.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/util/SliceIterator.java
new file mode 100644
index 0000000000..3db29847b2
--- /dev/null
+++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/util/SliceIterator.java
@@ -0,0 +1,59 @@
+/*
+ *
+ * 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.qpid.transport.util;
+
+import java.nio.ByteBuffer;
+
+import java.util.Iterator;
+
+
+/**
+ * SliceIterator
+ *
+ * @author Rafael H. Schloming
+ */
+
+public class SliceIterator implements Iterator<ByteBuffer>
+{
+
+ final private Iterator<ByteBuffer> iterator;
+
+ public SliceIterator(Iterator<ByteBuffer> iterator)
+ {
+ this.iterator = iterator;
+ }
+
+ public boolean hasNext()
+ {
+ return iterator.hasNext();
+ }
+
+ public ByteBuffer next()
+ {
+ return iterator.next().slice();
+ }
+
+ public void remove()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+}
diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/util/Waiter.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/util/Waiter.java
new file mode 100644
index 0000000000..e034d779ca
--- /dev/null
+++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/util/Waiter.java
@@ -0,0 +1,63 @@
+/*
+ *
+ * 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.qpid.transport.util;
+
+
+/**
+ * Waiter
+ *
+ */
+
+public final class Waiter
+{
+
+ private final Object lock;
+ private final long timeout;
+ private final long start;
+ private long elapsed;
+
+ public Waiter(Object lock, long timeout)
+ {
+ this.lock = lock;
+ this.timeout = timeout;
+ this.start = System.currentTimeMillis();
+ this.elapsed = 0;
+ }
+
+ public boolean hasTime()
+ {
+ return elapsed < timeout;
+ }
+
+ public void await()
+ {
+ try
+ {
+ lock.wait(timeout - elapsed);
+ }
+ catch (InterruptedException e)
+ {
+ // pass
+ }
+ elapsed = System.currentTimeMillis() - start;
+ }
+
+}