Mercurial > wow > libmoduledbshare-1-0
comparison LibModuleDBShare-1.0/LibModuleDBShare-1.0.lua @ 23:91ae8cfc63f2
Added OnDatabaseShutdown callbacks to all member DBs.
Corrected character-specific DB field from 'character' to 'char.'
| author | Andrew Knoll <andrewtknoll@gmail.com> |
|---|---|
| date | Fri, 15 Mar 2013 21:09:34 -0400 |
| parents | 4f5fba631b99 |
| children | efdeebcef96e |
comparison
equal
deleted
inserted
replaced
| 22:4f5fba631b99 | 23:91ae8cfc63f2 |
|---|---|
| 64 for i, profile in pairs(initialDB:GetProfiles()) do | 64 for i, profile in pairs(initialDB:GetProfiles()) do |
| 65 group.syncDB:SetProfile(profile); | 65 group.syncDB:SetProfile(profile); |
| 66 end | 66 end |
| 67 group.syncDB:SetProfile(initialDB:GetCurrentProfile()); | 67 group.syncDB:SetProfile(initialDB:GetCurrentProfile()); |
| 68 group.members[initialDB] = true; | 68 group.members[initialDB] = true; |
| 69 if type(initialDB.character.logoutTimestamp) == "number" then | 69 if type(initialDB.char.logoutTimestamp) == "number" then |
| 70 group.profileTimestamp = initialDB.character.logoutTimestamp; | 70 group.profileTimestamp = initialDB.char.logoutTimestamp; |
| 71 else | 71 else |
| 72 group.profileTimestamp = 0; | 72 group.profileTimestamp = 0; |
| 73 end | 73 end |
| 74 -- add methods and callbacks | 74 -- add methods and callbacks |
| 75 for k, v in pairs(DBGroup) do | 75 for k, v in pairs(DBGroup) do |
| 77 end | 77 end |
| 78 group.syncDB.RegisterCallback(group, "OnProfileChanged", "OnProfileChanged"); | 78 group.syncDB.RegisterCallback(group, "OnProfileChanged", "OnProfileChanged"); |
| 79 group.syncDB.RegisterCallback(group, "OnProfileDeleted", "OnProfileDeleted"); | 79 group.syncDB.RegisterCallback(group, "OnProfileDeleted", "OnProfileDeleted"); |
| 80 group.syncDB.RegisterCallback(group, "OnProfileCopied", "OnProfileCopied"); | 80 group.syncDB.RegisterCallback(group, "OnProfileCopied", "OnProfileCopied"); |
| 81 group.syncDB.RegisterCallback(group, "OnProfileReset", "OnProfileReset"); | 81 group.syncDB.RegisterCallback(group, "OnProfileReset", "OnProfileReset"); |
| 82 initialDB.RegisterCallback(group, "OnDatabaseShutdown", "OnDatabaseShutdown"); | |
| 82 group.squelchCallbacks = false; | 83 group.squelchCallbacks = false; |
| 83 LibModuleDBShare.groups[groupName] = group; | 84 LibModuleDBShare.groups[groupName] = group; |
| 84 return group; | 85 return group; |
| 85 end | 86 end |
| 86 | 87 |
| 108 self.squelchCallbacks = true; | 109 self.squelchCallbacks = true; |
| 109 for i, profile in pairs(newDB:GetProfiles()) do | 110 for i, profile in pairs(newDB:GetProfiles()) do |
| 110 self.syncDB:SetProfile(profile); | 111 self.syncDB:SetProfile(profile); |
| 111 end | 112 end |
| 112 -- set current profile based on timestamps | 113 -- set current profile based on timestamps |
| 113 if type(newDB.character.logoutTimestamp) == "number" and newDB.character.logoutTimestamp > self.profileTimestamp then | 114 if type(newDB.char.logoutTimestamp) == "number" and newDB.char.logoutTimestamp > self.profileTimestamp then |
| 114 self.squelchCallbacks = false; | 115 self.squelchCallbacks = false; |
| 115 self.syncDB:SetProfile(newDB:GetCurrentProfile()); | 116 self.syncDB:SetProfile(newDB:GetCurrentProfile()); |
| 116 self.profileTimestamp = newDB.character.logoutTimestamp; | 117 self.profileTimestamp = newDB.character.logoutTimestamp; |
| 117 else | 118 else |
| 118 self.syncDB:SetProfile(syncProfile); | 119 self.syncDB:SetProfile(syncProfile); |
| 119 newDB:SetProfile(syncProfile); | 120 newDB:SetProfile(syncProfile); |
| 120 self.squelchCallbacks = false; | 121 self.squelchCallbacks = false; |
| 121 end | 122 end |
| 122 -- add to members list | 123 -- add to members list |
| 123 self.members[newDB] = true; | 124 self.members[newDB] = true; |
| 125 newDB.RegisterCallback(self, "OnDatabaseShutdown", "OnDatabaseShutdown"); | |
| 124 end | 126 end |
| 125 | 127 |
| 126 -- callback handlers (new profiles are handled by OnProfileChanged) | 128 -- callback handlers (new profiles are handled by OnProfileChanged) |
| 127 | 129 |
| 128 function DBGroup:OnProfileChanged(callback, db, profile) | 130 function DBGroup:OnProfileChanged(callback, db, profile) |
| 148 | 150 |
| 149 function DBGroup:OnProfileReset(callback, db) | 151 function DBGroup:OnProfileReset(callback, db) |
| 150 print("Profile Reset"); | 152 print("Profile Reset"); |
| 151 print(self.name); | 153 print(self.name); |
| 152 end | 154 end |
| 155 | |
| 156 function DBGroup:OnDatabaseShutdown(callback, db) | |
| 157 print("Database Shutdown"); | |
| 158 end |
