本文整理汇总了Java中org.eclipse.californium.core.coap.Response.getMID方法的典型用法代码示例。如果您正苦于以下问题:Java Response.getMID方法的具体用法?Java Response.getMID怎么用?Java Response.getMID使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.eclipse.californium.core.coap.Response
的用法示例。
在下文中一共展示了Response.getMID方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: removeNotificatoinsOf
import org.eclipse.californium.core.coap.Response; //导入方法依赖的package包/类
private void removeNotificatoinsOf(ObserveRelation relation) {
LOGGER.fine("Remove all remaining NON-notifications of observe relation");
for (Iterator<Response> iterator = relation.getNotificationIterator(); iterator.hasNext();) {
Response previous = iterator.next();
// notifications are local MID namespace
KeyMID idByMID = new KeyMID(previous.getMID(), null, 0);
exchangesByMID.remove(idByMID);
iterator.remove();
}
}
示例2: CoapMessage
import org.eclipse.californium.core.coap.Response; //导入方法依赖的package包/类
public CoapMessage(Response request, boolean incoming) {
this(incoming, request.getType(), request.getMID(), request.getTokenString(), request.getOptions(), request
.getPayload());
this.code = request.getCode().toString();
}
示例3: sendResponse
import org.eclipse.californium.core.coap.Response; //导入方法依赖的package包/类
public void sendResponse(Exchange exchange, Response response) {
// ensure MID is set
if (response.getMID() == Message.NONE) {
response.setMID(currendMID.getAndIncrement()%(1<<16));
}
// ensure Token is set
response.setToken(exchange.getCurrentRequest().getToken());
// If this is a CON notification we now can forget all previous NON notifications
if (response.getType() == Type.CON || response.getType() == Type.ACK) {
ObserveRelation relation = exchange.getRelation();
if (relation != null) {
removeNotificatoinsOf(relation);
}
}
// Blockwise transfers are identified by URI and remote endpoint
if (response.getOptions().hasBlock2()) {
Request request = exchange.getCurrentRequest();
KeyUri idByUri = new KeyUri(request.getURI(), response.getDestination().getAddress(), response.getDestinationPort());
// Observe notifications only send the first block, hence do not store them as ongoing
if (exchange.getResponseBlockStatus()!=null && !response.getOptions().hasObserve()) {
// Remember ongoing blockwise GET requests
if (ongoingExchanges.put(idByUri, exchange)==null) {
LOGGER.fine("Ongoing Block2 started late, storing "+idByUri + " for " + request);
} else {
LOGGER.fine("Ongoing Block2 continued, storing "+idByUri + " for " + request);
}
} else {
LOGGER.fine("Ongoing Block2 completed, cleaning up "+idByUri + " for " + request);
ongoingExchanges.remove(idByUri);
}
}
// Insert CON and NON to match ACKs and RSTs to the exchange.
// Do not insert ACKs and RSTs.
if (response.getType() == Type.CON || response.getType() == Type.NON) {
KeyMID idByMID = new KeyMID(response.getMID(), null, 0);
exchangesByMID.put(idByMID, exchange);
}
// Only CONs and Observe keep the exchange active
if (response.getType() != Type.CON && response.isLast()) {
exchange.setComplete();
}
}
示例4: completed
import org.eclipse.californium.core.coap.Response; //导入方法依赖的package包/类
@Override
public void completed(Exchange exchange) {
/*
* Logging in this method leads to significant performance loss.
* Uncomment logging code only for debugging purposes.
*/
if (exchange.getOrigin() == Origin.LOCAL) {
// this endpoint created the Exchange by issuing a request
KeyMID idByMID = new KeyMID(exchange.getCurrentRequest().getMID(), null, 0);
KeyToken idByToken = new KeyToken(exchange.getCurrentRequest().getToken());
// LOGGER.fine("Exchange completed: Cleaning up "+idByTok);
exchangesByToken.remove(idByToken);
// in case an empty ACK was lost
exchangesByMID.remove(idByMID);
} else { // Origin.REMOTE
// this endpoint created the Exchange to respond to a request
Response response = exchange.getCurrentResponse();
if (response != null && response.getType() != Type.ACK) {
// only response MIDs are stored for ACK and RST, no reponse Tokens
KeyMID midKey = new KeyMID(response.getMID(), null, 0);
// LOGGER.fine("Remote ongoing completed, cleaning up "+midKey);
exchangesByMID.remove(midKey);
}
Request request = exchange.getCurrentRequest();
if (request != null && (request.getOptions().hasBlock1() || response.getOptions().hasBlock2()) ) {
KeyUri uriKey = new KeyUri(request.getURI(), request.getSource().getAddress(), request.getSourcePort());
LOGGER.fine("Remote ongoing completed, cleaning up "+uriKey);
ongoingExchanges.remove(uriKey);
}
// Remove all remaining NON-notifications if this exchange is an observe relation
ObserveRelation relation = exchange.getRelation();
if (relation != null) {
removeNotificatoinsOf(relation);
}
}
}