Files
PlantAI-dev/tools/pymol-env/include/aws/sdkutils/endpoints_bdd_engine.h
T
2026-08-03 18:42:47 +08:00

71 lines
2.1 KiB
C

/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#ifndef AWS_SDKUTILS_ENDPOINTS_BDD_ENGINE_H
#define AWS_SDKUTILS_ENDPOINTS_BDD_ENGINE_H
#include <aws/common/byte_buf.h>
#include <aws/sdkutils/sdkutils.h>
AWS_PUSH_SANE_WARNING_LEVEL
struct aws_endpoints_bdd_engine;
struct aws_partitions_config;
struct aws_endpoints_request_context;
struct aws_endpoints_resolved_endpoint;
AWS_EXTERN_C_BEGIN
/**
* Create a BDD engine from bytecode.
*
* @param allocator Memory allocator
* @param bytecode Bytecode buffer
* The Bytecode buffer is supposed to be from heap allocated memory
* and guaranteed to exist for the lifetime of the engine.
* @param partitions_config Partition configuration (acquired by engine)
* @return New BDD engine or NULL on error
*/
AWS_SDKUTILS_API struct aws_endpoints_bdd_engine *aws_endpoints_bdd_engine_new_from_bytecode(
struct aws_allocator *allocator,
struct aws_byte_cursor bytecode,
struct aws_partitions_config *partitions_config);
/**
* Acquire a reference to the BDD engine.
*
* @param engine BDD engine
* @return The same engine pointer
*/
AWS_SDKUTILS_API struct aws_endpoints_bdd_engine *aws_endpoints_bdd_engine_acquire(
struct aws_endpoints_bdd_engine *engine);
/**
* Release a reference to the BDD engine. Destroys the engine when ref count reaches zero.
*
* @param engine BDD engine
* @return NULL
*/
AWS_SDKUTILS_API struct aws_endpoints_bdd_engine *aws_endpoints_bdd_engine_release(
struct aws_endpoints_bdd_engine *engine);
/**
* Resolve an endpoint using the BDD engine.
*
* @param engine BDD engine
* @param context Request context with parameter values
* @param out_resolved_endpoint Output resolved endpoint or error
* @return AWS_OP_SUCCESS on success, AWS_OP_ERR on failure
*/
AWS_SDKUTILS_API int aws_endpoints_bdd_engine_resolve(
struct aws_endpoints_bdd_engine *engine,
const struct aws_endpoints_request_context *context,
struct aws_endpoints_resolved_endpoint **out_resolved_endpoint);
AWS_EXTERN_C_END
AWS_POP_SANE_WARNING_LEVEL
#endif /* AWS_SDKUTILS_ENDPOINTS_BDD_ENGINE_H */