当前位置: 首页>>代码示例>>Java>>正文


Java MqttToken类代码示例

本文整理汇总了Java中org.eclipse.paho.client.mqttv3.MqttToken的典型用法代码示例。如果您正苦于以下问题:Java MqttToken类的具体用法?Java MqttToken怎么用?Java MqttToken使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


MqttToken类属于org.eclipse.paho.client.mqttv3包,在下文中一共展示了MqttToken类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: removeToken

import org.eclipse.paho.client.mqttv3.MqttToken; //导入依赖的package包/类
public MqttToken removeToken(String key) {
    final String methodName = "removeToken";
    //@TRACE 306=key={0}
    log.fine(className, methodName, "306", new Object[]{key});

    if (key != null) {
        synchronized (tokens) {
            MqttToken tok = (MqttToken) tokens.get(key);
            if (tok != null) {
                synchronized (tok) {

                    return (MqttToken) tokens.remove(key);
                }
            }
        }
    }
    return null;
}
 
开发者ID:longkerdandy,项目名称:chii2mqtt,代码行数:19,代码来源:CommsTokenStore.java

示例2: ConnectActionListener

import org.eclipse.paho.client.mqttv3.MqttToken; //导入依赖的package包/类
/**
 * @param persistence
 * @param client 
 * @param comms
 * @param options 
 * @param userToken  
 * @param userContext
 * @param userCallback
 */
public ConnectActionListener(
    MqttAsyncClient client,
    MqttClientPersistence persistence,
    ClientComms comms,
    MqttConnectOptions options,
    MqttToken userToken,
    Object userContext,
    IMqttActionListener userCallback) {
  this.persistence = persistence;
  this.client = client;
  this.comms = comms;
  this.options = options;
  this.userToken = userToken;
  this.userContext = userContext;
  this.userCallback = userCallback;
  this.originalMqttVersion = options.getMqttVersion();
}
 
开发者ID:gulliverrr,项目名称:hestia-engine-dev,代码行数:27,代码来源:ConnectActionListener.java

示例3: connect

import org.eclipse.paho.client.mqttv3.MqttToken; //导入依赖的package包/类
/**
 * Start the connect processing
 * @throws MqttPersistenceException 
 */
public void connect() throws MqttPersistenceException {
  MqttToken token = new MqttToken(client.getClientId());
  token.setActionCallback(this);
  token.setUserContext(this);

  persistence.open(client.getClientId(), client.getServerURI());

  if (options.isCleanSession()) {
    persistence.clear();
  }
  
  if (options.getMqttVersion() == MqttConnectOptions.MQTT_VERSION_DEFAULT) {
    options.setMqttVersion(MqttConnectOptions.MQTT_VERSION_3_1_1);
  }

  try {
    comms.connect(options, token);
  }
  catch (MqttException e) {
    onFailure(token, e);
  }
}
 
开发者ID:gulliverrr,项目名称:hestia-engine-dev,代码行数:27,代码来源:ConnectActionListener.java

示例4: fireActionEvent

import org.eclipse.paho.client.mqttv3.MqttToken; //导入依赖的package包/类
/**
 * An action has completed - if a completion listener has been set on the
 * token then invoke it with the outcome of the action.
 * 
 * @param token
 */
public void fireActionEvent(MqttToken token) {
	final String methodName = "fireActionEvent";

	if (token != null) {
		IMqttActionListener asyncCB = token.getActionCallback();
		if (asyncCB != null) {
			if (token.getException() == null) {
				// @TRACE 716=call onSuccess key={0}
				log.fine(CLASS_NAME, methodName, "716",
						new Object[] { token.internalTok.getKey() });
				asyncCB.onSuccess(token);
			} else {
				// @TRACE 717=call onFailure key {0}
				log.fine(CLASS_NAME, methodName, "716",
						new Object[] { token.internalTok.getKey() });
				asyncCB.onFailure(token, token.getException());
			}
		}
	}
}
 
开发者ID:gulliverrr,项目名称:hestia-engine-dev,代码行数:27,代码来源:CommsCallback.java

示例5: handleMessage

import org.eclipse.paho.client.mqttv3.MqttToken; //导入依赖的package包/类
private void handleMessage(MqttPublish publishMessage)
		throws MqttException, Exception {
	final String methodName = "handleMessage";
	// If quisecing process any pending messages. 
	if (mqttCallback != null) {
		String destName = publishMessage.getTopicName();

		// @TRACE 713=call messageArrived key={0} topic={1}
		log.fine(CLASS_NAME, methodName, "713", new Object[] { 
				new Integer(publishMessage.getMessageId()), destName });
		mqttCallback.messageArrived(destName, publishMessage.getMessage());
		if (publishMessage.getMessage().getQos() == 1) {
			this.clientComms.internalSend(new MqttPubAck(publishMessage),
					new MqttToken(clientComms.getClient().getClientId()));
		} else if (publishMessage.getMessage().getQos() == 2) {
			this.clientComms.deliveryComplete(publishMessage);
			MqttPubComp pubComp = new MqttPubComp(publishMessage);
			this.clientComms.internalSend(pubComp, new MqttToken(clientComms.getClient().getClientId()));
		}
	}
}
 
开发者ID:gulliverrr,项目名称:hestia-engine-dev,代码行数:22,代码来源:CommsCallback.java

示例6: notifyResult

import org.eclipse.paho.client.mqttv3.MqttToken; //导入依赖的package包/类
protected void notifyResult(MqttWireMessage ack, MqttToken token, MqttException ex) {
	final String methodName = "notifyResult";
	// unblock any threads waiting on the token  
	token.internalTok.markComplete(ack, ex);
					
	// Let the user know an async operation has completed and then remove the token
	if (ack != null && ack instanceof MqttAck && !(ack instanceof MqttPubRec)) {
		//@TRACE 648=key{0}, msg={1}, excep={2}
		log.fine(CLASS_NAME,methodName, "648", new Object [] {token.internalTok.getKey(), ack, ex});
		callback.asyncOperationComplete(token);
	}
	// There are cases where there is no ack as the operation failed before 
	// an ack was received 
	if (ack == null ) {
		//@TRACE 649=key={0},excep={1}
		log.fine(CLASS_NAME,methodName, "649", new Object [] { token.internalTok.getKey(), ex});
		callback.asyncOperationComplete(token);
	}
}
 
开发者ID:gulliverrr,项目名称:hestia-engine-dev,代码行数:20,代码来源:ClientState.java

示例7: disconnectForcibly

import org.eclipse.paho.client.mqttv3.MqttToken; //导入依赖的package包/类
/**
 * Disconnect the connection and reset all the states.
 */
public void disconnectForcibly(long quiesceTimeout, long disconnectTimeout) throws MqttException {
	// Allow current inbound and outbound work to complete
	clientState.quiesce(quiesceTimeout);
	MqttToken token = new MqttToken(client.getClientId());
	try {
		// Send disconnect packet
		internalSend(new MqttDisconnect(), token);

		// Wait util the disconnect packet sent with timeout
		token.waitForCompletion(disconnectTimeout);
	}
	catch (Exception ex) {
		// ignore, probably means we failed to send the disconnect packet.
	}
	finally {
		token.internalTok.markComplete(null, null);
		shutdownConnection(token, null);
	}
}
 
开发者ID:gulliverrr,项目名称:hestia-engine-dev,代码行数:23,代码来源:ClientComms.java

示例8: deliveryComplete

import org.eclipse.paho.client.mqttv3.MqttToken; //导入依赖的package包/类
@Override
public void deliveryComplete(final IMqttDeliveryToken token) {
	final Level level = Level.FINE;
	if (logger.isLoggable(level)) {
		logger.log(level, Messages.get("msg.mqtt.message.delivered"), token instanceof MqttToken ? ((MqttToken) token).internalTok : token);
	}
}
 
开发者ID:Albertus82,项目名称:RouterLogger,代码行数:8,代码来源:MqttCallback.java

示例9: saveToken

import org.eclipse.paho.client.mqttv3.MqttToken; //导入依赖的package包/类
protected void saveToken(MqttToken token, MqttWireMessage message) throws MqttException {
    final String methodName = "saveToken";

    synchronized (tokens) {
        if (closedResponse == null) {
            String key = message.getKey();
            //@TRACE 300=key={0} message={1}
            log.fine(className, methodName, "300", new Object[]{key, message});

            saveToken(token, key);
        } else {
            throw closedResponse;
        }
    }
}
 
开发者ID:longkerdandy,项目名称:chii2mqtt,代码行数:16,代码来源:CommsTokenStore.java

示例10: handleActionComplete

import org.eclipse.paho.client.mqttv3.MqttToken; //导入依赖的package包/类
private void handleActionComplete(MqttToken token)
		throws MqttException {
	final String methodName = "handleActionComplete";
	synchronized (token) {
		// @TRACE 705=callback and notify for key={0}
		log.fine(CLASS_NAME, methodName, "705",	new Object[] { token.internalTok.getKey() });
		
		// Unblock any waiters and if pending complete now set completed
		token.internalTok.notifyComplete();
		
			if (!token.internalTok.isNotified()) {
				// If a callback is registered and delivery has finished 
				// call delivery complete callback. 
			if ( mqttCallback != null 
				&& token instanceof MqttDeliveryToken 
				&& token.isComplete()) {
					mqttCallback.deliveryComplete((MqttDeliveryToken) token);
			}
			// Now call async action completion callbacks
			fireActionEvent(token);
		}
		
		// Set notified so we don't tell the user again about this action.
			if ( token.isComplete() ){
			   if ( token instanceof MqttDeliveryToken || token.getActionCallback() instanceof IMqttActionListener ) {
	                token.internalTok.setNotified(true);
	            }
			}
		

		if (token.isComplete()) {
			// Finish by doing any post processing such as delete 
			// from persistent store but only do so if the action
			// is complete
			clientState.notifyComplete(token);
		}
	}
}
 
开发者ID:gulliverrr,项目名称:hestia-engine-dev,代码行数:39,代码来源:CommsCallback.java

示例11: asyncOperationComplete

import org.eclipse.paho.client.mqttv3.MqttToken; //导入依赖的package包/类
public void asyncOperationComplete(MqttToken token) {
	final String methodName = "asyncOperationComplete";

	if (running) {
		// invoke callbacks on callback thread
		completeQueue.addElement(token);
		synchronized (workAvailable) {
			// @TRACE 715=new workAvailable. key={0}
			log.fine(CLASS_NAME, methodName, "715", new Object[] { token.internalTok.getKey() });
			workAvailable.notifyAll();
		}
	} else {
		// invoke async callback on invokers thread
		try {
			handleActionComplete(token);
		} catch (Throwable ex) {
			// Users code could throw an Error or Exception e.g. in the case
			// of class NoClassDefFoundError
			// @TRACE 719=callback threw ex:
			log.fine(CLASS_NAME, methodName, "719", null, ex);
			
			// Shutdown likely already in progress but no harm to confirm
			clientComms.shutdownConnection(null, new MqttException(ex));
		}

	}
}
 
开发者ID:gulliverrr,项目名称:hestia-engine-dev,代码行数:28,代码来源:CommsCallback.java

示例12: notifySent

import org.eclipse.paho.client.mqttv3.MqttToken; //导入依赖的package包/类
/**
 * Called by the CommsSender when a message has been sent
 * @param message
 */
protected void notifySent(MqttWireMessage message) {
	final String methodName = "notifySent";
	
	this.lastOutboundActivity = System.currentTimeMillis();
	//@TRACE 625=key={0}
	log.fine(CLASS_NAME,methodName,"625",new Object[]{message.getKey()});
	
	MqttToken token = tokenStore.getToken(message);
	token.internalTok.notifySent();
       if (message instanceof MqttPingReq) {
           synchronized (pingOutstandingLock) {
           	long time = System.currentTimeMillis();
               synchronized (pingOutstandingLock) {
               	lastPing = time;
               	pingOutstanding++;
               }
               //@TRACE 635=ping sent. pingOutstanding: {0}                                                                                                                                                                  
               log.fine(CLASS_NAME,methodName,"635",new Object[]{ new Integer(pingOutstanding)});
           }
       }
       else if (message instanceof MqttPublish) {
		if (((MqttPublish)message).getMessage().getQos() == 0) {
			// once a QoS 0 message is sent we can clean up its records straight away as
			// we won't be hearing about it again
			token.internalTok.markComplete(null, null);
			callback.asyncOperationComplete(token);
			decrementInFlight();
			releaseMessageId(message.getMessageId());
			tokenStore.removeToken(message);
			checkQuiesceLock();
		}
	}
}
 
开发者ID:gulliverrr,项目名称:hestia-engine-dev,代码行数:38,代码来源:ClientState.java

示例13: resolveOldTokens

import org.eclipse.paho.client.mqttv3.MqttToken; //导入依赖的package包/类
/**
 * Called during shutdown to work out if there are any tokens still
 * to be notified and waiters to be unblocked.  Notifying and unblocking 
 * takes place after most shutdown processing has completed. The tokenstore
 * is tidied up so it only contains outstanding delivery tokens which are
 * valid after reconnect (if clean session is false)
 * @param reason The root cause of the disconnection, or null if it is a clean disconnect
 */
public Vector resolveOldTokens(MqttException reason) {
	final String methodName = "resolveOldTokens";
	//@TRACE 632=reason {0}
	log.fine(CLASS_NAME,methodName,"632", new Object[] {reason});
	
	// If any outstanding let the user know the reason why it is still
	// outstanding by putting the reason shutdown is occurring into the 
	// token. 
	MqttException shutReason = reason;
	if (reason == null) {
		shutReason = new MqttException(MqttException.REASON_CODE_CLIENT_DISCONNECTING);
	}
	
	// Set the token up so it is ready to be notified after disconnect
	// processing has completed. Do not 
	// remove the token from the store if it is a delivery token, it is 
	// valid after a reconnect. 
	Vector outT = tokenStore.getOutstandingTokens();
	Enumeration outTE = outT.elements();
	while (outTE.hasMoreElements()) {
		MqttToken tok = (MqttToken)outTE.nextElement();
		synchronized (tok) {
			if (!tok.isComplete() && !tok.internalTok.isCompletePending() && tok.getException() == null) {
				tok.internalTok.setException(shutReason);
			}
		}
		if (!(tok instanceof MqttDeliveryToken)) {
			// If not a delivery token it is not valid on 
			// restart so remove
			tokenStore.removeToken(tok.internalTok.getKey());
		}					
	}
	return outT;
}
 
开发者ID:gulliverrr,项目名称:hestia-engine-dev,代码行数:43,代码来源:ClientState.java

示例14: removeToken

import org.eclipse.paho.client.mqttv3.MqttToken; //导入依赖的package包/类
public MqttToken removeToken(String key) {
	final String methodName = "removeToken";
	//@TRACE 306=key={0}
	log.fine(CLASS_NAME,methodName,"306",new Object[]{key});
	
	if ( null != key ){
	    return (MqttToken) tokens.remove(key);
	}
	
	return null;
}
 
开发者ID:gulliverrr,项目名称:hestia-engine-dev,代码行数:12,代码来源:CommsTokenStore.java

示例15: saveToken

import org.eclipse.paho.client.mqttv3.MqttToken; //导入依赖的package包/类
protected void saveToken(MqttToken token, MqttWireMessage message) throws MqttException {
	final String methodName = "saveToken";

	synchronized(tokens) {
		if (closedResponse == null) {
			String key = message.getKey();
			//@TRACE 300=key={0} message={1}
			log.fine(CLASS_NAME,methodName,"300",new Object[]{key, message});
			
			saveToken(token,key);
		} else {
			throw closedResponse;
		}
	}
}
 
开发者ID:gulliverrr,项目名称:hestia-engine-dev,代码行数:16,代码来源:CommsTokenStore.java


注:本文中的org.eclipse.paho.client.mqttv3.MqttToken类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。