OSDN Git Service

Part of Anders Bengtsson's patch to clean up Connection.java
authorDave Cramer <davec@fastcrypt.com>
Thu, 21 Mar 2002 02:40:03 +0000 (02:40 +0000)
committerDave Cramer <davec@fastcrypt.com>
Thu, 21 Mar 2002 02:40:03 +0000 (02:40 +0000)
src/interfaces/jdbc/org/postgresql/core/StartupPacket.java [new file with mode: 0644]

diff --git a/src/interfaces/jdbc/org/postgresql/core/StartupPacket.java b/src/interfaces/jdbc/org/postgresql/core/StartupPacket.java
new file mode 100644 (file)
index 0000000..223f16e
--- /dev/null
@@ -0,0 +1,43 @@
+package org.postgresql.core;
+
+import org.postgresql.PG_Stream;
+import java.io.IOException;
+
+/**
+ * Sent to the backend to initialize a newly created connection.
+ *
+ * $Id: StartupPacket.java,v 1.1 2002/03/21 02:40:03 davec Exp $
+ */
+
+public class StartupPacket
+{
+       private static final int SM_DATABASE = 64;
+       private static final int SM_USER = 32;
+       private static final int SM_OPTIONS = 64;
+       private static final int SM_UNUSED = 64;
+       private static final int SM_TTY = 64;
+
+       private int protocolMajor;
+       private int protocolMinor;
+       private String user;
+       private String database;
+
+       public StartupPacket(int protocolMajor, int protocolMinor, String user, String database) {
+               this.protocolMajor = protocolMajor;
+               this.protocolMinor = protocolMinor;
+               this.user = user;
+               this.database = database;
+       }
+
+    public void writeTo(PG_Stream stream) throws IOException
+    {
+               stream.SendInteger(4 + 4 + SM_DATABASE + SM_USER + SM_OPTIONS + SM_UNUSED + SM_TTY, 4);
+               stream.SendInteger(protocolMajor, 2);
+               stream.SendInteger(protocolMinor, 2);
+               stream.Send(database.getBytes(), SM_DATABASE);
+
+               // This last send includes the unused fields
+               stream.Send(user.getBytes(), SM_USER + SM_OPTIONS + SM_UNUSED + SM_TTY);
+       }
+}
+