没有状态变量的动作
Action with no state variable
有没有办法在 Cling 中指定一个没有关联的 @UpnpStateVariable 的 @UpnpAction?。我试过类似
public class ApplicationExecutionServer {
@UpnpAction
public void anAction() {
// do something
}
}
但收到错误消息,指出操作 "anAction" 未关联到状态变量。
遗憾的是,无法进行 'headless' 操作。但是,您可以有一个惰性变量。例如,我有一个这样的服务,它使用假定的字符串 setter 来模拟一个实际上不涉及原始状态变量的动作。
@UpnpStateVariable(defaultValue="0", sendEvents=false)
private String clientHandshakeData = null;
/**
* "Headless" action with ephemeral/transient state variable.
* @param handshakeData
*/
@UpnpAction
public void setClientHandshakeData(@UpnpInputArgument(name="NewClientHandshakeDataValue")String handshakeData){
clientHandshakeData = handshakeData;
processCurrentHandshakeData();
clientHandshakeData = null;
}
本质上 'clientHandshakeData' 是短暂的,我希望每次调用都有一个新值(新客户端连接)。每次有新的连接,我'process'当前的握手数据,立即置为null。
有没有办法在 Cling 中指定一个没有关联的 @UpnpStateVariable 的 @UpnpAction?。我试过类似
public class ApplicationExecutionServer {
@UpnpAction
public void anAction() {
// do something
}
}
但收到错误消息,指出操作 "anAction" 未关联到状态变量。
遗憾的是,无法进行 'headless' 操作。但是,您可以有一个惰性变量。例如,我有一个这样的服务,它使用假定的字符串 setter 来模拟一个实际上不涉及原始状态变量的动作。
@UpnpStateVariable(defaultValue="0", sendEvents=false)
private String clientHandshakeData = null;
/**
* "Headless" action with ephemeral/transient state variable.
* @param handshakeData
*/
@UpnpAction
public void setClientHandshakeData(@UpnpInputArgument(name="NewClientHandshakeDataValue")String handshakeData){
clientHandshakeData = handshakeData;
processCurrentHandshakeData();
clientHandshakeData = null;
}
本质上 'clientHandshakeData' 是短暂的,我希望每次调用都有一个新值(新客户端连接)。每次有新的连接,我'process'当前的握手数据,立即置为null。