/// <summary> /// Saves the messages to persistent storage. This method only performs the /// save if new messages have been added or one of the messages changed. /// </summary> internal void Save() { // only store if at least one messages stored state is dirty if (this.m_dirtyStored) { try { #if UNITY_WEBPLAYER MemoryStream stream = new MemoryStream(); #else string fileName = Application.persistentDataPath + "/" + IQUMessageQueue.FileName; FileStream stream = new FileStream(fileName, FileMode.Create); #endif BinaryWriter writer = new BinaryWriter(stream); writer.Write(IQUMessageQueue.FileVersion); int count = this.GetCount(); writer.Write(count); for (IQUMessage message = this.m_first; message != null; message = message.Next) { message.Save(writer); } writer.Flush(); #if UNITY_WEBPLAYER IQUSDK.Instance.LocalStorage.SetBytes(IQUMessageQueue.FileName, stream.GetBuffer()); #endif stream.Close(); IQUSDK.Instance.AddLog("[Queue] saved " + count + " messages."); } catch (Exception error) { IQUSDK.Instance.AddLog("[Queue][Error] while saving: " + error.Message); } this.m_dirtyStored = false; } }