* Copyright (c) Huawei Technologies Co., Ltd. 2026. All rights reserved.
*/
#ifndef A2A_HTTP_SERVER_BUILDER
#define A2A_HTTP_SERVER_BUILDER
#include <memory>
#include <types.h>
#include "task_store.h"
#include "server/server.h"
#include "server/agent_executor.h"
namespace A2A::Server {
struct HttpConfig {
std::string ip;
int port;
int ioThreadNum = 1;
};
class HttpServerBuilder {
public:
* @brief destructor
*/
~HttpServerBuilder();
* @brief create http server
*
* @param[in] config http config
* @param[in] agentCard agent card object
* @param[in] extendedAgentCard extended agent card object
* @param[in] agentExecutor agent executor object
* @param[in] taskStore store object to store task object
* @return A shared pointer to the created server instance
*/
static std::shared_ptr<Server> Build(const HttpConfig& config, std::shared_ptr<AgentCard> agentCard,
std::shared_ptr<AgentCard> extendedAgentCard, std::shared_ptr<AgentExecutor> agentExecutor,
std::shared_ptr<TaskStore> taskStore = nullptr);
};
}
#endif