
com.swiftmq.amqp.v100.client.po.POSendMessage Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of swiftmq-client Show documentation
Show all versions of swiftmq-client Show documentation
Client for SwiftMQ Messaging System with JMS, AMQP 1.0 and file transfer over JMS.
The newest version!
/*
* Copyright 2019 IIT Software GmbH
*
* IIT Software GmbH 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 com.swiftmq.amqp.v100.client.po;
import com.swiftmq.amqp.v100.client.Producer;
import com.swiftmq.amqp.v100.client.QoS;
import com.swiftmq.amqp.v100.client.SessionVisitor;
import com.swiftmq.amqp.v100.generated.messaging.delivery_state.DeliveryStateIF;
import com.swiftmq.amqp.v100.generated.transactions.coordination.TxnIdIF;
import com.swiftmq.amqp.v100.generated.transport.definitions.DeliveryTag;
import com.swiftmq.amqp.v100.messaging.AMQPMessage;
import com.swiftmq.amqp.v100.transport.Packager;
import com.swiftmq.tools.concurrent.Semaphore;
import com.swiftmq.tools.pipeline.POObject;
import com.swiftmq.tools.pipeline.POVisitor;
import com.swiftmq.tools.util.DataByteArrayOutputStream;
import java.io.IOException;
public class POSendMessage extends POObject {
Producer producer;
AMQPMessage message;
TxnIdIF txnId;
volatile DeliveryStateIF deliveryState = null;
DeliveryTag deliveryTag = null;
Packager packager = new Packager();
boolean recovery = false;
public POSendMessage(Semaphore semaphore, Producer producer, AMQPMessage message, TxnIdIF txnId, DeliveryTag deliveryTag) throws IOException {
super(null, semaphore);
this.producer = producer;
this.message = message;
this.txnId = txnId;
this.deliveryTag = deliveryTag;
DataByteArrayOutputStream dbos = new DataByteArrayOutputStream();
message.writeContent(dbos);
packager.setChannel(producer.getMySession().getChannel());
packager.setHandle(producer.getHandle());
packager.setSettled(producer.getQoS() == QoS.AT_MOST_ONCE);
packager.setData(dbos.getBuffer(), dbos.getCount());
dbos = null;
}
public Producer getProducer() {
return producer;
}
public DeliveryStateIF getDeliveryState() {
return deliveryState;
}
public void setDeliveryState(DeliveryStateIF deliveryState) {
this.deliveryState = deliveryState;
}
public DeliveryTag getDeliveryTag() {
return deliveryTag;
}
public TxnIdIF getTxnId() {
return txnId;
}
public AMQPMessage getMessage() {
return message;
}
public Packager getPackager() {
return packager;
}
public boolean isRecovery() {
return recovery;
}
public void setRecovery(boolean recovery) {
this.recovery = recovery;
}
public void accept(POVisitor visitor) {
((SessionVisitor) visitor).visit(this);
}
public String toString() {
return "[POSendMessage, producer=" + producer + ", message=" + message + ", txnId=" + txnId + ", deliveryState=" + deliveryState + ", deliveryTag=" + deliveryTag + ", recovery=" + recovery + "]";
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy