2008-11-05 Francisco Figueiredo Jr. <francisco@npgsql.org>
[mono.git] / mcs / class / Npgsql / Npgsql / NpgsqlNotificationEventArgs.cs
index f0e90534a0806428ecc692a1418a675566bac370..d6453c7308ac62a9e915e29539e94691b3e9be69 100644 (file)
@@ -8,44 +8,54 @@
 //     http://gborg.postgresql.org/project/npgsql/projdisplay.php
 //
 //
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
-//
-// This library 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
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+// Permission to use, copy, modify, and distribute this software and its
+// documentation for any purpose, without fee, and without a written
+// agreement is hereby granted, provided that the above copyright notice
+// and this paragraph and the following two paragraphs appear in all copies.
+// 
+// IN NO EVENT SHALL THE NPGSQL DEVELOPMENT TEAM BE LIABLE TO ANY PARTY
+// FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
+// INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
+// DOCUMENTATION, EVEN IF THE NPGSQL DEVELOPMENT TEAM HAS BEEN ADVISED OF
+// THE POSSIBILITY OF SUCH DAMAGE.
+// 
+// THE NPGSQL DEVELOPMENT TEAM SPECIFICALLY DISCLAIMS ANY WARRANTIES,
+// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+// AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+// ON AN "AS IS" BASIS, AND THE NPGSQL DEVELOPMENT TEAM HAS NO OBLIGATIONS
+// TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 
 
 using System;
+using System.IO;
 
 namespace Npgsql
 {
-    /// <summary>
-    /// EventArgs class to send Notification parameters.
-    /// </summary>
-    public class NpgsqlNotificationEventArgs : EventArgs
-    {
-        /// <summary>
-        /// Process ID of the PostgreSQL backend that sent this notification.
-        /// </summary>
-        public Int32 PID = 0;
+       /// <summary>
+       /// EventArgs class to send Notification parameters.
+       /// </summary>
+       public class NpgsqlNotificationEventArgs : EventArgs
+       {
+               /// <summary>
+               /// Process ID of the PostgreSQL backend that sent this notification.
+               /// </summary>
+               public readonly int PID;
+
+               /// <summary>
+               /// Condition that triggered that notification.
+               /// </summary>
+               public readonly string Condition;
 
-        /// <summary>
-        /// Condition that triggered that notification.
-        /// </summary>
-        public String Condition = null;
+               /// <summary>
+               /// Additional Information From Notifiying Process (for future use, currently postgres always sets this to an empty string)
+               /// </summary>
+               public readonly string AdditionalInformation;
 
-        internal NpgsqlNotificationEventArgs(Int32 nPID, String nCondition)
-        {
-            PID = nPID;
-            Condition = nCondition;
-        }
-    }
-}
+               internal NpgsqlNotificationEventArgs(Stream stream, bool readAdditional)
+               {
+                       PID = PGUtil.ReadInt32(stream);
+                       Condition = PGUtil.ReadString(stream);
+                       AdditionalInformation = readAdditional ? PGUtil.ReadString(stream) : string.Empty;
+               }
+       }
+}
\ No newline at end of file