/*
* XCTrack - XContest Live Tracking client for J2ME devices
* Copyright (C) 2009 Petr Chromec <petr@xcontest.org>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.xcontest.xctrack.info;
public class LiveInfo {
public class SessionInfo {
String _domain;
String _username;
String _nickname;
boolean _isAnonymous;
public boolean isAnonymous() {
return _isAnonymous;
}
public String getDomain() {
return _domain;
}
public String getUsername() {
return _username;
}
public String getNickname() {
return _nickname;
}
}
private int _confirmedMessages;
private int _pendingMessages;
private int _confirmedPoints;
private int _pendingPoints;
private int _bytesSent;
private int _bytesReceived;
private boolean _isConnected;
private long _trackingStartTime;
private SessionInfo _sessionInfo;
LiveInfo() {
reset();
}
synchronized void reset() {
_confirmedPoints = 0;
_pendingPoints = 0;
_confirmedMessages = 0;
_pendingMessages = 0;
_bytesSent = 0;
_bytesReceived = 0;
_isConnected = false;
_sessionInfo = null;
_trackingStartTime = -1;
}
synchronized void startTracking() {
_trackingStartTime = System.currentTimeMillis();
}
public double getTrackingTime() {
if (_trackingStartTime >= 0)
return (System.currentTimeMillis()-_trackingStartTime)/1000.0;
else
return 0;
}
synchronized void setConnected(boolean val) {
_isConnected = val;
}
public synchronized boolean isConnected() {
return _isConnected;
}
synchronized void setAnonymousSession(String nickname) {
_sessionInfo = new SessionInfo();
_sessionInfo._isAnonymous = true;
_sessionInfo._nickname = nickname;
}
synchronized void setRegisteredSession(String username, String domain) {
_sessionInfo = new SessionInfo();
_sessionInfo._isAnonymous = false;
_sessionInfo._username = username;
_sessionInfo._domain = domain;
}
public synchronized SessionInfo getSessionInfo() {
return _sessionInfo;
}
synchronized void setClosedSession() {
_sessionInfo = null;
_trackingStartTime = -1;
}
synchronized void setConfirmedMessages(int val) {
_confirmedMessages = val;
}
public synchronized int getConfirmedMessages() {
return _confirmedMessages;
}
synchronized void setPendingMessages(int val) {
_pendingMessages = val;
}
public synchronized int getPendingMessages() {
return _pendingMessages;
}
synchronized void setConfirmedPoints(int val) {
_confirmedPoints = val;
}
public synchronized int getConfirmedPoints() {
return _confirmedPoints;
}
synchronized void setPendingPoints(int val) {
_pendingPoints = val;
}
public synchronized int getPendingPoints() {
return _pendingPoints;
}
synchronized void setBytesSent(int val) {
_bytesSent = val;
}
public synchronized int getBytesSent() {
return _bytesSent;
}
synchronized void setBytesReceived(int val) {
_bytesReceived = val;
}
public synchronized int getBytesReceived() {
return _bytesReceived;
}
}