bit more sync/listener logic

This commit is contained in:
Travis Glenn Hansen 2011-11-07 08:39:33 -07:00
parent 3d4a8b5f9d
commit 448e39924d
3 changed files with 27 additions and 21 deletions

View file

@ -153,7 +153,7 @@ namespace SparkleLib {
} }
} else { } else {
SparkleHelpers.DebugInfo ("Listener", SparkleHelpers.DebugInfo ("Listener",
"Already received or sent message " + announcement.Message + " to " + announcement.FolderIdentifier + " on " + this.server); "Already processed message " + announcement.Message + " to " + announcement.FolderIdentifier + " on " + this.server);
} }
} }
@ -199,7 +199,7 @@ namespace SparkleLib {
SparkleHelpers.DebugInfo ("Listener", "Got message " + announcement.Message + " from " + announcement.FolderIdentifier + " on " + this.server); SparkleHelpers.DebugInfo ("Listener", "Got message " + announcement.Message + " from " + announcement.FolderIdentifier + " on " + this.server);
if (this.IsRecentAnnounement(announcement) ){ if (this.IsRecentAnnounement(announcement) ){
SparkleHelpers.DebugInfo ("Listener", "Ignoring previously received message " + announcement.Message + " from " + announcement.FolderIdentifier + " on " + this.server); SparkleHelpers.DebugInfo ("Listener", "Ignoring previously processed message " + announcement.Message + " from " + announcement.FolderIdentifier + " on " + this.server);
return; return;
} }

View file

@ -93,11 +93,14 @@ namespace SparkleLib {
if (bytes_read > 0) { if (bytes_read > 0) {
string received = Encoding.UTF8.GetString (bytes); string received = Encoding.UTF8.GetString (bytes);
string folder_identifier = received.Substring (0, received.IndexOf ("!")); string line = received.Substring (0, received.IndexOf ("\n"));
string message = this.CleanMessage (received.Substring (received.IndexOf ("!") + 1)); if (!line.Contains ("!"))
if (!message.Equals("connected...")) continue;
string folder_identifier = line.Substring (0, line.IndexOf ("!"));
string message = this.CleanMessage (line.Substring (line.IndexOf ("!") + 1));
if (!folder_identifier.Equals("debug") &&
!String.IsNullOrEmpty(message))
OnAnnouncement (new SparkleAnnouncement (folder_identifier, message)); OnAnnouncement (new SparkleAnnouncement (folder_identifier, message));
} else { } else {
SparkleHelpers.DebugInfo ("ListenerTcp", "Error on socket"); SparkleHelpers.DebugInfo ("ListenerTcp", "Error on socket");

View file

@ -260,7 +260,7 @@ namespace SparkleLib {
!announcement.Message.Equals (CurrentRevision)) { !announcement.Message.Equals (CurrentRevision)) {
while (this.IsSyncing ()) { while (this.IsSyncing ()) {
//nothing just wait System.Threading.Thread.Sleep (100);
} }
SparkleHelpers.DebugInfo ("Listener", "Syncing due to Announcement"); SparkleHelpers.DebugInfo ("Listener", "Syncing due to Announcement");
if (!announcement.Message.Equals (CurrentRevision)) if (!announcement.Message.Equals (CurrentRevision))
@ -448,6 +448,7 @@ namespace SparkleLib {
if (SyncStatusChanged != null) if (SyncStatusChanged != null)
SyncStatusChanged (SyncStatus.SyncDown); SyncStatusChanged (SyncStatus.SyncDown);
string pre_sync_revision = CurrentRevision;
if (SyncDown ()) { if (SyncDown ()) {
SparkleHelpers.DebugInfo ("SyncDown", "[" + Name + "] Done"); SparkleHelpers.DebugInfo ("SyncDown", "[" + Name + "] Done");
this.server_online = true; this.server_online = true;
@ -455,24 +456,26 @@ namespace SparkleLib {
if (SyncStatusChanged != null) if (SyncStatusChanged != null)
SyncStatusChanged (SyncStatus.Idle); SyncStatusChanged (SyncStatus.Idle);
List<SparkleChangeSet> change_sets = GetChangeSets (1); if (pre_sync_revision != CurrentRevision) {
if (change_sets != null && change_sets.Count > 0) { List<SparkleChangeSet> change_sets = GetChangeSets (1);
SparkleChangeSet change_set = change_sets [0]; if (change_sets != null && change_sets.Count > 0) {
SparkleChangeSet change_set = change_sets [0];
bool note_added = false; bool note_added = false;
foreach (string added in change_set.Added) { foreach (string added in change_set.Added) {
if (added.Contains (".notes")) { if (added.Contains (".notes")) {
if (NewNote != null) if (NewNote != null)
NewNote (change_set.User.Name, change_set.User.Email); NewNote (change_set.User.Name, change_set.User.Email);
note_added = true; note_added = true;
break; break;
}
} }
}
if (!note_added) { if (!note_added) {
if (NewChangeSet != null) if (NewChangeSet != null)
NewChangeSet (change_set); NewChangeSet (change_set);
}
} }
} }