#include module SMSSession { const string smsIdlVersion = "eSM21.1"; exception SessionError { short errorCode; string errorMsg; }; interface SMSIntf { string interfaceName() raises(SessionError); }; typedef sequence SMSIntfList; struct SMSIntfStruct { SMSIntf smsIntfObj; string intfName; }; typedef sequence SMSIntfStructList; struct AuxDataValue { string name; string value; }; typedef sequence AuxDataList; interface LoginSession { void logout() raises(SessionError); void ping() raises(SessionError); }; interface SessManager { LoginSession login(in string loginId, in string passwd, in string srcIP, in string idlVersion, in string newPasswd, out string userClassName, out SMSIntfStructList intfStructList) raises(SessionError); string reportVersion(in string clientVersion) raises (SessionError); LoginSession forceLogin(in string loginId, in string passwd, in string srcIP, in string idlVersion, in string newPasswd, out string userClassName, out SMSIntfStructList intfStructList, out long sessionId, out long lastLoginTime, out short numOfFailLoginSinceSuc ) raises(SessionError); LoginSession guiLogin( in string loginId, in string passwd, in string srcIP, in string idlVersion, in string newPasswd, in SanityCheck::SanityChk sanityChk, in boolean isClientCertRqd, out string userClassName, out SMSIntfStructList intfStructList, out long sessionId, out long lastLoginTime, out short numOfFailLoginSinceSuc ) raises(SessionError); LoginSession singleLogin(in string loginId, in string passwd, in string srcIP, in string idlVersion, in string newPasswd, in AuxDataList list, out string userClassName, out SMSIntfStructList intfStructList, out long sessionId, out long lastLoginTime, out short numOfFailLoginSinceSuc) raises(SessionError); LoginSession loginWithSessionId(in string loginId, in string passwd, in string srcIP, in string idlVersion, in string newPasswd, out string userClassName, out SMSIntfStructList intfStructList, out long sessionId, out long lastLoginTime, out short numOfFailLoginSinceSuc) raises(SessionError); }; };