Mercurial > hg > truffle
annotate agent/src/os/win32/Dispatcher.cpp @ 2183:eed52202caea
Added parameter to array store exception runtime call (new in HotSpot).
author | Thomas Wuerthinger <wuerthinger@ssw.jku.at> |
---|---|
date | Wed, 16 Feb 2011 15:13:34 +0100 |
parents | c18cbe5936b8 |
children |
rev | line source |
---|---|
0 | 1 /* |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
2 * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. |
0 | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | |
5 * This code is free software; you can redistribute it and/or modify it | |
6 * under the terms of the GNU General Public License version 2 only, as | |
7 * published by the Free Software Foundation. | |
8 * | |
9 * This code is distributed in the hope that it will be useful, but WITHOUT | |
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
12 * version 2 for more details (a copy is included in the LICENSE file that | |
13 * accompanied this code). | |
14 * | |
15 * You should have received a copy of the GNU General Public License version | |
16 * 2 along with this work; if not, write to the Free Software Foundation, | |
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
18 * | |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
20 * or visit www.oracle.com if you need additional information or have any |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
21 * questions. |
0 | 22 * |
23 */ | |
24 | |
25 #include <stdio.h> | |
26 #include <string.h> | |
27 #include "dispatcher.hpp" | |
28 | |
29 const char* CMD_ASCII = "ascii"; | |
30 const char* CMD_UNICODE = "unicode"; | |
31 const char* CMD_PROCLIST = "proclist"; | |
32 const char* CMD_ATTACH = "attach"; | |
33 const char* CMD_DETACH = "detach"; | |
34 const char* CMD_LIBINFO = "libinfo"; | |
35 const char* CMD_PEEK = "peek"; | |
36 const char* CMD_POKE = "poke"; | |
37 const char* CMD_THREADLIST = "threadlist"; | |
38 const char* CMD_DUPHANDLE = "duphandle"; | |
39 const char* CMD_CLOSEHANDLE = "closehandle"; | |
40 const char* CMD_GETCONTEXT = "getcontext"; | |
41 const char* CMD_SETCONTEXT = "setcontext"; | |
42 const char* CMD_SELECTORENTRY = "selectorentry"; | |
43 const char* CMD_SUSPEND = "suspend"; | |
44 const char* CMD_RESUME = "resume"; | |
45 const char* CMD_POLLEVENT = "pollevent"; | |
46 const char* CMD_CONTINUEEVENT = "continueevent"; | |
47 const char* CMD_EXIT = "exit"; | |
48 | |
49 // Uncomment the #define below to get messages on stderr | |
50 // #define DEBUGGING | |
51 | |
52 void | |
53 Dispatcher::dispatch(char* cmd, Handler* handler) { | |
54 if (!strncmp(cmd, CMD_ASCII, strlen(CMD_ASCII))) { | |
55 handler->ascii(cmd + strlen(CMD_ASCII)); | |
56 | |
57 } else if (!strncmp(cmd, CMD_UNICODE, strlen(CMD_UNICODE))) { | |
58 handler->unicode(cmd + strlen(CMD_UNICODE)); | |
59 | |
60 } else if (!strncmp(cmd, CMD_PROCLIST, strlen(CMD_PROCLIST))) { | |
61 handler->procList(cmd + strlen(CMD_PROCLIST)); | |
62 | |
63 } else if (!strncmp(cmd, CMD_ATTACH, strlen(CMD_ATTACH))) { | |
64 handler->attach(cmd + strlen(CMD_ATTACH)); | |
65 | |
66 } else if (!strncmp(cmd, CMD_DETACH, strlen(CMD_DETACH))) { | |
67 handler->detach(cmd + strlen(CMD_DETACH)); | |
68 | |
69 } else if (!strncmp(cmd, CMD_LIBINFO, strlen(CMD_LIBINFO))) { | |
70 handler->libInfo(cmd + strlen(CMD_LIBINFO)); | |
71 | |
72 } else if (!strncmp(cmd, CMD_PEEK, strlen(CMD_PEEK))) { | |
73 handler->peek(cmd + strlen(CMD_PEEK)); | |
74 | |
75 } else if (!strncmp(cmd, CMD_POKE, strlen(CMD_POKE))) { | |
76 handler->poke(cmd + strlen(CMD_POKE)); | |
77 | |
78 } else if (!strncmp(cmd, CMD_THREADLIST, strlen(CMD_THREADLIST))) { | |
79 handler->threadList(cmd + strlen(CMD_THREADLIST)); | |
80 | |
81 } else if (!strncmp(cmd, CMD_DUPHANDLE, strlen(CMD_DUPHANDLE))) { | |
82 handler->dupHandle(cmd + strlen(CMD_DUPHANDLE)); | |
83 | |
84 } else if (!strncmp(cmd, CMD_CLOSEHANDLE, strlen(CMD_CLOSEHANDLE))) { | |
85 handler->closeHandle(cmd + strlen(CMD_CLOSEHANDLE)); | |
86 | |
87 } else if (!strncmp(cmd, CMD_GETCONTEXT, strlen(CMD_GETCONTEXT))) { | |
88 handler->getContext(cmd + strlen(CMD_GETCONTEXT)); | |
89 | |
90 } else if (!strncmp(cmd, CMD_SETCONTEXT, strlen(CMD_SETCONTEXT))) { | |
91 handler->setContext(cmd + strlen(CMD_SETCONTEXT)); | |
92 | |
93 } else if (!strncmp(cmd, CMD_SELECTORENTRY, strlen(CMD_SELECTORENTRY))) { | |
94 handler->selectorEntry(cmd + strlen(CMD_SELECTORENTRY)); | |
95 | |
96 } else if (!strncmp(cmd, CMD_SUSPEND, strlen(CMD_SUSPEND))) { | |
97 handler->suspend(cmd + strlen(CMD_SUSPEND)); | |
98 | |
99 } else if (!strncmp(cmd, CMD_RESUME, strlen(CMD_RESUME))) { | |
100 handler->resume(cmd + strlen(CMD_RESUME)); | |
101 | |
102 } else if (!strncmp(cmd, CMD_POLLEVENT, strlen(CMD_POLLEVENT))) { | |
103 handler->pollEvent(cmd + strlen(CMD_POLLEVENT)); | |
104 | |
105 } else if (!strncmp(cmd, CMD_CONTINUEEVENT, strlen(CMD_CONTINUEEVENT))) { | |
106 handler->continueEvent(cmd + strlen(CMD_CONTINUEEVENT)); | |
107 | |
108 } else if (!strcmp(cmd, CMD_EXIT)) { | |
109 handler->exit(cmd + strlen(CMD_EXIT)); | |
110 } | |
111 | |
112 #ifdef DEBUGGING | |
113 else fprintf(stderr, "Ignoring illegal command \"%s\"\n", cmd); | |
114 #endif | |
115 } |