// Copyright 2014 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. /*! * @module debug/controller */ import {Debuggee} from '../debuggee'; import * as stackdriver from '../types/stackdriver'; export interface Controller { /** * Register to the API (implementation) * * @param {!function(?Error,Object=)} callback */ register( debuggee: Debuggee, callback: ( err: Error | null, result?: { debuggee: Debuggee; agentId: string; } ) => void ): void; /** * Update the server about breakpoint state * @param {!Debuggee} debuggee * @param {!Breakpoint} breakpoint * @param {!Function} callback accepting (err, body) */ updateBreakpoint( debuggee: Debuggee, breakpoint: stackdriver.Breakpoint, callback: (err?: Error, body?: {}) => void ): void; /** * Start listening to breakpoints updates. The callback will be called when * there is an unrecoverable error or when the set of active breakpoints has changed. * @param {!Debuggee} debuggee * @param {!function(?Error,Object=)} callback accepting (err, breakpoints) */ subscribeToBreakpoints( debuggee: Debuggee, callback: (err: Error | null, breakpoints: stackdriver.Breakpoint[]) => void ): void; /** * Stops the Controller. This is for testing purposes only. */ stop(): void; }