[jboss-cvs] JBoss Messaging SVN: r5223 - in trunk/src/main/org/jboss/messaging/core: server and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Oct 30 12:17:27 EDT 2008
Author: timfox
Date: 2008-10-30 12:17:27 -0400 (Thu, 30 Oct 2008)
New Revision: 5223
Added:
trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReplicateCreateSessionMessage.java
trunk/src/main/org/jboss/messaging/core/server/SendLock.java
trunk/src/main/org/jboss/messaging/core/server/impl/SendLockImpl.java
Log:
Missing files
Added: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReplicateCreateSessionMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReplicateCreateSessionMessage.java (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReplicateCreateSessionMessage.java 2008-10-30 16:17:27 UTC (rev 5223)
@@ -0,0 +1,191 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.messaging.core.remoting.impl.wireformat;
+
+import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
+
+/**
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ *
+ * @version <tt>$Revision$</tt>
+ */
+public class ReplicateCreateSessionMessage extends PacketImpl
+{
+ // Constants -----------------------------------------------------
+
+ // Attributes ----------------------------------------------------
+
+ private String name;
+
+ private long sessionChannelID;
+
+ private int version;
+
+ private String username;
+
+ private String password;
+
+ private boolean xa;
+
+ private boolean autoCommitSends;
+
+ private boolean autoCommitAcks;
+
+ // Static --------------------------------------------------------
+
+ // Constructors --------------------------------------------------
+
+ public ReplicateCreateSessionMessage(final String name,
+ final long sessionChannelID,
+ final int version,
+ final String username,
+ final String password,
+ final boolean xa,
+ final boolean autoCommitSends,
+ final boolean autoCommitAcks)
+ {
+ super(REPLICATE_CREATESESSION);
+
+ this.name = name;
+
+ this.sessionChannelID = sessionChannelID;
+
+ this.version = version;
+
+ this.username = username;
+
+ this.password = password;
+
+ this.xa = xa;
+
+ this.autoCommitSends = autoCommitSends;
+
+ this.autoCommitAcks = autoCommitAcks;
+ }
+
+ public ReplicateCreateSessionMessage()
+ {
+ super(REPLICATE_CREATESESSION);
+ }
+
+ // Public --------------------------------------------------------
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public long getSessionChannelID()
+ {
+ return sessionChannelID;
+ }
+
+ public int getVersion()
+ {
+ return version;
+ }
+
+ public String getUsername()
+ {
+ return username;
+ }
+
+ public String getPassword()
+ {
+ return password;
+ }
+
+ public boolean isXA()
+ {
+ return xa;
+ }
+
+ public boolean isAutoCommitSends()
+ {
+ return this.autoCommitSends;
+ }
+
+ public boolean isAutoCommitAcks()
+ {
+ return this.autoCommitAcks;
+ }
+
+ public void encodeBody(final MessagingBuffer buffer)
+ {
+ buffer.putString(name);
+ buffer.putLong(sessionChannelID);
+ buffer.putInt(version);
+ buffer.putNullableString(username);
+ buffer.putNullableString(password);
+ buffer.putBoolean(xa);
+ buffer.putBoolean(autoCommitSends);
+ buffer.putBoolean(autoCommitAcks);
+ }
+
+ public void decodeBody(final MessagingBuffer buffer)
+ {
+ name = buffer.getString();
+ sessionChannelID = buffer.getLong();
+ version = buffer.getInt();
+ username = buffer.getNullableString();
+ password = buffer.getNullableString();
+ xa = buffer.getBoolean();
+ autoCommitSends = buffer.getBoolean();
+ autoCommitAcks = buffer.getBoolean();
+ }
+
+ public boolean equals(Object other)
+ {
+ if (other instanceof ReplicateCreateSessionMessage == false)
+ {
+ return false;
+ }
+
+ ReplicateCreateSessionMessage r = (ReplicateCreateSessionMessage)other;
+
+ boolean matches = super.equals(other) && this.name.equals(r.name) &&
+ this.sessionChannelID == r.sessionChannelID &&
+ this.version == r.version &&
+ this.xa == r.xa &&
+ this.autoCommitSends == r.autoCommitSends &&
+ this.autoCommitAcks == r.autoCommitAcks &&
+ (this.username == null ? r.username == null : this.username.equals(r.username)) &&
+ (this.password == null ? r.password == null : this.password.equals(r.password));
+
+ return matches;
+ }
+
+ public final boolean isRequiresConfirmations()
+ {
+ return false;
+ }
+
+ // Package protected ---------------------------------------------
+
+ // Protected -----------------------------------------------------
+
+ // Private -------------------------------------------------------
+
+ // Inner classes -------------------------------------------------
+}
Added: trunk/src/main/org/jboss/messaging/core/server/SendLock.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/SendLock.java (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/server/SendLock.java 2008-10-30 16:17:27 UTC (rev 5223)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+
+package org.jboss.messaging.core.server;
+
+/**
+ * A SendLock
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ *
+ * Created 30 Oct 2008 15:48:27
+ *
+ *
+ */
+public interface SendLock
+{
+ void lock();
+
+ void unlock();
+
+ void beforeSend();
+
+ void afterSend();
+}
Added: trunk/src/main/org/jboss/messaging/core/server/impl/SendLockImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/SendLockImpl.java (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/SendLockImpl.java 2008-10-30 16:17:27 UTC (rev 5223)
@@ -0,0 +1,98 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+
+package org.jboss.messaging.core.server.impl;
+
+import org.jboss.messaging.core.server.SendLock;
+
+
+/**
+ * A SendLockImpl
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ *
+ * Created 27 Oct 2008 12:42:37
+ *
+ *
+ */
+public class SendLockImpl implements SendLock
+{
+ private boolean locked;
+
+ private int count;
+
+ public synchronized void lock()
+ {
+ while (count > 0 || locked)
+ {
+ try
+ {
+ wait();
+ }
+ catch (InterruptedException e)
+ {
+ }
+ }
+
+ locked = true;
+ }
+
+ public synchronized void unlock()
+ {
+ locked = false;
+
+ notifyAll();
+ }
+
+ public synchronized void beforeSend()
+ {
+ while (locked)
+ {
+ try
+ {
+ wait();
+ }
+ catch (InterruptedException e)
+ {
+ }
+ }
+
+ count++;
+ }
+
+ public synchronized void afterSend()
+ {
+ count--;
+
+ if (count < 0)
+ {
+ throw new IllegalStateException("called afterSend() too many times");
+ }
+
+ if (count == 0)
+ {
+ notifyAll();
+ }
+ }
+
+}
More information about the jboss-cvs-commits
mailing list