diff options
author | aleherbau | 2011-03-31 14:43:18 +0000 |
---|---|---|
committer | aleherbau | 2011-03-31 14:43:18 +0000 |
commit | 60783280bd63e742b2b70cdbdff8d93758ffe820 (patch) | |
tree | f056f0359bb04fc28ab3590b3dd412d4278b31b3 /python/src/tcf/services/remote/StackTraceProxy.py | |
parent | ab638aab968e71abfb8fde370b25c211434a2acd (diff) | |
download | org.eclipse.tcf-60783280bd63e742b2b70cdbdff8d93758ffe820.tar.gz org.eclipse.tcf-60783280bd63e742b2b70cdbdff8d93758ffe820.tar.xz org.eclipse.tcf-60783280bd63e742b2b70cdbdff8d93758ffe820.zip |
Initial commit of TCF python scripting support.
Diffstat (limited to 'python/src/tcf/services/remote/StackTraceProxy.py')
-rw-r--r-- | python/src/tcf/services/remote/StackTraceProxy.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/python/src/tcf/services/remote/StackTraceProxy.py b/python/src/tcf/services/remote/StackTraceProxy.py new file mode 100644 index 000000000..350db8295 --- /dev/null +++ b/python/src/tcf/services/remote/StackTraceProxy.py @@ -0,0 +1,52 @@ +# *******************************************************************************
+# * Copyright (c) 2011 Wind River Systems, Inc. and others.
+# * All rights reserved. This program and the accompanying materials
+# * are made available under the terms of the Eclipse Public License v1.0
+# * which accompanies this distribution, and is available at
+# * http://www.eclipse.org/legal/epl-v10.html
+# *
+# * Contributors:
+# * Wind River Systems - initial API and implementation
+# *******************************************************************************
+
+from tcf.services import stacktrace
+from tcf.channel.Command import Command
+
+class StackTraceProxy(stacktrace.StackTraceService):
+ def __init__(self, channel):
+ self.channel = channel
+
+ def getChildren(self, parent_context_id, done):
+ service = self
+ class GetChildrenCommand(Command):
+ def __init__(self):
+ super(GetChildrenCommand, self).__init__(service.channel, service, "getChildren", (parent_context_id,))
+ def done(self, error, args):
+ contexts = None
+ if not error:
+ assert len(args) == 2
+ error = self.toError(args[0])
+ contexts = args[1]
+ done.doneGetChildren(self.token, error, contexts)
+ return GetChildrenCommand().token
+
+ def getContext(self, ids, done):
+ service = self
+ class GetContextCommand(Command):
+ def __init__(self):
+ super(GetContextCommand, self).__init__(service.channel, service, "getContext", (ids,))
+ def done(self, error, args):
+ ctxs = None
+ if not error:
+ assert len(args) == 2
+ error = self.toError(args[1])
+ ctxs = service.toContextArray(args[0])
+ done.doneGetContext(self.token, error, ctxs)
+ return GetContextCommand().token
+
+ def toContextArray(self, ctxProps):
+ if ctxProps is None: return None
+ ctxs = []
+ for props in ctxProps:
+ ctxs.append(stacktrace.StackTraceContext(props))
+ return ctxs
|