|  | // Copyright 2018 The Fuchsia Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #ifndef SRC_DEVELOPER_DEBUG_DEBUG_AGENT_REMOTE_API_H_ | 
|  | #define SRC_DEVELOPER_DEBUG_DEBUG_AGENT_REMOTE_API_H_ | 
|  |  | 
|  | #include "src/developer/debug/ipc/protocol.h" | 
|  |  | 
|  | namespace debug_agent { | 
|  |  | 
|  | // This is an abstract class that implements calls corresponding to the | 
|  | // client->agent IPC requests. | 
|  | class RemoteAPI { | 
|  | public: | 
|  | // Get the IPC version that should be used to deserialize. | 
|  | virtual uint32_t GetVersion() = 0; | 
|  |  | 
|  | #define FN(type) \ | 
|  | virtual void On##type(const debug_ipc::type##Request& request, debug_ipc::type##Reply* reply) = 0; | 
|  |  | 
|  | FOR_EACH_REQUEST_TYPE(FN) | 
|  | #undef FN | 
|  | }; | 
|  |  | 
|  | }  // namespace debug_agent | 
|  |  | 
|  | #endif  // SRC_DEVELOPER_DEBUG_DEBUG_AGENT_REMOTE_API_H_ |