Package Summary
| Version | 3.0.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-11-25 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jaycee Lock
Authors
HTTP Client (cl_http)
SMACC2 client library for making HTTP/HTTPS requests using Boost.Beast.
Architecture
/home/brettpac/workspaces/isaac_ros-dev/src/SMACC2/smacc2_client_library/cl_http
The cl_http follows a pure component-based architecture with three specialized components:
ClHttp (Client - Orchestrator)
├── CpHttpConnectionManager - io_context and thread management
├── CpHttpSessionManager - SSL context and session creation
└── CpHttpRequestExecutor - Request execution and response handling
Components
CpHttpConnectionManager
Responsibility: Manages the asynchronous I/O infrastructure
- Owns boost::asio::io_context
- Manages worker thread lifecycle
- Provides strand for thread-safe operations
Lifetime: State machine scoped (created with ClHttp, destroyed with state machine)
CpHttpSessionManager
Responsibility: Manages HTTP/HTTPS session configuration
- Parses server URLs (protocol, host, port)
- Manages SSL context for HTTPS connections
- Creates session objects (http_session or ssl_http_session)
Lifetime: State machine scoped
CpHttpRequestExecutor
Responsibility: Coordinates HTTP request execution
- Accepts request parameters (method, path, body, headers)
- Acquires strand from CpHttpConnectionManager
- Acquires session from CpHttpSessionManager
- Executes requests and emits response signals
Lifetime: State machine scoped
Signal Flow
User Code (Behavior)
↓
CpHttpRequestExecutor::executeRequest()
↓
Session created (http_session/ssl_http_session)
↓
Request executed asynchronously
↓
Response received
↓
CpHttpRequestExecutor::onResponseReceived_ (SmaccSignal)
↓ (backward compatibility)
ClHttp::onResponseReceived_ (forwarded)
↓
Behavior callback
Usage
Quick Start: Using Base Behaviors
The easiest way to make HTTP requests is using the provided base behaviors:
#include <cl_http/client_behaviors/cb_http_get_request.hpp>
class StHttpRequest : public smacc2::SmaccState<StHttpRequest, SmExample>
{
public:
using SmaccState::SmaccState;
void runtimeConfigure() override
{
auto behavior = this->configure<cl_http::CbHttpGetRequest>();
}
};
Custom Behaviors: Component-Based Approach
For custom HTTP behavior, inherit from base class and override response handling:
```cpp #include <cl_http/client_behaviors/cb_http_request.hpp>
class CbCustomRequest : public cl_http::CbHttpRequestBase { public: CbCustomRequest() : CbHttpRequestBase(CpHttpRequestExecutor::HttpMethod::GET) {}
void onResponseReceived(const CpHttpRequestExecutor::TResponse& response) override {
File truncated at 100 lines see the full file
Changelog for package cl_http
2.3.19 (2025-06-17)
-
OpenAI example client ported to SMACC (#557)
- initial commit for openAI example
- Replaced get with post, added key fetch logic
- Added ability to modify the body of an http request for the http client
- Added functionality to encode and send image data to ChatGPT
- Added APIs to add headers to an outgoing HTTP request
- HTTP requests can now deal with CDNs
* Expanded example openAI node to submit a more sophisticated request with an image
- Using env variable for test iamge location
- Fixed commit errors
- Renamed instantiation of HTTP request CB to something more specific to OpenAI
-
Moved HTTP client behaviour to client library. Also added GET and POS… (#549)
- Moved HTTP client behaviour to client library. Also added GET and POST-specific versions of the smacc HTTP client behaviour to make them easier to use
- Added copyrights
- Fixed typos
-
Http client (#522)
- Ported http work over from smacc1
- Added example showasing http requests
- Fixed some typos in the HTTP example
- Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update smacc_action_client_base.hpp Pretty sure this change was made accidently.
* Update smacc_action_client_base.hpp Messed up first commit
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Ported http work over from smacc1
-
Added example showasing http requests
-
Fixed some typos in the HTTP example
-
Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Added helper class to handle server name related interactions
- Added SSL implementation, need to make provision for SSL and non-SSLD requests
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| sm_atomic_http |
Launch files
Messages
Services
Plugins
Recent questions tagged cl_http at Robotics Stack Exchange
Package Summary
| Version | 3.0.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-11-25 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jaycee Lock
Authors
HTTP Client (cl_http)
SMACC2 client library for making HTTP/HTTPS requests using Boost.Beast.
Architecture
/home/brettpac/workspaces/isaac_ros-dev/src/SMACC2/smacc2_client_library/cl_http
The cl_http follows a pure component-based architecture with three specialized components:
ClHttp (Client - Orchestrator)
├── CpHttpConnectionManager - io_context and thread management
├── CpHttpSessionManager - SSL context and session creation
└── CpHttpRequestExecutor - Request execution and response handling
Components
CpHttpConnectionManager
Responsibility: Manages the asynchronous I/O infrastructure
- Owns boost::asio::io_context
- Manages worker thread lifecycle
- Provides strand for thread-safe operations
Lifetime: State machine scoped (created with ClHttp, destroyed with state machine)
CpHttpSessionManager
Responsibility: Manages HTTP/HTTPS session configuration
- Parses server URLs (protocol, host, port)
- Manages SSL context for HTTPS connections
- Creates session objects (http_session or ssl_http_session)
Lifetime: State machine scoped
CpHttpRequestExecutor
Responsibility: Coordinates HTTP request execution
- Accepts request parameters (method, path, body, headers)
- Acquires strand from CpHttpConnectionManager
- Acquires session from CpHttpSessionManager
- Executes requests and emits response signals
Lifetime: State machine scoped
Signal Flow
User Code (Behavior)
↓
CpHttpRequestExecutor::executeRequest()
↓
Session created (http_session/ssl_http_session)
↓
Request executed asynchronously
↓
Response received
↓
CpHttpRequestExecutor::onResponseReceived_ (SmaccSignal)
↓ (backward compatibility)
ClHttp::onResponseReceived_ (forwarded)
↓
Behavior callback
Usage
Quick Start: Using Base Behaviors
The easiest way to make HTTP requests is using the provided base behaviors:
#include <cl_http/client_behaviors/cb_http_get_request.hpp>
class StHttpRequest : public smacc2::SmaccState<StHttpRequest, SmExample>
{
public:
using SmaccState::SmaccState;
void runtimeConfigure() override
{
auto behavior = this->configure<cl_http::CbHttpGetRequest>();
}
};
Custom Behaviors: Component-Based Approach
For custom HTTP behavior, inherit from base class and override response handling:
```cpp #include <cl_http/client_behaviors/cb_http_request.hpp>
class CbCustomRequest : public cl_http::CbHttpRequestBase { public: CbCustomRequest() : CbHttpRequestBase(CpHttpRequestExecutor::HttpMethod::GET) {}
void onResponseReceived(const CpHttpRequestExecutor::TResponse& response) override {
File truncated at 100 lines see the full file
Changelog for package cl_http
2.3.19 (2025-06-17)
-
OpenAI example client ported to SMACC (#557)
- initial commit for openAI example
- Replaced get with post, added key fetch logic
- Added ability to modify the body of an http request for the http client
- Added functionality to encode and send image data to ChatGPT
- Added APIs to add headers to an outgoing HTTP request
- HTTP requests can now deal with CDNs
* Expanded example openAI node to submit a more sophisticated request with an image
- Using env variable for test iamge location
- Fixed commit errors
- Renamed instantiation of HTTP request CB to something more specific to OpenAI
-
Moved HTTP client behaviour to client library. Also added GET and POS… (#549)
- Moved HTTP client behaviour to client library. Also added GET and POST-specific versions of the smacc HTTP client behaviour to make them easier to use
- Added copyrights
- Fixed typos
-
Http client (#522)
- Ported http work over from smacc1
- Added example showasing http requests
- Fixed some typos in the HTTP example
- Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update smacc_action_client_base.hpp Pretty sure this change was made accidently.
* Update smacc_action_client_base.hpp Messed up first commit
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Ported http work over from smacc1
-
Added example showasing http requests
-
Fixed some typos in the HTTP example
-
Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Added helper class to handle server name related interactions
- Added SSL implementation, need to make provision for SSL and non-SSLD requests
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| sm_atomic_http |
Launch files
Messages
Services
Plugins
Recent questions tagged cl_http at Robotics Stack Exchange
Package Summary
| Version | 3.0.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-11-25 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jaycee Lock
Authors
HTTP Client (cl_http)
SMACC2 client library for making HTTP/HTTPS requests using Boost.Beast.
Architecture
/home/brettpac/workspaces/isaac_ros-dev/src/SMACC2/smacc2_client_library/cl_http
The cl_http follows a pure component-based architecture with three specialized components:
ClHttp (Client - Orchestrator)
├── CpHttpConnectionManager - io_context and thread management
├── CpHttpSessionManager - SSL context and session creation
└── CpHttpRequestExecutor - Request execution and response handling
Components
CpHttpConnectionManager
Responsibility: Manages the asynchronous I/O infrastructure
- Owns boost::asio::io_context
- Manages worker thread lifecycle
- Provides strand for thread-safe operations
Lifetime: State machine scoped (created with ClHttp, destroyed with state machine)
CpHttpSessionManager
Responsibility: Manages HTTP/HTTPS session configuration
- Parses server URLs (protocol, host, port)
- Manages SSL context for HTTPS connections
- Creates session objects (http_session or ssl_http_session)
Lifetime: State machine scoped
CpHttpRequestExecutor
Responsibility: Coordinates HTTP request execution
- Accepts request parameters (method, path, body, headers)
- Acquires strand from CpHttpConnectionManager
- Acquires session from CpHttpSessionManager
- Executes requests and emits response signals
Lifetime: State machine scoped
Signal Flow
User Code (Behavior)
↓
CpHttpRequestExecutor::executeRequest()
↓
Session created (http_session/ssl_http_session)
↓
Request executed asynchronously
↓
Response received
↓
CpHttpRequestExecutor::onResponseReceived_ (SmaccSignal)
↓ (backward compatibility)
ClHttp::onResponseReceived_ (forwarded)
↓
Behavior callback
Usage
Quick Start: Using Base Behaviors
The easiest way to make HTTP requests is using the provided base behaviors:
#include <cl_http/client_behaviors/cb_http_get_request.hpp>
class StHttpRequest : public smacc2::SmaccState<StHttpRequest, SmExample>
{
public:
using SmaccState::SmaccState;
void runtimeConfigure() override
{
auto behavior = this->configure<cl_http::CbHttpGetRequest>();
}
};
Custom Behaviors: Component-Based Approach
For custom HTTP behavior, inherit from base class and override response handling:
```cpp #include <cl_http/client_behaviors/cb_http_request.hpp>
class CbCustomRequest : public cl_http::CbHttpRequestBase { public: CbCustomRequest() : CbHttpRequestBase(CpHttpRequestExecutor::HttpMethod::GET) {}
void onResponseReceived(const CpHttpRequestExecutor::TResponse& response) override {
File truncated at 100 lines see the full file
Changelog for package cl_http
2.3.19 (2025-06-17)
-
OpenAI example client ported to SMACC (#557)
- initial commit for openAI example
- Replaced get with post, added key fetch logic
- Added ability to modify the body of an http request for the http client
- Added functionality to encode and send image data to ChatGPT
- Added APIs to add headers to an outgoing HTTP request
- HTTP requests can now deal with CDNs
* Expanded example openAI node to submit a more sophisticated request with an image
- Using env variable for test iamge location
- Fixed commit errors
- Renamed instantiation of HTTP request CB to something more specific to OpenAI
-
Moved HTTP client behaviour to client library. Also added GET and POS… (#549)
- Moved HTTP client behaviour to client library. Also added GET and POST-specific versions of the smacc HTTP client behaviour to make them easier to use
- Added copyrights
- Fixed typos
-
Http client (#522)
- Ported http work over from smacc1
- Added example showasing http requests
- Fixed some typos in the HTTP example
- Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update smacc_action_client_base.hpp Pretty sure this change was made accidently.
* Update smacc_action_client_base.hpp Messed up first commit
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Ported http work over from smacc1
-
Added example showasing http requests
-
Fixed some typos in the HTTP example
-
Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Added helper class to handle server name related interactions
- Added SSL implementation, need to make provision for SSL and non-SSLD requests
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| sm_atomic_http |
Launch files
Messages
Services
Plugins
Recent questions tagged cl_http at Robotics Stack Exchange
Package Summary
| Version | 3.0.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-11-25 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jaycee Lock
Authors
HTTP Client (cl_http)
SMACC2 client library for making HTTP/HTTPS requests using Boost.Beast.
Architecture
/home/brettpac/workspaces/isaac_ros-dev/src/SMACC2/smacc2_client_library/cl_http
The cl_http follows a pure component-based architecture with three specialized components:
ClHttp (Client - Orchestrator)
├── CpHttpConnectionManager - io_context and thread management
├── CpHttpSessionManager - SSL context and session creation
└── CpHttpRequestExecutor - Request execution and response handling
Components
CpHttpConnectionManager
Responsibility: Manages the asynchronous I/O infrastructure
- Owns boost::asio::io_context
- Manages worker thread lifecycle
- Provides strand for thread-safe operations
Lifetime: State machine scoped (created with ClHttp, destroyed with state machine)
CpHttpSessionManager
Responsibility: Manages HTTP/HTTPS session configuration
- Parses server URLs (protocol, host, port)
- Manages SSL context for HTTPS connections
- Creates session objects (http_session or ssl_http_session)
Lifetime: State machine scoped
CpHttpRequestExecutor
Responsibility: Coordinates HTTP request execution
- Accepts request parameters (method, path, body, headers)
- Acquires strand from CpHttpConnectionManager
- Acquires session from CpHttpSessionManager
- Executes requests and emits response signals
Lifetime: State machine scoped
Signal Flow
User Code (Behavior)
↓
CpHttpRequestExecutor::executeRequest()
↓
Session created (http_session/ssl_http_session)
↓
Request executed asynchronously
↓
Response received
↓
CpHttpRequestExecutor::onResponseReceived_ (SmaccSignal)
↓ (backward compatibility)
ClHttp::onResponseReceived_ (forwarded)
↓
Behavior callback
Usage
Quick Start: Using Base Behaviors
The easiest way to make HTTP requests is using the provided base behaviors:
#include <cl_http/client_behaviors/cb_http_get_request.hpp>
class StHttpRequest : public smacc2::SmaccState<StHttpRequest, SmExample>
{
public:
using SmaccState::SmaccState;
void runtimeConfigure() override
{
auto behavior = this->configure<cl_http::CbHttpGetRequest>();
}
};
Custom Behaviors: Component-Based Approach
For custom HTTP behavior, inherit from base class and override response handling:
```cpp #include <cl_http/client_behaviors/cb_http_request.hpp>
class CbCustomRequest : public cl_http::CbHttpRequestBase { public: CbCustomRequest() : CbHttpRequestBase(CpHttpRequestExecutor::HttpMethod::GET) {}
void onResponseReceived(const CpHttpRequestExecutor::TResponse& response) override {
File truncated at 100 lines see the full file
Changelog for package cl_http
2.3.19 (2025-06-17)
-
OpenAI example client ported to SMACC (#557)
- initial commit for openAI example
- Replaced get with post, added key fetch logic
- Added ability to modify the body of an http request for the http client
- Added functionality to encode and send image data to ChatGPT
- Added APIs to add headers to an outgoing HTTP request
- HTTP requests can now deal with CDNs
* Expanded example openAI node to submit a more sophisticated request with an image
- Using env variable for test iamge location
- Fixed commit errors
- Renamed instantiation of HTTP request CB to something more specific to OpenAI
-
Moved HTTP client behaviour to client library. Also added GET and POS… (#549)
- Moved HTTP client behaviour to client library. Also added GET and POST-specific versions of the smacc HTTP client behaviour to make them easier to use
- Added copyrights
- Fixed typos
-
Http client (#522)
- Ported http work over from smacc1
- Added example showasing http requests
- Fixed some typos in the HTTP example
- Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update smacc_action_client_base.hpp Pretty sure this change was made accidently.
* Update smacc_action_client_base.hpp Messed up first commit
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Ported http work over from smacc1
-
Added example showasing http requests
-
Fixed some typos in the HTTP example
-
Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Added helper class to handle server name related interactions
- Added SSL implementation, need to make provision for SSL and non-SSLD requests
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| sm_atomic_http |
Launch files
Messages
Services
Plugins
Recent questions tagged cl_http at Robotics Stack Exchange
Package Summary
| Version | 3.0.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-11-25 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jaycee Lock
Authors
HTTP Client (cl_http)
SMACC2 client library for making HTTP/HTTPS requests using Boost.Beast.
Architecture
/home/brettpac/workspaces/isaac_ros-dev/src/SMACC2/smacc2_client_library/cl_http
The cl_http follows a pure component-based architecture with three specialized components:
ClHttp (Client - Orchestrator)
├── CpHttpConnectionManager - io_context and thread management
├── CpHttpSessionManager - SSL context and session creation
└── CpHttpRequestExecutor - Request execution and response handling
Components
CpHttpConnectionManager
Responsibility: Manages the asynchronous I/O infrastructure
- Owns boost::asio::io_context
- Manages worker thread lifecycle
- Provides strand for thread-safe operations
Lifetime: State machine scoped (created with ClHttp, destroyed with state machine)
CpHttpSessionManager
Responsibility: Manages HTTP/HTTPS session configuration
- Parses server URLs (protocol, host, port)
- Manages SSL context for HTTPS connections
- Creates session objects (http_session or ssl_http_session)
Lifetime: State machine scoped
CpHttpRequestExecutor
Responsibility: Coordinates HTTP request execution
- Accepts request parameters (method, path, body, headers)
- Acquires strand from CpHttpConnectionManager
- Acquires session from CpHttpSessionManager
- Executes requests and emits response signals
Lifetime: State machine scoped
Signal Flow
User Code (Behavior)
↓
CpHttpRequestExecutor::executeRequest()
↓
Session created (http_session/ssl_http_session)
↓
Request executed asynchronously
↓
Response received
↓
CpHttpRequestExecutor::onResponseReceived_ (SmaccSignal)
↓ (backward compatibility)
ClHttp::onResponseReceived_ (forwarded)
↓
Behavior callback
Usage
Quick Start: Using Base Behaviors
The easiest way to make HTTP requests is using the provided base behaviors:
#include <cl_http/client_behaviors/cb_http_get_request.hpp>
class StHttpRequest : public smacc2::SmaccState<StHttpRequest, SmExample>
{
public:
using SmaccState::SmaccState;
void runtimeConfigure() override
{
auto behavior = this->configure<cl_http::CbHttpGetRequest>();
}
};
Custom Behaviors: Component-Based Approach
For custom HTTP behavior, inherit from base class and override response handling:
```cpp #include <cl_http/client_behaviors/cb_http_request.hpp>
class CbCustomRequest : public cl_http::CbHttpRequestBase { public: CbCustomRequest() : CbHttpRequestBase(CpHttpRequestExecutor::HttpMethod::GET) {}
void onResponseReceived(const CpHttpRequestExecutor::TResponse& response) override {
File truncated at 100 lines see the full file
Changelog for package cl_http
2.3.19 (2025-06-17)
-
OpenAI example client ported to SMACC (#557)
- initial commit for openAI example
- Replaced get with post, added key fetch logic
- Added ability to modify the body of an http request for the http client
- Added functionality to encode and send image data to ChatGPT
- Added APIs to add headers to an outgoing HTTP request
- HTTP requests can now deal with CDNs
* Expanded example openAI node to submit a more sophisticated request with an image
- Using env variable for test iamge location
- Fixed commit errors
- Renamed instantiation of HTTP request CB to something more specific to OpenAI
-
Moved HTTP client behaviour to client library. Also added GET and POS… (#549)
- Moved HTTP client behaviour to client library. Also added GET and POST-specific versions of the smacc HTTP client behaviour to make them easier to use
- Added copyrights
- Fixed typos
-
Http client (#522)
- Ported http work over from smacc1
- Added example showasing http requests
- Fixed some typos in the HTTP example
- Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update smacc_action_client_base.hpp Pretty sure this change was made accidently.
* Update smacc_action_client_base.hpp Messed up first commit
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Ported http work over from smacc1
-
Added example showasing http requests
-
Fixed some typos in the HTTP example
-
Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Added helper class to handle server name related interactions
- Added SSL implementation, need to make provision for SSL and non-SSLD requests
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| sm_atomic_http |
Launch files
Messages
Services
Plugins
Recent questions tagged cl_http at Robotics Stack Exchange
Package Summary
| Version | 3.0.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-11-25 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jaycee Lock
Authors
HTTP Client (cl_http)
SMACC2 client library for making HTTP/HTTPS requests using Boost.Beast.
Architecture
/home/brettpac/workspaces/isaac_ros-dev/src/SMACC2/smacc2_client_library/cl_http
The cl_http follows a pure component-based architecture with three specialized components:
ClHttp (Client - Orchestrator)
├── CpHttpConnectionManager - io_context and thread management
├── CpHttpSessionManager - SSL context and session creation
└── CpHttpRequestExecutor - Request execution and response handling
Components
CpHttpConnectionManager
Responsibility: Manages the asynchronous I/O infrastructure
- Owns boost::asio::io_context
- Manages worker thread lifecycle
- Provides strand for thread-safe operations
Lifetime: State machine scoped (created with ClHttp, destroyed with state machine)
CpHttpSessionManager
Responsibility: Manages HTTP/HTTPS session configuration
- Parses server URLs (protocol, host, port)
- Manages SSL context for HTTPS connections
- Creates session objects (http_session or ssl_http_session)
Lifetime: State machine scoped
CpHttpRequestExecutor
Responsibility: Coordinates HTTP request execution
- Accepts request parameters (method, path, body, headers)
- Acquires strand from CpHttpConnectionManager
- Acquires session from CpHttpSessionManager
- Executes requests and emits response signals
Lifetime: State machine scoped
Signal Flow
User Code (Behavior)
↓
CpHttpRequestExecutor::executeRequest()
↓
Session created (http_session/ssl_http_session)
↓
Request executed asynchronously
↓
Response received
↓
CpHttpRequestExecutor::onResponseReceived_ (SmaccSignal)
↓ (backward compatibility)
ClHttp::onResponseReceived_ (forwarded)
↓
Behavior callback
Usage
Quick Start: Using Base Behaviors
The easiest way to make HTTP requests is using the provided base behaviors:
#include <cl_http/client_behaviors/cb_http_get_request.hpp>
class StHttpRequest : public smacc2::SmaccState<StHttpRequest, SmExample>
{
public:
using SmaccState::SmaccState;
void runtimeConfigure() override
{
auto behavior = this->configure<cl_http::CbHttpGetRequest>();
}
};
Custom Behaviors: Component-Based Approach
For custom HTTP behavior, inherit from base class and override response handling:
```cpp #include <cl_http/client_behaviors/cb_http_request.hpp>
class CbCustomRequest : public cl_http::CbHttpRequestBase { public: CbCustomRequest() : CbHttpRequestBase(CpHttpRequestExecutor::HttpMethod::GET) {}
void onResponseReceived(const CpHttpRequestExecutor::TResponse& response) override {
File truncated at 100 lines see the full file
Changelog for package cl_http
2.3.19 (2025-06-17)
-
OpenAI example client ported to SMACC (#557)
- initial commit for openAI example
- Replaced get with post, added key fetch logic
- Added ability to modify the body of an http request for the http client
- Added functionality to encode and send image data to ChatGPT
- Added APIs to add headers to an outgoing HTTP request
- HTTP requests can now deal with CDNs
* Expanded example openAI node to submit a more sophisticated request with an image
- Using env variable for test iamge location
- Fixed commit errors
- Renamed instantiation of HTTP request CB to something more specific to OpenAI
-
Moved HTTP client behaviour to client library. Also added GET and POS… (#549)
- Moved HTTP client behaviour to client library. Also added GET and POST-specific versions of the smacc HTTP client behaviour to make them easier to use
- Added copyrights
- Fixed typos
-
Http client (#522)
- Ported http work over from smacc1
- Added example showasing http requests
- Fixed some typos in the HTTP example
- Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update smacc_action_client_base.hpp Pretty sure this change was made accidently.
* Update smacc_action_client_base.hpp Messed up first commit
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Ported http work over from smacc1
-
Added example showasing http requests
-
Fixed some typos in the HTTP example
-
Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Added helper class to handle server name related interactions
- Added SSL implementation, need to make provision for SSL and non-SSLD requests
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| sm_atomic_http |
Launch files
Messages
Services
Plugins
Recent questions tagged cl_http at Robotics Stack Exchange
Package Summary
| Version | 3.0.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-11-25 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jaycee Lock
Authors
HTTP Client (cl_http)
SMACC2 client library for making HTTP/HTTPS requests using Boost.Beast.
Architecture
/home/brettpac/workspaces/isaac_ros-dev/src/SMACC2/smacc2_client_library/cl_http
The cl_http follows a pure component-based architecture with three specialized components:
ClHttp (Client - Orchestrator)
├── CpHttpConnectionManager - io_context and thread management
├── CpHttpSessionManager - SSL context and session creation
└── CpHttpRequestExecutor - Request execution and response handling
Components
CpHttpConnectionManager
Responsibility: Manages the asynchronous I/O infrastructure
- Owns boost::asio::io_context
- Manages worker thread lifecycle
- Provides strand for thread-safe operations
Lifetime: State machine scoped (created with ClHttp, destroyed with state machine)
CpHttpSessionManager
Responsibility: Manages HTTP/HTTPS session configuration
- Parses server URLs (protocol, host, port)
- Manages SSL context for HTTPS connections
- Creates session objects (http_session or ssl_http_session)
Lifetime: State machine scoped
CpHttpRequestExecutor
Responsibility: Coordinates HTTP request execution
- Accepts request parameters (method, path, body, headers)
- Acquires strand from CpHttpConnectionManager
- Acquires session from CpHttpSessionManager
- Executes requests and emits response signals
Lifetime: State machine scoped
Signal Flow
User Code (Behavior)
↓
CpHttpRequestExecutor::executeRequest()
↓
Session created (http_session/ssl_http_session)
↓
Request executed asynchronously
↓
Response received
↓
CpHttpRequestExecutor::onResponseReceived_ (SmaccSignal)
↓ (backward compatibility)
ClHttp::onResponseReceived_ (forwarded)
↓
Behavior callback
Usage
Quick Start: Using Base Behaviors
The easiest way to make HTTP requests is using the provided base behaviors:
#include <cl_http/client_behaviors/cb_http_get_request.hpp>
class StHttpRequest : public smacc2::SmaccState<StHttpRequest, SmExample>
{
public:
using SmaccState::SmaccState;
void runtimeConfigure() override
{
auto behavior = this->configure<cl_http::CbHttpGetRequest>();
}
};
Custom Behaviors: Component-Based Approach
For custom HTTP behavior, inherit from base class and override response handling:
```cpp #include <cl_http/client_behaviors/cb_http_request.hpp>
class CbCustomRequest : public cl_http::CbHttpRequestBase { public: CbCustomRequest() : CbHttpRequestBase(CpHttpRequestExecutor::HttpMethod::GET) {}
void onResponseReceived(const CpHttpRequestExecutor::TResponse& response) override {
File truncated at 100 lines see the full file
Changelog for package cl_http
2.3.19 (2025-06-17)
-
OpenAI example client ported to SMACC (#557)
- initial commit for openAI example
- Replaced get with post, added key fetch logic
- Added ability to modify the body of an http request for the http client
- Added functionality to encode and send image data to ChatGPT
- Added APIs to add headers to an outgoing HTTP request
- HTTP requests can now deal with CDNs
* Expanded example openAI node to submit a more sophisticated request with an image
- Using env variable for test iamge location
- Fixed commit errors
- Renamed instantiation of HTTP request CB to something more specific to OpenAI
-
Moved HTTP client behaviour to client library. Also added GET and POS… (#549)
- Moved HTTP client behaviour to client library. Also added GET and POST-specific versions of the smacc HTTP client behaviour to make them easier to use
- Added copyrights
- Fixed typos
-
Http client (#522)
- Ported http work over from smacc1
- Added example showasing http requests
- Fixed some typos in the HTTP example
- Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update smacc_action_client_base.hpp Pretty sure this change was made accidently.
* Update smacc_action_client_base.hpp Messed up first commit
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Ported http work over from smacc1
-
Added example showasing http requests
-
Fixed some typos in the HTTP example
-
Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Added helper class to handle server name related interactions
- Added SSL implementation, need to make provision for SSL and non-SSLD requests
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| sm_atomic_http |
Launch files
Messages
Services
Plugins
Recent questions tagged cl_http at Robotics Stack Exchange
Package Summary
| Version | 3.0.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-11-25 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jaycee Lock
Authors
HTTP Client (cl_http)
SMACC2 client library for making HTTP/HTTPS requests using Boost.Beast.
Architecture
/home/brettpac/workspaces/isaac_ros-dev/src/SMACC2/smacc2_client_library/cl_http
The cl_http follows a pure component-based architecture with three specialized components:
ClHttp (Client - Orchestrator)
├── CpHttpConnectionManager - io_context and thread management
├── CpHttpSessionManager - SSL context and session creation
└── CpHttpRequestExecutor - Request execution and response handling
Components
CpHttpConnectionManager
Responsibility: Manages the asynchronous I/O infrastructure
- Owns boost::asio::io_context
- Manages worker thread lifecycle
- Provides strand for thread-safe operations
Lifetime: State machine scoped (created with ClHttp, destroyed with state machine)
CpHttpSessionManager
Responsibility: Manages HTTP/HTTPS session configuration
- Parses server URLs (protocol, host, port)
- Manages SSL context for HTTPS connections
- Creates session objects (http_session or ssl_http_session)
Lifetime: State machine scoped
CpHttpRequestExecutor
Responsibility: Coordinates HTTP request execution
- Accepts request parameters (method, path, body, headers)
- Acquires strand from CpHttpConnectionManager
- Acquires session from CpHttpSessionManager
- Executes requests and emits response signals
Lifetime: State machine scoped
Signal Flow
User Code (Behavior)
↓
CpHttpRequestExecutor::executeRequest()
↓
Session created (http_session/ssl_http_session)
↓
Request executed asynchronously
↓
Response received
↓
CpHttpRequestExecutor::onResponseReceived_ (SmaccSignal)
↓ (backward compatibility)
ClHttp::onResponseReceived_ (forwarded)
↓
Behavior callback
Usage
Quick Start: Using Base Behaviors
The easiest way to make HTTP requests is using the provided base behaviors:
#include <cl_http/client_behaviors/cb_http_get_request.hpp>
class StHttpRequest : public smacc2::SmaccState<StHttpRequest, SmExample>
{
public:
using SmaccState::SmaccState;
void runtimeConfigure() override
{
auto behavior = this->configure<cl_http::CbHttpGetRequest>();
}
};
Custom Behaviors: Component-Based Approach
For custom HTTP behavior, inherit from base class and override response handling:
```cpp #include <cl_http/client_behaviors/cb_http_request.hpp>
class CbCustomRequest : public cl_http::CbHttpRequestBase { public: CbCustomRequest() : CbHttpRequestBase(CpHttpRequestExecutor::HttpMethod::GET) {}
void onResponseReceived(const CpHttpRequestExecutor::TResponse& response) override {
File truncated at 100 lines see the full file
Changelog for package cl_http
2.3.19 (2025-06-17)
-
OpenAI example client ported to SMACC (#557)
- initial commit for openAI example
- Replaced get with post, added key fetch logic
- Added ability to modify the body of an http request for the http client
- Added functionality to encode and send image data to ChatGPT
- Added APIs to add headers to an outgoing HTTP request
- HTTP requests can now deal with CDNs
* Expanded example openAI node to submit a more sophisticated request with an image
- Using env variable for test iamge location
- Fixed commit errors
- Renamed instantiation of HTTP request CB to something more specific to OpenAI
-
Moved HTTP client behaviour to client library. Also added GET and POS… (#549)
- Moved HTTP client behaviour to client library. Also added GET and POST-specific versions of the smacc HTTP client behaviour to make them easier to use
- Added copyrights
- Fixed typos
-
Http client (#522)
- Ported http work over from smacc1
- Added example showasing http requests
- Fixed some typos in the HTTP example
- Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update smacc_action_client_base.hpp Pretty sure this change was made accidently.
* Update smacc_action_client_base.hpp Messed up first commit
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Ported http work over from smacc1
-
Added example showasing http requests
-
Fixed some typos in the HTTP example
-
Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Added helper class to handle server name related interactions
- Added SSL implementation, need to make provision for SSL and non-SSLD requests
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| sm_atomic_http |
Launch files
Messages
Services
Plugins
Recent questions tagged cl_http at Robotics Stack Exchange
Package Summary
| Version | 3.0.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-11-25 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jaycee Lock
Authors
HTTP Client (cl_http)
SMACC2 client library for making HTTP/HTTPS requests using Boost.Beast.
Architecture
/home/brettpac/workspaces/isaac_ros-dev/src/SMACC2/smacc2_client_library/cl_http
The cl_http follows a pure component-based architecture with three specialized components:
ClHttp (Client - Orchestrator)
├── CpHttpConnectionManager - io_context and thread management
├── CpHttpSessionManager - SSL context and session creation
└── CpHttpRequestExecutor - Request execution and response handling
Components
CpHttpConnectionManager
Responsibility: Manages the asynchronous I/O infrastructure
- Owns boost::asio::io_context
- Manages worker thread lifecycle
- Provides strand for thread-safe operations
Lifetime: State machine scoped (created with ClHttp, destroyed with state machine)
CpHttpSessionManager
Responsibility: Manages HTTP/HTTPS session configuration
- Parses server URLs (protocol, host, port)
- Manages SSL context for HTTPS connections
- Creates session objects (http_session or ssl_http_session)
Lifetime: State machine scoped
CpHttpRequestExecutor
Responsibility: Coordinates HTTP request execution
- Accepts request parameters (method, path, body, headers)
- Acquires strand from CpHttpConnectionManager
- Acquires session from CpHttpSessionManager
- Executes requests and emits response signals
Lifetime: State machine scoped
Signal Flow
User Code (Behavior)
↓
CpHttpRequestExecutor::executeRequest()
↓
Session created (http_session/ssl_http_session)
↓
Request executed asynchronously
↓
Response received
↓
CpHttpRequestExecutor::onResponseReceived_ (SmaccSignal)
↓ (backward compatibility)
ClHttp::onResponseReceived_ (forwarded)
↓
Behavior callback
Usage
Quick Start: Using Base Behaviors
The easiest way to make HTTP requests is using the provided base behaviors:
#include <cl_http/client_behaviors/cb_http_get_request.hpp>
class StHttpRequest : public smacc2::SmaccState<StHttpRequest, SmExample>
{
public:
using SmaccState::SmaccState;
void runtimeConfigure() override
{
auto behavior = this->configure<cl_http::CbHttpGetRequest>();
}
};
Custom Behaviors: Component-Based Approach
For custom HTTP behavior, inherit from base class and override response handling:
```cpp #include <cl_http/client_behaviors/cb_http_request.hpp>
class CbCustomRequest : public cl_http::CbHttpRequestBase { public: CbCustomRequest() : CbHttpRequestBase(CpHttpRequestExecutor::HttpMethod::GET) {}
void onResponseReceived(const CpHttpRequestExecutor::TResponse& response) override {
File truncated at 100 lines see the full file
Changelog for package cl_http
2.3.19 (2025-06-17)
-
OpenAI example client ported to SMACC (#557)
- initial commit for openAI example
- Replaced get with post, added key fetch logic
- Added ability to modify the body of an http request for the http client
- Added functionality to encode and send image data to ChatGPT
- Added APIs to add headers to an outgoing HTTP request
- HTTP requests can now deal with CDNs
* Expanded example openAI node to submit a more sophisticated request with an image
- Using env variable for test iamge location
- Fixed commit errors
- Renamed instantiation of HTTP request CB to something more specific to OpenAI
-
Moved HTTP client behaviour to client library. Also added GET and POS… (#549)
- Moved HTTP client behaviour to client library. Also added GET and POST-specific versions of the smacc HTTP client behaviour to make them easier to use
- Added copyrights
- Fixed typos
-
Http client (#522)
- Ported http work over from smacc1
- Added example showasing http requests
- Fixed some typos in the HTTP example
- Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update smacc_action_client_base.hpp Pretty sure this change was made accidently.
* Update smacc_action_client_base.hpp Messed up first commit
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Ported http work over from smacc1
-
Added example showasing http requests
-
Fixed some typos in the HTTP example
-
Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Added helper class to handle server name related interactions
- Added SSL implementation, need to make provision for SSL and non-SSLD requests
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| sm_atomic_http |
Launch files
Messages
Services
Plugins
Recent questions tagged cl_http at Robotics Stack Exchange
Package Summary
| Version | 3.0.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-11-25 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jaycee Lock
Authors
HTTP Client (cl_http)
SMACC2 client library for making HTTP/HTTPS requests using Boost.Beast.
Architecture
/home/brettpac/workspaces/isaac_ros-dev/src/SMACC2/smacc2_client_library/cl_http
The cl_http follows a pure component-based architecture with three specialized components:
ClHttp (Client - Orchestrator)
├── CpHttpConnectionManager - io_context and thread management
├── CpHttpSessionManager - SSL context and session creation
└── CpHttpRequestExecutor - Request execution and response handling
Components
CpHttpConnectionManager
Responsibility: Manages the asynchronous I/O infrastructure
- Owns boost::asio::io_context
- Manages worker thread lifecycle
- Provides strand for thread-safe operations
Lifetime: State machine scoped (created with ClHttp, destroyed with state machine)
CpHttpSessionManager
Responsibility: Manages HTTP/HTTPS session configuration
- Parses server URLs (protocol, host, port)
- Manages SSL context for HTTPS connections
- Creates session objects (http_session or ssl_http_session)
Lifetime: State machine scoped
CpHttpRequestExecutor
Responsibility: Coordinates HTTP request execution
- Accepts request parameters (method, path, body, headers)
- Acquires strand from CpHttpConnectionManager
- Acquires session from CpHttpSessionManager
- Executes requests and emits response signals
Lifetime: State machine scoped
Signal Flow
User Code (Behavior)
↓
CpHttpRequestExecutor::executeRequest()
↓
Session created (http_session/ssl_http_session)
↓
Request executed asynchronously
↓
Response received
↓
CpHttpRequestExecutor::onResponseReceived_ (SmaccSignal)
↓ (backward compatibility)
ClHttp::onResponseReceived_ (forwarded)
↓
Behavior callback
Usage
Quick Start: Using Base Behaviors
The easiest way to make HTTP requests is using the provided base behaviors:
#include <cl_http/client_behaviors/cb_http_get_request.hpp>
class StHttpRequest : public smacc2::SmaccState<StHttpRequest, SmExample>
{
public:
using SmaccState::SmaccState;
void runtimeConfigure() override
{
auto behavior = this->configure<cl_http::CbHttpGetRequest>();
}
};
Custom Behaviors: Component-Based Approach
For custom HTTP behavior, inherit from base class and override response handling:
```cpp #include <cl_http/client_behaviors/cb_http_request.hpp>
class CbCustomRequest : public cl_http::CbHttpRequestBase { public: CbCustomRequest() : CbHttpRequestBase(CpHttpRequestExecutor::HttpMethod::GET) {}
void onResponseReceived(const CpHttpRequestExecutor::TResponse& response) override {
File truncated at 100 lines see the full file
Changelog for package cl_http
2.3.19 (2025-06-17)
-
OpenAI example client ported to SMACC (#557)
- initial commit for openAI example
- Replaced get with post, added key fetch logic
- Added ability to modify the body of an http request for the http client
- Added functionality to encode and send image data to ChatGPT
- Added APIs to add headers to an outgoing HTTP request
- HTTP requests can now deal with CDNs
* Expanded example openAI node to submit a more sophisticated request with an image
- Using env variable for test iamge location
- Fixed commit errors
- Renamed instantiation of HTTP request CB to something more specific to OpenAI
-
Moved HTTP client behaviour to client library. Also added GET and POS… (#549)
- Moved HTTP client behaviour to client library. Also added GET and POST-specific versions of the smacc HTTP client behaviour to make them easier to use
- Added copyrights
- Fixed typos
-
Http client (#522)
- Ported http work over from smacc1
- Added example showasing http requests
- Fixed some typos in the HTTP example
- Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update smacc_action_client_base.hpp Pretty sure this change was made accidently.
* Update smacc_action_client_base.hpp Messed up first commit
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Ported http work over from smacc1
-
Added example showasing http requests
-
Fixed some typos in the HTTP example
-
Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Added helper class to handle server name related interactions
- Added SSL implementation, need to make provision for SSL and non-SSLD requests
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| sm_atomic_http |
Launch files
Messages
Services
Plugins
Recent questions tagged cl_http at Robotics Stack Exchange
Package Summary
| Version | 3.0.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-11-25 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jaycee Lock
Authors
HTTP Client (cl_http)
SMACC2 client library for making HTTP/HTTPS requests using Boost.Beast.
Architecture
/home/brettpac/workspaces/isaac_ros-dev/src/SMACC2/smacc2_client_library/cl_http
The cl_http follows a pure component-based architecture with three specialized components:
ClHttp (Client - Orchestrator)
├── CpHttpConnectionManager - io_context and thread management
├── CpHttpSessionManager - SSL context and session creation
└── CpHttpRequestExecutor - Request execution and response handling
Components
CpHttpConnectionManager
Responsibility: Manages the asynchronous I/O infrastructure
- Owns boost::asio::io_context
- Manages worker thread lifecycle
- Provides strand for thread-safe operations
Lifetime: State machine scoped (created with ClHttp, destroyed with state machine)
CpHttpSessionManager
Responsibility: Manages HTTP/HTTPS session configuration
- Parses server URLs (protocol, host, port)
- Manages SSL context for HTTPS connections
- Creates session objects (http_session or ssl_http_session)
Lifetime: State machine scoped
CpHttpRequestExecutor
Responsibility: Coordinates HTTP request execution
- Accepts request parameters (method, path, body, headers)
- Acquires strand from CpHttpConnectionManager
- Acquires session from CpHttpSessionManager
- Executes requests and emits response signals
Lifetime: State machine scoped
Signal Flow
User Code (Behavior)
↓
CpHttpRequestExecutor::executeRequest()
↓
Session created (http_session/ssl_http_session)
↓
Request executed asynchronously
↓
Response received
↓
CpHttpRequestExecutor::onResponseReceived_ (SmaccSignal)
↓ (backward compatibility)
ClHttp::onResponseReceived_ (forwarded)
↓
Behavior callback
Usage
Quick Start: Using Base Behaviors
The easiest way to make HTTP requests is using the provided base behaviors:
#include <cl_http/client_behaviors/cb_http_get_request.hpp>
class StHttpRequest : public smacc2::SmaccState<StHttpRequest, SmExample>
{
public:
using SmaccState::SmaccState;
void runtimeConfigure() override
{
auto behavior = this->configure<cl_http::CbHttpGetRequest>();
}
};
Custom Behaviors: Component-Based Approach
For custom HTTP behavior, inherit from base class and override response handling:
```cpp #include <cl_http/client_behaviors/cb_http_request.hpp>
class CbCustomRequest : public cl_http::CbHttpRequestBase { public: CbCustomRequest() : CbHttpRequestBase(CpHttpRequestExecutor::HttpMethod::GET) {}
void onResponseReceived(const CpHttpRequestExecutor::TResponse& response) override {
File truncated at 100 lines see the full file
Changelog for package cl_http
2.3.19 (2025-06-17)
-
OpenAI example client ported to SMACC (#557)
- initial commit for openAI example
- Replaced get with post, added key fetch logic
- Added ability to modify the body of an http request for the http client
- Added functionality to encode and send image data to ChatGPT
- Added APIs to add headers to an outgoing HTTP request
- HTTP requests can now deal with CDNs
* Expanded example openAI node to submit a more sophisticated request with an image
- Using env variable for test iamge location
- Fixed commit errors
- Renamed instantiation of HTTP request CB to something more specific to OpenAI
-
Moved HTTP client behaviour to client library. Also added GET and POS… (#549)
- Moved HTTP client behaviour to client library. Also added GET and POST-specific versions of the smacc HTTP client behaviour to make them easier to use
- Added copyrights
- Fixed typos
-
Http client (#522)
- Ported http work over from smacc1
- Added example showasing http requests
- Fixed some typos in the HTTP example
- Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update smacc_action_client_base.hpp Pretty sure this change was made accidently.
* Update smacc_action_client_base.hpp Messed up first commit
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Ported http work over from smacc1
-
Added example showasing http requests
-
Fixed some typos in the HTTP example
-
Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Added helper class to handle server name related interactions
- Added SSL implementation, need to make provision for SSL and non-SSLD requests
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| sm_atomic_http |
Launch files
Messages
Services
Plugins
Recent questions tagged cl_http at Robotics Stack Exchange
Package Summary
| Version | 3.0.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-11-25 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jaycee Lock
Authors
HTTP Client (cl_http)
SMACC2 client library for making HTTP/HTTPS requests using Boost.Beast.
Architecture
/home/brettpac/workspaces/isaac_ros-dev/src/SMACC2/smacc2_client_library/cl_http
The cl_http follows a pure component-based architecture with three specialized components:
ClHttp (Client - Orchestrator)
├── CpHttpConnectionManager - io_context and thread management
├── CpHttpSessionManager - SSL context and session creation
└── CpHttpRequestExecutor - Request execution and response handling
Components
CpHttpConnectionManager
Responsibility: Manages the asynchronous I/O infrastructure
- Owns boost::asio::io_context
- Manages worker thread lifecycle
- Provides strand for thread-safe operations
Lifetime: State machine scoped (created with ClHttp, destroyed with state machine)
CpHttpSessionManager
Responsibility: Manages HTTP/HTTPS session configuration
- Parses server URLs (protocol, host, port)
- Manages SSL context for HTTPS connections
- Creates session objects (http_session or ssl_http_session)
Lifetime: State machine scoped
CpHttpRequestExecutor
Responsibility: Coordinates HTTP request execution
- Accepts request parameters (method, path, body, headers)
- Acquires strand from CpHttpConnectionManager
- Acquires session from CpHttpSessionManager
- Executes requests and emits response signals
Lifetime: State machine scoped
Signal Flow
User Code (Behavior)
↓
CpHttpRequestExecutor::executeRequest()
↓
Session created (http_session/ssl_http_session)
↓
Request executed asynchronously
↓
Response received
↓
CpHttpRequestExecutor::onResponseReceived_ (SmaccSignal)
↓ (backward compatibility)
ClHttp::onResponseReceived_ (forwarded)
↓
Behavior callback
Usage
Quick Start: Using Base Behaviors
The easiest way to make HTTP requests is using the provided base behaviors:
#include <cl_http/client_behaviors/cb_http_get_request.hpp>
class StHttpRequest : public smacc2::SmaccState<StHttpRequest, SmExample>
{
public:
using SmaccState::SmaccState;
void runtimeConfigure() override
{
auto behavior = this->configure<cl_http::CbHttpGetRequest>();
}
};
Custom Behaviors: Component-Based Approach
For custom HTTP behavior, inherit from base class and override response handling:
```cpp #include <cl_http/client_behaviors/cb_http_request.hpp>
class CbCustomRequest : public cl_http::CbHttpRequestBase { public: CbCustomRequest() : CbHttpRequestBase(CpHttpRequestExecutor::HttpMethod::GET) {}
void onResponseReceived(const CpHttpRequestExecutor::TResponse& response) override {
File truncated at 100 lines see the full file
Changelog for package cl_http
2.3.19 (2025-06-17)
-
OpenAI example client ported to SMACC (#557)
- initial commit for openAI example
- Replaced get with post, added key fetch logic
- Added ability to modify the body of an http request for the http client
- Added functionality to encode and send image data to ChatGPT
- Added APIs to add headers to an outgoing HTTP request
- HTTP requests can now deal with CDNs
* Expanded example openAI node to submit a more sophisticated request with an image
- Using env variable for test iamge location
- Fixed commit errors
- Renamed instantiation of HTTP request CB to something more specific to OpenAI
-
Moved HTTP client behaviour to client library. Also added GET and POS… (#549)
- Moved HTTP client behaviour to client library. Also added GET and POST-specific versions of the smacc HTTP client behaviour to make them easier to use
- Added copyrights
- Fixed typos
-
Http client (#522)
- Ported http work over from smacc1
- Added example showasing http requests
- Fixed some typos in the HTTP example
- Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update smacc_action_client_base.hpp Pretty sure this change was made accidently.
* Update smacc_action_client_base.hpp Messed up first commit
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Ported http work over from smacc1
-
Added example showasing http requests
-
Fixed some typos in the HTTP example
-
Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Added helper class to handle server name related interactions
- Added SSL implementation, need to make provision for SSL and non-SSLD requests
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| sm_atomic_http |
Launch files
Messages
Services
Plugins
Recent questions tagged cl_http at Robotics Stack Exchange
Package Summary
| Version | 3.0.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-11-25 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jaycee Lock
Authors
HTTP Client (cl_http)
SMACC2 client library for making HTTP/HTTPS requests using Boost.Beast.
Architecture
/home/brettpac/workspaces/isaac_ros-dev/src/SMACC2/smacc2_client_library/cl_http
The cl_http follows a pure component-based architecture with three specialized components:
ClHttp (Client - Orchestrator)
├── CpHttpConnectionManager - io_context and thread management
├── CpHttpSessionManager - SSL context and session creation
└── CpHttpRequestExecutor - Request execution and response handling
Components
CpHttpConnectionManager
Responsibility: Manages the asynchronous I/O infrastructure
- Owns boost::asio::io_context
- Manages worker thread lifecycle
- Provides strand for thread-safe operations
Lifetime: State machine scoped (created with ClHttp, destroyed with state machine)
CpHttpSessionManager
Responsibility: Manages HTTP/HTTPS session configuration
- Parses server URLs (protocol, host, port)
- Manages SSL context for HTTPS connections
- Creates session objects (http_session or ssl_http_session)
Lifetime: State machine scoped
CpHttpRequestExecutor
Responsibility: Coordinates HTTP request execution
- Accepts request parameters (method, path, body, headers)
- Acquires strand from CpHttpConnectionManager
- Acquires session from CpHttpSessionManager
- Executes requests and emits response signals
Lifetime: State machine scoped
Signal Flow
User Code (Behavior)
↓
CpHttpRequestExecutor::executeRequest()
↓
Session created (http_session/ssl_http_session)
↓
Request executed asynchronously
↓
Response received
↓
CpHttpRequestExecutor::onResponseReceived_ (SmaccSignal)
↓ (backward compatibility)
ClHttp::onResponseReceived_ (forwarded)
↓
Behavior callback
Usage
Quick Start: Using Base Behaviors
The easiest way to make HTTP requests is using the provided base behaviors:
#include <cl_http/client_behaviors/cb_http_get_request.hpp>
class StHttpRequest : public smacc2::SmaccState<StHttpRequest, SmExample>
{
public:
using SmaccState::SmaccState;
void runtimeConfigure() override
{
auto behavior = this->configure<cl_http::CbHttpGetRequest>();
}
};
Custom Behaviors: Component-Based Approach
For custom HTTP behavior, inherit from base class and override response handling:
```cpp #include <cl_http/client_behaviors/cb_http_request.hpp>
class CbCustomRequest : public cl_http::CbHttpRequestBase { public: CbCustomRequest() : CbHttpRequestBase(CpHttpRequestExecutor::HttpMethod::GET) {}
void onResponseReceived(const CpHttpRequestExecutor::TResponse& response) override {
File truncated at 100 lines see the full file
Changelog for package cl_http
2.3.19 (2025-06-17)
-
OpenAI example client ported to SMACC (#557)
- initial commit for openAI example
- Replaced get with post, added key fetch logic
- Added ability to modify the body of an http request for the http client
- Added functionality to encode and send image data to ChatGPT
- Added APIs to add headers to an outgoing HTTP request
- HTTP requests can now deal with CDNs
* Expanded example openAI node to submit a more sophisticated request with an image
- Using env variable for test iamge location
- Fixed commit errors
- Renamed instantiation of HTTP request CB to something more specific to OpenAI
-
Moved HTTP client behaviour to client library. Also added GET and POS… (#549)
- Moved HTTP client behaviour to client library. Also added GET and POST-specific versions of the smacc HTTP client behaviour to make them easier to use
- Added copyrights
- Fixed typos
-
Http client (#522)
- Ported http work over from smacc1
- Added example showasing http requests
- Fixed some typos in the HTTP example
- Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update smacc_action_client_base.hpp Pretty sure this change was made accidently.
* Update smacc_action_client_base.hpp Messed up first commit
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Ported http work over from smacc1
-
Added example showasing http requests
-
Fixed some typos in the HTTP example
-
Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Added helper class to handle server name related interactions
- Added SSL implementation, need to make provision for SSL and non-SSLD requests
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| sm_atomic_http |
Launch files
Messages
Services
Plugins
Recent questions tagged cl_http at Robotics Stack Exchange
Package Summary
| Version | 3.0.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-11-25 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jaycee Lock
Authors
HTTP Client (cl_http)
SMACC2 client library for making HTTP/HTTPS requests using Boost.Beast.
Architecture
/home/brettpac/workspaces/isaac_ros-dev/src/SMACC2/smacc2_client_library/cl_http
The cl_http follows a pure component-based architecture with three specialized components:
ClHttp (Client - Orchestrator)
├── CpHttpConnectionManager - io_context and thread management
├── CpHttpSessionManager - SSL context and session creation
└── CpHttpRequestExecutor - Request execution and response handling
Components
CpHttpConnectionManager
Responsibility: Manages the asynchronous I/O infrastructure
- Owns boost::asio::io_context
- Manages worker thread lifecycle
- Provides strand for thread-safe operations
Lifetime: State machine scoped (created with ClHttp, destroyed with state machine)
CpHttpSessionManager
Responsibility: Manages HTTP/HTTPS session configuration
- Parses server URLs (protocol, host, port)
- Manages SSL context for HTTPS connections
- Creates session objects (http_session or ssl_http_session)
Lifetime: State machine scoped
CpHttpRequestExecutor
Responsibility: Coordinates HTTP request execution
- Accepts request parameters (method, path, body, headers)
- Acquires strand from CpHttpConnectionManager
- Acquires session from CpHttpSessionManager
- Executes requests and emits response signals
Lifetime: State machine scoped
Signal Flow
User Code (Behavior)
↓
CpHttpRequestExecutor::executeRequest()
↓
Session created (http_session/ssl_http_session)
↓
Request executed asynchronously
↓
Response received
↓
CpHttpRequestExecutor::onResponseReceived_ (SmaccSignal)
↓ (backward compatibility)
ClHttp::onResponseReceived_ (forwarded)
↓
Behavior callback
Usage
Quick Start: Using Base Behaviors
The easiest way to make HTTP requests is using the provided base behaviors:
#include <cl_http/client_behaviors/cb_http_get_request.hpp>
class StHttpRequest : public smacc2::SmaccState<StHttpRequest, SmExample>
{
public:
using SmaccState::SmaccState;
void runtimeConfigure() override
{
auto behavior = this->configure<cl_http::CbHttpGetRequest>();
}
};
Custom Behaviors: Component-Based Approach
For custom HTTP behavior, inherit from base class and override response handling:
```cpp #include <cl_http/client_behaviors/cb_http_request.hpp>
class CbCustomRequest : public cl_http::CbHttpRequestBase { public: CbCustomRequest() : CbHttpRequestBase(CpHttpRequestExecutor::HttpMethod::GET) {}
void onResponseReceived(const CpHttpRequestExecutor::TResponse& response) override {
File truncated at 100 lines see the full file
Changelog for package cl_http
2.3.19 (2025-06-17)
-
OpenAI example client ported to SMACC (#557)
- initial commit for openAI example
- Replaced get with post, added key fetch logic
- Added ability to modify the body of an http request for the http client
- Added functionality to encode and send image data to ChatGPT
- Added APIs to add headers to an outgoing HTTP request
- HTTP requests can now deal with CDNs
* Expanded example openAI node to submit a more sophisticated request with an image
- Using env variable for test iamge location
- Fixed commit errors
- Renamed instantiation of HTTP request CB to something more specific to OpenAI
-
Moved HTTP client behaviour to client library. Also added GET and POS… (#549)
- Moved HTTP client behaviour to client library. Also added GET and POST-specific versions of the smacc HTTP client behaviour to make them easier to use
- Added copyrights
- Fixed typos
-
Http client (#522)
- Ported http work over from smacc1
- Added example showasing http requests
- Fixed some typos in the HTTP example
- Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update smacc_action_client_base.hpp Pretty sure this change was made accidently.
* Update smacc_action_client_base.hpp Messed up first commit
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Ported http work over from smacc1
-
Added example showasing http requests
-
Fixed some typos in the HTTP example
-
Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Added helper class to handle server name related interactions
- Added SSL implementation, need to make provision for SSL and non-SSLD requests
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| sm_atomic_http |
Launch files
Messages
Services
Plugins
Recent questions tagged cl_http at Robotics Stack Exchange
Package Summary
| Version | 3.0.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-11-25 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jaycee Lock
Authors
HTTP Client (cl_http)
SMACC2 client library for making HTTP/HTTPS requests using Boost.Beast.
Architecture
/home/brettpac/workspaces/isaac_ros-dev/src/SMACC2/smacc2_client_library/cl_http
The cl_http follows a pure component-based architecture with three specialized components:
ClHttp (Client - Orchestrator)
├── CpHttpConnectionManager - io_context and thread management
├── CpHttpSessionManager - SSL context and session creation
└── CpHttpRequestExecutor - Request execution and response handling
Components
CpHttpConnectionManager
Responsibility: Manages the asynchronous I/O infrastructure
- Owns boost::asio::io_context
- Manages worker thread lifecycle
- Provides strand for thread-safe operations
Lifetime: State machine scoped (created with ClHttp, destroyed with state machine)
CpHttpSessionManager
Responsibility: Manages HTTP/HTTPS session configuration
- Parses server URLs (protocol, host, port)
- Manages SSL context for HTTPS connections
- Creates session objects (http_session or ssl_http_session)
Lifetime: State machine scoped
CpHttpRequestExecutor
Responsibility: Coordinates HTTP request execution
- Accepts request parameters (method, path, body, headers)
- Acquires strand from CpHttpConnectionManager
- Acquires session from CpHttpSessionManager
- Executes requests and emits response signals
Lifetime: State machine scoped
Signal Flow
User Code (Behavior)
↓
CpHttpRequestExecutor::executeRequest()
↓
Session created (http_session/ssl_http_session)
↓
Request executed asynchronously
↓
Response received
↓
CpHttpRequestExecutor::onResponseReceived_ (SmaccSignal)
↓ (backward compatibility)
ClHttp::onResponseReceived_ (forwarded)
↓
Behavior callback
Usage
Quick Start: Using Base Behaviors
The easiest way to make HTTP requests is using the provided base behaviors:
#include <cl_http/client_behaviors/cb_http_get_request.hpp>
class StHttpRequest : public smacc2::SmaccState<StHttpRequest, SmExample>
{
public:
using SmaccState::SmaccState;
void runtimeConfigure() override
{
auto behavior = this->configure<cl_http::CbHttpGetRequest>();
}
};
Custom Behaviors: Component-Based Approach
For custom HTTP behavior, inherit from base class and override response handling:
```cpp #include <cl_http/client_behaviors/cb_http_request.hpp>
class CbCustomRequest : public cl_http::CbHttpRequestBase { public: CbCustomRequest() : CbHttpRequestBase(CpHttpRequestExecutor::HttpMethod::GET) {}
void onResponseReceived(const CpHttpRequestExecutor::TResponse& response) override {
File truncated at 100 lines see the full file
Changelog for package cl_http
2.3.19 (2025-06-17)
-
OpenAI example client ported to SMACC (#557)
- initial commit for openAI example
- Replaced get with post, added key fetch logic
- Added ability to modify the body of an http request for the http client
- Added functionality to encode and send image data to ChatGPT
- Added APIs to add headers to an outgoing HTTP request
- HTTP requests can now deal with CDNs
* Expanded example openAI node to submit a more sophisticated request with an image
- Using env variable for test iamge location
- Fixed commit errors
- Renamed instantiation of HTTP request CB to something more specific to OpenAI
-
Moved HTTP client behaviour to client library. Also added GET and POS… (#549)
- Moved HTTP client behaviour to client library. Also added GET and POST-specific versions of the smacc HTTP client behaviour to make them easier to use
- Added copyrights
- Fixed typos
-
Http client (#522)
- Ported http work over from smacc1
- Added example showasing http requests
- Fixed some typos in the HTTP example
- Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update smacc_action_client_base.hpp Pretty sure this change was made accidently.
* Update smacc_action_client_base.hpp Messed up first commit
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Ported http work over from smacc1
-
Added example showasing http requests
-
Fixed some typos in the HTTP example
-
Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Added helper class to handle server name related interactions
- Added SSL implementation, need to make provision for SSL and non-SSLD requests
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| sm_atomic_http |
Launch files
Messages
Services
Plugins
Recent questions tagged cl_http at Robotics Stack Exchange
Package Summary
| Version | 3.0.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-11-25 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jaycee Lock
Authors
HTTP Client (cl_http)
SMACC2 client library for making HTTP/HTTPS requests using Boost.Beast.
Architecture
/home/brettpac/workspaces/isaac_ros-dev/src/SMACC2/smacc2_client_library/cl_http
The cl_http follows a pure component-based architecture with three specialized components:
ClHttp (Client - Orchestrator)
├── CpHttpConnectionManager - io_context and thread management
├── CpHttpSessionManager - SSL context and session creation
└── CpHttpRequestExecutor - Request execution and response handling
Components
CpHttpConnectionManager
Responsibility: Manages the asynchronous I/O infrastructure
- Owns boost::asio::io_context
- Manages worker thread lifecycle
- Provides strand for thread-safe operations
Lifetime: State machine scoped (created with ClHttp, destroyed with state machine)
CpHttpSessionManager
Responsibility: Manages HTTP/HTTPS session configuration
- Parses server URLs (protocol, host, port)
- Manages SSL context for HTTPS connections
- Creates session objects (http_session or ssl_http_session)
Lifetime: State machine scoped
CpHttpRequestExecutor
Responsibility: Coordinates HTTP request execution
- Accepts request parameters (method, path, body, headers)
- Acquires strand from CpHttpConnectionManager
- Acquires session from CpHttpSessionManager
- Executes requests and emits response signals
Lifetime: State machine scoped
Signal Flow
User Code (Behavior)
↓
CpHttpRequestExecutor::executeRequest()
↓
Session created (http_session/ssl_http_session)
↓
Request executed asynchronously
↓
Response received
↓
CpHttpRequestExecutor::onResponseReceived_ (SmaccSignal)
↓ (backward compatibility)
ClHttp::onResponseReceived_ (forwarded)
↓
Behavior callback
Usage
Quick Start: Using Base Behaviors
The easiest way to make HTTP requests is using the provided base behaviors:
#include <cl_http/client_behaviors/cb_http_get_request.hpp>
class StHttpRequest : public smacc2::SmaccState<StHttpRequest, SmExample>
{
public:
using SmaccState::SmaccState;
void runtimeConfigure() override
{
auto behavior = this->configure<cl_http::CbHttpGetRequest>();
}
};
Custom Behaviors: Component-Based Approach
For custom HTTP behavior, inherit from base class and override response handling:
```cpp #include <cl_http/client_behaviors/cb_http_request.hpp>
class CbCustomRequest : public cl_http::CbHttpRequestBase { public: CbCustomRequest() : CbHttpRequestBase(CpHttpRequestExecutor::HttpMethod::GET) {}
void onResponseReceived(const CpHttpRequestExecutor::TResponse& response) override {
File truncated at 100 lines see the full file
Changelog for package cl_http
2.3.19 (2025-06-17)
-
OpenAI example client ported to SMACC (#557)
- initial commit for openAI example
- Replaced get with post, added key fetch logic
- Added ability to modify the body of an http request for the http client
- Added functionality to encode and send image data to ChatGPT
- Added APIs to add headers to an outgoing HTTP request
- HTTP requests can now deal with CDNs
* Expanded example openAI node to submit a more sophisticated request with an image
- Using env variable for test iamge location
- Fixed commit errors
- Renamed instantiation of HTTP request CB to something more specific to OpenAI
-
Moved HTTP client behaviour to client library. Also added GET and POS… (#549)
- Moved HTTP client behaviour to client library. Also added GET and POST-specific versions of the smacc HTTP client behaviour to make them easier to use
- Added copyrights
- Fixed typos
-
Http client (#522)
- Ported http work over from smacc1
- Added example showasing http requests
- Fixed some typos in the HTTP example
- Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update smacc_action_client_base.hpp Pretty sure this change was made accidently.
* Update smacc_action_client_base.hpp Messed up first commit
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Ported http work over from smacc1
-
Added example showasing http requests
-
Fixed some typos in the HTTP example
-
Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Added helper class to handle server name related interactions
- Added SSL implementation, need to make provision for SSL and non-SSLD requests
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| sm_atomic_http |
Launch files
Messages
Services
Plugins
Recent questions tagged cl_http at Robotics Stack Exchange
Package Summary
| Version | 3.0.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-11-25 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jaycee Lock
Authors
HTTP Client (cl_http)
SMACC2 client library for making HTTP/HTTPS requests using Boost.Beast.
Architecture
/home/brettpac/workspaces/isaac_ros-dev/src/SMACC2/smacc2_client_library/cl_http
The cl_http follows a pure component-based architecture with three specialized components:
ClHttp (Client - Orchestrator)
├── CpHttpConnectionManager - io_context and thread management
├── CpHttpSessionManager - SSL context and session creation
└── CpHttpRequestExecutor - Request execution and response handling
Components
CpHttpConnectionManager
Responsibility: Manages the asynchronous I/O infrastructure
- Owns boost::asio::io_context
- Manages worker thread lifecycle
- Provides strand for thread-safe operations
Lifetime: State machine scoped (created with ClHttp, destroyed with state machine)
CpHttpSessionManager
Responsibility: Manages HTTP/HTTPS session configuration
- Parses server URLs (protocol, host, port)
- Manages SSL context for HTTPS connections
- Creates session objects (http_session or ssl_http_session)
Lifetime: State machine scoped
CpHttpRequestExecutor
Responsibility: Coordinates HTTP request execution
- Accepts request parameters (method, path, body, headers)
- Acquires strand from CpHttpConnectionManager
- Acquires session from CpHttpSessionManager
- Executes requests and emits response signals
Lifetime: State machine scoped
Signal Flow
User Code (Behavior)
↓
CpHttpRequestExecutor::executeRequest()
↓
Session created (http_session/ssl_http_session)
↓
Request executed asynchronously
↓
Response received
↓
CpHttpRequestExecutor::onResponseReceived_ (SmaccSignal)
↓ (backward compatibility)
ClHttp::onResponseReceived_ (forwarded)
↓
Behavior callback
Usage
Quick Start: Using Base Behaviors
The easiest way to make HTTP requests is using the provided base behaviors:
#include <cl_http/client_behaviors/cb_http_get_request.hpp>
class StHttpRequest : public smacc2::SmaccState<StHttpRequest, SmExample>
{
public:
using SmaccState::SmaccState;
void runtimeConfigure() override
{
auto behavior = this->configure<cl_http::CbHttpGetRequest>();
}
};
Custom Behaviors: Component-Based Approach
For custom HTTP behavior, inherit from base class and override response handling:
```cpp #include <cl_http/client_behaviors/cb_http_request.hpp>
class CbCustomRequest : public cl_http::CbHttpRequestBase { public: CbCustomRequest() : CbHttpRequestBase(CpHttpRequestExecutor::HttpMethod::GET) {}
void onResponseReceived(const CpHttpRequestExecutor::TResponse& response) override {
File truncated at 100 lines see the full file
Changelog for package cl_http
2.3.19 (2025-06-17)
-
OpenAI example client ported to SMACC (#557)
- initial commit for openAI example
- Replaced get with post, added key fetch logic
- Added ability to modify the body of an http request for the http client
- Added functionality to encode and send image data to ChatGPT
- Added APIs to add headers to an outgoing HTTP request
- HTTP requests can now deal with CDNs
* Expanded example openAI node to submit a more sophisticated request with an image
- Using env variable for test iamge location
- Fixed commit errors
- Renamed instantiation of HTTP request CB to something more specific to OpenAI
-
Moved HTTP client behaviour to client library. Also added GET and POS… (#549)
- Moved HTTP client behaviour to client library. Also added GET and POST-specific versions of the smacc HTTP client behaviour to make them easier to use
- Added copyrights
- Fixed typos
-
Http client (#522)
- Ported http work over from smacc1
- Added example showasing http requests
- Fixed some typos in the HTTP example
- Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update smacc_action_client_base.hpp Pretty sure this change was made accidently.
* Update smacc_action_client_base.hpp Messed up first commit
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Ported http work over from smacc1
-
Added example showasing http requests
-
Fixed some typos in the HTTP example
-
Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Added helper class to handle server name related interactions
- Added SSL implementation, need to make provision for SSL and non-SSLD requests
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| sm_atomic_http |
Launch files
Messages
Services
Plugins
Recent questions tagged cl_http at Robotics Stack Exchange
Package Summary
| Version | 3.0.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-11-25 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jaycee Lock
Authors
HTTP Client (cl_http)
SMACC2 client library for making HTTP/HTTPS requests using Boost.Beast.
Architecture
/home/brettpac/workspaces/isaac_ros-dev/src/SMACC2/smacc2_client_library/cl_http
The cl_http follows a pure component-based architecture with three specialized components:
ClHttp (Client - Orchestrator)
├── CpHttpConnectionManager - io_context and thread management
├── CpHttpSessionManager - SSL context and session creation
└── CpHttpRequestExecutor - Request execution and response handling
Components
CpHttpConnectionManager
Responsibility: Manages the asynchronous I/O infrastructure
- Owns boost::asio::io_context
- Manages worker thread lifecycle
- Provides strand for thread-safe operations
Lifetime: State machine scoped (created with ClHttp, destroyed with state machine)
CpHttpSessionManager
Responsibility: Manages HTTP/HTTPS session configuration
- Parses server URLs (protocol, host, port)
- Manages SSL context for HTTPS connections
- Creates session objects (http_session or ssl_http_session)
Lifetime: State machine scoped
CpHttpRequestExecutor
Responsibility: Coordinates HTTP request execution
- Accepts request parameters (method, path, body, headers)
- Acquires strand from CpHttpConnectionManager
- Acquires session from CpHttpSessionManager
- Executes requests and emits response signals
Lifetime: State machine scoped
Signal Flow
User Code (Behavior)
↓
CpHttpRequestExecutor::executeRequest()
↓
Session created (http_session/ssl_http_session)
↓
Request executed asynchronously
↓
Response received
↓
CpHttpRequestExecutor::onResponseReceived_ (SmaccSignal)
↓ (backward compatibility)
ClHttp::onResponseReceived_ (forwarded)
↓
Behavior callback
Usage
Quick Start: Using Base Behaviors
The easiest way to make HTTP requests is using the provided base behaviors:
#include <cl_http/client_behaviors/cb_http_get_request.hpp>
class StHttpRequest : public smacc2::SmaccState<StHttpRequest, SmExample>
{
public:
using SmaccState::SmaccState;
void runtimeConfigure() override
{
auto behavior = this->configure<cl_http::CbHttpGetRequest>();
}
};
Custom Behaviors: Component-Based Approach
For custom HTTP behavior, inherit from base class and override response handling:
```cpp #include <cl_http/client_behaviors/cb_http_request.hpp>
class CbCustomRequest : public cl_http::CbHttpRequestBase { public: CbCustomRequest() : CbHttpRequestBase(CpHttpRequestExecutor::HttpMethod::GET) {}
void onResponseReceived(const CpHttpRequestExecutor::TResponse& response) override {
File truncated at 100 lines see the full file
Changelog for package cl_http
2.3.19 (2025-06-17)
-
OpenAI example client ported to SMACC (#557)
- initial commit for openAI example
- Replaced get with post, added key fetch logic
- Added ability to modify the body of an http request for the http client
- Added functionality to encode and send image data to ChatGPT
- Added APIs to add headers to an outgoing HTTP request
- HTTP requests can now deal with CDNs
* Expanded example openAI node to submit a more sophisticated request with an image
- Using env variable for test iamge location
- Fixed commit errors
- Renamed instantiation of HTTP request CB to something more specific to OpenAI
-
Moved HTTP client behaviour to client library. Also added GET and POS… (#549)
- Moved HTTP client behaviour to client library. Also added GET and POST-specific versions of the smacc HTTP client behaviour to make them easier to use
- Added copyrights
- Fixed typos
-
Http client (#522)
- Ported http work over from smacc1
- Added example showasing http requests
- Fixed some typos in the HTTP example
- Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update smacc_action_client_base.hpp Pretty sure this change was made accidently.
* Update smacc_action_client_base.hpp Messed up first commit
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Ported http work over from smacc1
-
Added example showasing http requests
-
Fixed some typos in the HTTP example
-
Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Added helper class to handle server name related interactions
- Added SSL implementation, need to make provision for SSL and non-SSLD requests
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| sm_atomic_http |
Launch files
Messages
Services
Plugins
Recent questions tagged cl_http at Robotics Stack Exchange
Package Summary
| Version | 3.0.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/robosoft-ai/SMACC2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-11-25 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Jaycee Lock
Authors
HTTP Client (cl_http)
SMACC2 client library for making HTTP/HTTPS requests using Boost.Beast.
Architecture
/home/brettpac/workspaces/isaac_ros-dev/src/SMACC2/smacc2_client_library/cl_http
The cl_http follows a pure component-based architecture with three specialized components:
ClHttp (Client - Orchestrator)
├── CpHttpConnectionManager - io_context and thread management
├── CpHttpSessionManager - SSL context and session creation
└── CpHttpRequestExecutor - Request execution and response handling
Components
CpHttpConnectionManager
Responsibility: Manages the asynchronous I/O infrastructure
- Owns boost::asio::io_context
- Manages worker thread lifecycle
- Provides strand for thread-safe operations
Lifetime: State machine scoped (created with ClHttp, destroyed with state machine)
CpHttpSessionManager
Responsibility: Manages HTTP/HTTPS session configuration
- Parses server URLs (protocol, host, port)
- Manages SSL context for HTTPS connections
- Creates session objects (http_session or ssl_http_session)
Lifetime: State machine scoped
CpHttpRequestExecutor
Responsibility: Coordinates HTTP request execution
- Accepts request parameters (method, path, body, headers)
- Acquires strand from CpHttpConnectionManager
- Acquires session from CpHttpSessionManager
- Executes requests and emits response signals
Lifetime: State machine scoped
Signal Flow
User Code (Behavior)
↓
CpHttpRequestExecutor::executeRequest()
↓
Session created (http_session/ssl_http_session)
↓
Request executed asynchronously
↓
Response received
↓
CpHttpRequestExecutor::onResponseReceived_ (SmaccSignal)
↓ (backward compatibility)
ClHttp::onResponseReceived_ (forwarded)
↓
Behavior callback
Usage
Quick Start: Using Base Behaviors
The easiest way to make HTTP requests is using the provided base behaviors:
#include <cl_http/client_behaviors/cb_http_get_request.hpp>
class StHttpRequest : public smacc2::SmaccState<StHttpRequest, SmExample>
{
public:
using SmaccState::SmaccState;
void runtimeConfigure() override
{
auto behavior = this->configure<cl_http::CbHttpGetRequest>();
}
};
Custom Behaviors: Component-Based Approach
For custom HTTP behavior, inherit from base class and override response handling:
```cpp #include <cl_http/client_behaviors/cb_http_request.hpp>
class CbCustomRequest : public cl_http::CbHttpRequestBase { public: CbCustomRequest() : CbHttpRequestBase(CpHttpRequestExecutor::HttpMethod::GET) {}
void onResponseReceived(const CpHttpRequestExecutor::TResponse& response) override {
File truncated at 100 lines see the full file
Changelog for package cl_http
2.3.19 (2025-06-17)
-
OpenAI example client ported to SMACC (#557)
- initial commit for openAI example
- Replaced get with post, added key fetch logic
- Added ability to modify the body of an http request for the http client
- Added functionality to encode and send image data to ChatGPT
- Added APIs to add headers to an outgoing HTTP request
- HTTP requests can now deal with CDNs
* Expanded example openAI node to submit a more sophisticated request with an image
- Using env variable for test iamge location
- Fixed commit errors
- Renamed instantiation of HTTP request CB to something more specific to OpenAI
-
Moved HTTP client behaviour to client library. Also added GET and POS… (#549)
- Moved HTTP client behaviour to client library. Also added GET and POST-specific versions of the smacc HTTP client behaviour to make them easier to use
- Added copyrights
- Fixed typos
-
Http client (#522)
- Ported http work over from smacc1
- Added example showasing http requests
- Fixed some typos in the HTTP example
- Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update smacc_action_client_base.hpp Pretty sure this change was made accidently.
* Update smacc_action_client_base.hpp Messed up first commit
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Ported http work over from smacc1
-
Added example showasing http requests
-
Fixed some typos in the HTTP example
-
Made provision for HTTP GET/POST in the HTTP client
- Moved HTTP client into the client_libraries folder and made separate compilation units. Modified examples to use this new client
* Update http_client.cpp Added License to file to clean up format error
* Update http_client.cpp Found better Copyright & License for CI Format error.
* Update cb_http_request.hpp Another little format error
* Update sm_atomic_http.py Somehow a bracket became a cNode
-
- Fixed errors with HTTP requests not triggering,
-
Fixed response callback not triggering correctly and causing a crash
-
Fixed example not transitioning back to state 1 after a response has been received
-
Added helper class to handle server name related interactions
- Added SSL implementation, need to make provision for SSL and non-SSLD requests
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| smacc2 |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| sm_atomic_http |