First submit for debug plugin
[phpeclipse.git] / net.sourceforge.phpeclipse.debug.core / src / net / sourceforge / phpdt / internal / debug / core / PHPDBGBase.java
diff --git a/net.sourceforge.phpeclipse.debug.core/src/net/sourceforge/phpdt/internal/debug/core/PHPDBGBase.java b/net.sourceforge.phpeclipse.debug.core/src/net/sourceforge/phpdt/internal/debug/core/PHPDBGBase.java
new file mode 100644 (file)
index 0000000..a4ff01f
--- /dev/null
@@ -0,0 +1,125 @@
+/**********************************************************************
+Copyright (c) 2000, 2002 IBM Corp. and others.
+All rights reserved. This program and the accompanying materials
+are made available under the terms of the Common Public License v1.0
+which accompanies this distribution, and is available at
+http://www.eclipse.org/legal/cpl-v10.html
+
+Contributors:
+       Vicente Fernando - www.alfersoft.com.ar - Initial implementation
+**********************************************************************/
+package net.sourceforge.phpdt.internal.debug.core;
+
+public class PHPDBGBase {
+
+       // Constants
+       // php-engine commands/events
+       public static final int DBGC_REPLY                      = 0x0000;               /* reply to previous DBGA_REQUEST request */
+       public static final int DBGC_STARTUP            = 0x0001;               /* script startup */
+       public static final int DBGC_END                        = 0x0002;               /* script done */
+       public static final int DBGC_BREAKPOINT         = 0x0003;               /* user definded breakpoint occured */
+       public static final int DBGC_STEPINTO_DONE      = 0x0004;               /* step to the next statement is completed */
+       public static final int DBGC_STEPOVER_DONE      = 0x0005;               /* step to the next statement is completed */
+       public static final int DBGC_STEPOUT_DONE       = 0x0006;               /* step to the next statement is completed */
+       public static final int DBGC_EMBEDDED_BREAK     = 0x0007;               /* breakpoint caused by DebugBreak() function */
+       public static final int DBGC_ERROR                      = 0x0010;               /* error occured */
+       public static final int DBGC_LOG                        = 0x0011;               /* logging support */
+       public static final int DBGC_SID                        = 0x0012;               /* send SID */
+       public static final int DBGC_PAUSE                      = 0x0013;               /* pause current session as soon as possible */
+
+       public static final char[] DBGA_CONTINUE                = IntToChar4(0x8001);   /* php should continue run */
+       public static final char[] DBGA_STOP                    = IntToChar4(0x8002);
+       public static final char[] DBGA_STEPINTO                = IntToChar4(0x8003);
+       public static final char[] DBGA_STEPOVER                = IntToChar4(0x8004);
+       public static final char[] DBGA_STEPOUT                 = IntToChar4(0x8005);
+       public static final char[] DBGA_IGNORE                  = IntToChar4(0x8006);
+       public static final char[] DBGA_REQUEST                 = IntToChar4(0x8010);   /* debugger client requests some information from PHP engine */
+       
+       public static final int FRAME_STACK                             = 100000;       /* "call:stack" - e.g. backtrace */
+       public static final int FRAME_SOURCE                    = 100100;       /* source text */
+       public static final int FRAME_SRC_TREE                  = 100200;       /* tree of source files */
+       public static final int FRAME_RAWDATA                   = 100300;       /* raw data or string */
+       public static final int FRAME_ERROR                             = 100400;       /* error notification */
+       public static final int FRAME_EVAL                              = 100500;       /* evaluating/watching */
+       public static final int FRAME_BPS                               = 100600;       /* set/remove breakpoint */
+       public static final int FRAME_BPL                               = 100700;       /* breakpoint(s) request = get the list */
+       public static final int FRAME_VER                               = 100800;       /* version request */
+       public static final int FRAME_SID                               = 100900;       /* session id info*/
+       public static final int FRAME_SRCLINESINFO              = 101000;       /* source lines info */
+       public static final int FRAME_SRCCTXINFO                = 101100;       /* source contexts info */
+       public static final int FRAME_LOG                               = 101200;       /* logging */
+       public static final int FRAME_PROF                              = 101300;       /* profiler */
+       public static final int FRAME_PROF_C                    = 101400;       /* profiler counter/accuracy */
+       public static final int FRAME_SET_OPT                   = 101500;       /* set/update options */
+
+       public static final char[] DBGSYNC                              = { 0, 0, (char) 89, (char) 83};        /* DBG syncronization chars */
+
+       // Session Types
+       public static final int DBG_COMPAT              = 0x0001;
+       public static final int DBG_JIT                 = 0x0002;
+       public static final int DBG_REQ                 = 0x0003;
+       public static final int DBG_EMB                 = 0x0004;
+       
+       public static final int BPS_DELETED             = 0;
+       public static final int BPS_DISABLED    = 1;
+       public static final int BPS_ENABLED             = 2;
+       public static final int BPS_UNRESOLVED  = 0x100;
+
+       public PHPDBGBase() {
+       }
+
+       public static void copyCharsTo(char[] to, char[] from, int bytes, int tostart) {
+               int i;
+               for(i=0; i < bytes; i++) to[i + tostart]= from[i];
+       }
+
+       public static void copyChars(char[] to, char[] from, int bytes) {
+               copyCharsTo(to, from, bytes, 0);
+       }
+
+       public static int Char4ToInt(char[] ch, int startPos) {
+               int pos=startPos, ret=0;
+               
+               ret += CharToInt(ch[pos++]) << 24;
+               ret += CharToInt(ch[pos++]) << 16;
+               ret += CharToInt(ch[pos++]) << 8;
+               ret += CharToInt(ch[pos++]) << 0;
+               return ret;
+       }
+
+       public static int CharToInt(char ch) {
+               return (int) (ch & 0x00FF);
+       }
+
+       public static char[] IntToChar4(int num) {
+               char[] ret= new char[4];
+               
+               ret[0] = (char) ((num >> 24) & 0x00FF);
+               ret[1] = (char) ((num >> 16) & 0x00FF);
+               ret[2] = (char) ((num >> 8) & 0x00FF);
+               ret[3] = (char) ((num >> 0) & 0x00FF);
+
+               return ret;
+       }
+
+       public static String CharArrayToString(char[] cha) {
+               String ret= new String();
+               int i, p;
+               
+               for(i=0; i < cha.length; i++) {
+                       p= (int) cha[i];
+                       ret= ret + "(" + String.valueOf(p) + ") ";
+               }
+               return ret;
+       }
+       
+       public static byte[] CharArrayToByteArray(char[] cha) {
+               byte[] ret= new byte[cha.length];
+               int i;
+               
+               for(i=0; i < cha.length; i++) {
+                       ret[i]= (byte) cha[i];
+               }
+               return ret;
+       }
+}