aissia/src/shared/mcp/MCPTransport.hpp
StillHammer d17ee5fbdc feat: AISSIA rename and codebase updates
- Renamed project from Celuna to AISSIA
- Updated all documentation and configuration files
- Codebase improvements and fixes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 18:37:13 +07:00

52 lines
1.2 KiB
C++

#pragma once
#include "MCPTypes.hpp"
#include <nlohmann/json.hpp>
#include <string>
#include <memory>
namespace celuna::mcp {
using json = nlohmann::json;
/**
* @brief Abstract transport interface for MCP communication
*/
class IMCPTransport {
public:
virtual ~IMCPTransport() = default;
/**
* @brief Start the transport (connect/spawn process)
* @return true if successful
*/
virtual bool start() = 0;
/**
* @brief Stop the transport
*/
virtual void stop() = 0;
/**
* @brief Check if transport is running
*/
virtual bool isRunning() const = 0;
/**
* @brief Send a JSON-RPC request and wait for response
* @param request The request to send
* @param timeoutMs Timeout in milliseconds
* @return The response
*/
virtual JsonRpcResponse sendRequest(const JsonRpcRequest& request, int timeoutMs = 30000) = 0;
/**
* @brief Send a notification (no response expected)
* @param method Method name
* @param params Parameters
*/
virtual void sendNotification(const std::string& method, const json& params) = 0;
};
} // namespace celuna::mcp