📄 synchronizedpdusender.java
字号:
/*
* 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 org.jsmpp;
import java.io.IOException;
import java.io.OutputStream;
import org.jsmpp.bean.BindType;
import org.jsmpp.bean.DataCoding;
import org.jsmpp.bean.DestinationAddress;
import org.jsmpp.bean.ESMClass;
import org.jsmpp.bean.InterfaceVersion;
import org.jsmpp.bean.MessageState;
import org.jsmpp.bean.NumberingPlanIndicator;
import org.jsmpp.bean.OptionalParameter;
import org.jsmpp.bean.RegisteredDelivery;
import org.jsmpp.bean.ReplaceIfPresentFlag;
import org.jsmpp.bean.TypeOfNumber;
import org.jsmpp.bean.UnsuccessDelivery;
/**
* PDU sender with synchronized the {@link OutputStream}.
*
* @author uudashr
* @version 1.1
* @since 1.0
*
*/
public class SynchronizedPDUSender implements PDUSender {
private final PDUSender pduSender;
/**
* Default constructor.
*/
public SynchronizedPDUSender() {
this(new DefaultPDUSender());
}
/**
* Construct with specified {@link PDUSender}.
*
* @param pduSender
*/
public SynchronizedPDUSender(PDUSender pduSender) {
this.pduSender = pduSender;
}
/*
* (non-Javadoc)
*
* @see org.jsmpp.PDUSender#sendHeader(java.io.OutputStream, int, int, int)
*/
public byte[] sendHeader(OutputStream os, int commandId, int commandStatus,
int sequenceNumber) throws IOException {
synchronized (os) {
return pduSender.sendHeader(os, commandId, commandStatus,
sequenceNumber);
}
}
/*
* (non-Javadoc)
*
* @see org.jsmpp.PDUSender#sendBind(java.io.OutputStream,
* org.jsmpp.BindType, int, java.lang.String, java.lang.String,
* java.lang.String, org.jsmpp.InterfaceVersion,
* org.jsmpp.TypeOfNumber, org.jsmpp.NumberingPlanIndicator,
* java.lang.String)
*/
public byte[] sendBind(OutputStream os, BindType bindType,
int sequenceNumber, String systemId, String password,
String systemType, InterfaceVersion interfaceVersion,
TypeOfNumber addrTon, NumberingPlanIndicator addrNpi,
String addressRange) throws PDUStringException, IOException {
synchronized (os) {
return pduSender.sendBind(os, bindType, sequenceNumber, systemId,
password, systemType, interfaceVersion, addrTon, addrNpi,
addressRange);
}
}
/*
* (non-Javadoc)
*
* @see org.jsmpp.PDUSender#sendBindResp(java.io.OutputStream, int, int,
* java.lang.String)
*/
public byte[] sendBindResp(OutputStream os, int commandId,
int sequenceNumber, String systemId) throws PDUStringException,
IOException {
synchronized (os) {
return pduSender.sendBindResp(os, commandId, sequenceNumber,
systemId);
}
}
/*
* (non-Javadoc)
*
* @see org.jsmpp.PDUSender#sendUnbind(java.io.OutputStream, int)
*/
public byte[] sendUnbind(OutputStream os, int sequenceNumber)
throws IOException {
synchronized (os) {
return pduSender.sendUnbind(os, sequenceNumber);
}
}
/*
* (non-Javadoc)
*
* @see org.jsmpp.PDUSender#sendGenericNack(java.io.OutputStream, int, int)
*/
public byte[] sendGenericNack(OutputStream os, int commandStatus,
int sequenceNumber) throws IOException {
synchronized (os) {
return pduSender.sendGenericNack(os, commandStatus, sequenceNumber);
}
}
/*
* (non-Javadoc)
*
* @see org.jsmpp.PDUSender#sendUnbindResp(java.io.OutputStream, int, int)
*/
public byte[] sendUnbindResp(OutputStream os, int commandStatus,
int sequenceNumber) throws IOException {
synchronized (os) {
return pduSender.sendUnbindResp(os, commandStatus, sequenceNumber);
}
}
/*
* (non-Javadoc)
*
* @see org.jsmpp.PDUSender#sendEnquireLink(java.io.OutputStream, int)
*/
public byte[] sendEnquireLink(OutputStream out, int sequenceNumber)
throws IOException {
synchronized (out) {
return pduSender.sendEnquireLink(out, sequenceNumber);
}
}
/*
* (non-Javadoc)
*
* @see org.jsmpp.PDUSender#sendEnquireLinkResp(java.io.OutputStream, int)
*/
public byte[] sendEnquireLinkResp(OutputStream os, int sequenceNumber)
throws IOException {
synchronized (os) {
return pduSender.sendEnquireLinkResp(os, sequenceNumber);
}
}
/*
* (non-Javadoc)
*
* @see org.jsmpp.PDUSender#sendSubmitSm(java.io.OutputStream, int,
* java.lang.String, org.jsmpp.TypeOfNumber,
* org.jsmpp.NumberingPlanIndicator, java.lang.String,
* org.jsmpp.TypeOfNumber, org.jsmpp.NumberingPlanIndicator,
* java.lang.String, org.jsmpp.bean.ESMClass, byte, byte,
* java.lang.String, java.lang.String,
* org.jsmpp.bean.RegisteredDelivery, byte, org.jsmpp.bean.DataCoding,
* byte, byte[], org.jsmpp.bean.OptionalParameter[])
*/
public byte[] sendSubmitSm(OutputStream os, int sequenceNumber,
String serviceType, TypeOfNumber sourceAddrTon,
NumberingPlanIndicator sourceAddrNpi, String sourceAddr,
TypeOfNumber destAddrTon, NumberingPlanIndicator destAddrNpi,
String destinationAddr, ESMClass esmClass, byte protocolId,
byte priorityFlag, String scheduleDeliveryTime,
String validityPeriod, RegisteredDelivery registeredDelivery,
byte replaceIfPresent, DataCoding dataCoding, byte smDefaultMsgId,
byte[] shortMessage, OptionalParameter... optionalParameters)
throws PDUStringException, IOException {
synchronized (os) {
return pduSender.sendSubmitSm(os, sequenceNumber, serviceType,
sourceAddrTon, sourceAddrNpi, sourceAddr, destAddrTon,
destAddrNpi, destinationAddr, esmClass, protocolId,
priorityFlag, scheduleDeliveryTime, validityPeriod,
registeredDelivery, replaceIfPresent, dataCoding,
smDefaultMsgId, shortMessage, optionalParameters);
}
}
/*
* (non-Javadoc)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -