* Delete cgmanifest.json when being installed via vcpkg, but also update SHAs * Update cspell --------- Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| inc | ||
| samples | ||
| src | ||
| test | ||
| vcpkg | ||
| cgmanifest.json | ||
| CHANGELOG.md | ||
| CMakeLists.txt | ||
| cspell.json | ||
| NOTICE.txt | ||
| README.md | ||
| Test-Cleanup.ps1 | ||
| Test-Setup.ps1 | ||
| vcpkg.json | ||
Azure SDK AMQP Library for C++
Azure::Core::Amqp (azure-core-amqp) provides an implementation
to enable developers to create Azure SDKs which consume the AMQP protocol. Note that this is NOT a general purpose AMQP library, it is intended solely for the purposes of
building Azure C++ SDK clients which communicate with Azure services over AMQP.
Getting started
Include the package
The easiest way to acquire the AMQP library is leveraging vcpkg package manager. See the corresponding Azure SDK for C++ readme section.
To install Azure Core AMQP package via vcpkg:
> vcpkg install azure-core-amqp-cpp
Then, use in your CMake file:
find_package(azure-core-amqp-cpp CONFIG REQUIRED)
target_link_libraries(<your project name> PRIVATE Azure::azure-core-amqp)
Key concepts
The AMQP Protocol is a relatively complicated protocol which is used by Azure services to communicate with clients. This library provides a set of classes which can be used to build Azure SDK clients which communicate with Azure services over AMQP.
The AMQP library provides the following classes:
- AmqpClient - The basic client used to communicate with the AMQP server.
- MessageSender - A class which is used to send messages to an AMQP server.
- MessageReceiver - A class which is used to receive messages from an AMQP server.
Examples
Create an AMQP Message Sender
An AMQP Message Sender is responsible for sending messages to an AMQP server over an AMQP Session.
Azure::Core::Amqp::_internal::MessageSenderOptions senderOptions;
senderOptions.Name = "sender-link";
senderOptions.MessageSource = "source";
senderOptions.SettleMode = Azure::Core::Amqp::_internal::SenderSettleMode::Unsettled;
senderOptions.MaxMessageSize = (std::numeric_limits<uint16_t>::max)();
Azure::Core::Amqp::_internal::MessageSender sender(
session, credentials->GetEntityPath(), senderOptions, nullptr);
Once the message sender has been created, it can be used to send messages to the remote server.
Azure::Core::Amqp::Models::AmqpMessage message;
message.SetBody(Azure::Core::Amqp::Models::AmqpBinaryData{'H', 'e', 'l', 'l', 'o'});
constexpr int maxMessageSendCount = 5;
int messageSendCount = 0;
while (messageSendCount < maxMessageSendCount)
{
auto result = sender.Send(message);
messageSendCount += 1;
}
Next steps
You can build and run the tests locally by executing azure-core-amqp-test. Explore the test folder to see advanced usage and behavior of the public classes.
Troubleshooting
If you run into issues while using this library, please feel free to file an issue.
Reporting security issues and security bugs
Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) secure@microsoft.com. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the Security TechCenter.
License
Azure SDK for C++ is licensed under the MIT license.