mobileplaceconnectioncommand.java
来自「一个agent 工具包,可以开发移动设备应用,考虑了安全措施」· Java 代码 · 共 83 行
JAVA
83 行
package SOMA.mobilePlace;
import SOMA.naming.*;
import SOMA.naming.place.*;
import SOMA.network.connection.*;
/** Comando di registrazione del {@link MobilePlaceNameService PNS} di un place mobile presso il PNS del default place.
*
* @author Livio Profiri
*/
public class MobilePlaceConnectionCommand extends Command
{
PlaceInfo myPlaceInfo;
/** Costruttore */
public MobilePlaceConnectionCommand( PlaceInfo myPlaceInfo )
{
this.myPlaceInfo = myPlaceInfo;
}
public void run()
{
// Sarebbe opportuno aggiungere una procedura di controllo di sicurezza.
// Comunicare posizione ad interessato e alla Home
// env.mobilePlaceManager.putPosition( myPlaceInfo.placeID, env.placeID );
// Vedi PlaceRegisterCommand
env.placeNameService.putPlace( myPlaceInfo );
PlaceID mobilePlaceID = myPlaceInfo.placeID;
PlaceID homePlaceID = ((MobilePlaceID)mobilePlaceID).getHome();
env.networkManager.connectionStore.putConnection( mobilePlaceID, ReturnConnection ); //!!!!!!!!!!!!!!!!!!!!!
env.networkManager.sendCommand( mobilePlaceID, new PlaceRefreshCommand( env ));
// Aggiorno la posizione del place mobile sul place mobile
env.networkManager.sendCommand( mobilePlaceID,
new UpdateMobilePlacePositionCommand( env.placeID ) );
// Aggiorno la posizione del place mobile sulla home
env.networkManager.sendCommand( homePlaceID,
new UpdateHomePositionCommand( mobilePlaceID, env.placeID ) );
}
public static class UpdateHomePositionCommand extends Command
{
PlaceID mobilePlaceID;
PlaceID actualDomainID;
UpdateHomePositionCommand( PlaceID mobilePlaceID, PlaceID actualDomainID )
{
this.mobilePlaceID = mobilePlaceID;
this.actualDomainID = actualDomainID;
}
public void run()
{
env.mobilePlaceManager.putPosition( mobilePlaceID, actualDomainID );
env.out.println( "HOME - Mobile Place: " + mobilePlaceID + " joined domain: " + actualDomainID );
if( !actualDomainID.equals( MobilePlaceManager.DISCONNECTED ) )
env.mobilePlaceManager.sendWaitingAgents( mobilePlaceID );
}
}
public static class UpdateMobilePlacePositionCommand extends QuickCommand
{
PlaceID actualDomainID;
UpdateMobilePlacePositionCommand( PlaceID actualDomainID )
{
this.actualDomainID = actualDomainID;
}
public void run()
{
((MobileEnvironment)env).currentDomainID = actualDomainID;
env.out.println( "Mobile Place: " + env.placeID + " joined domain: " + actualDomainID );
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?