1 /** 2 * Callbacks.h 3 * 4 * Class storing deferred callbacks of different type. 5 * 6 * @copyright 2014 - 2018 Copernica BV 7 */ 8 9 /** 10 * Include guard 11 */ 12 #pragma once 13 14 /** 15 * Dependencies 16 */ 17 #include <string> 18 #include <functional> 19 20 /** 21 * Set up namespace 22 */ 23 namespace AMQP { 24 25 /** 26 * Forward declarations 27 */ 28 class Message; 29 class MetaData; 30 31 /** 32 * Generic callbacks that are used by many deferred objects 33 */ 34 using SuccessCallback = std::function<void()>; 35 using ErrorCallback = std::function<void(const char *message)>; 36 using FinalizeCallback = std::function<void()>; 37 38 /** 39 * Declaring and deleting a queue 40 */ 41 using QueueCallback = std::function<void(const std::string &name, uint32_t messagecount, uint32_t consumercount)>; 42 using DeleteCallback = std::function<void(uint32_t deletedmessages)>; 43 44 /** 45 * When retrieving the size of a queue in some way 46 */ 47 using EmptyCallback = std::function<void()>; 48 using CountCallback = std::function<void(uint32_t messagecount)>; 49 using SizeCallback = std::function<void(uint64_t messagesize)>; 50 51 /** 52 * Starting and stopping a consumer 53 */ 54 using ConsumeCallback = std::function<void(const std::string &consumer)>; 55 using CancelCallback = std::function<void(const std::string &consumer)>; 56 57 /** 58 * Receiving messages, either via consume(), get() or as returned messages 59 * The following methods receive the returned message in multiple parts 60 */ 61 using StartCallback = std::function<void(const std::string &exchange, const std::string &routingkey)>; 62 using HeaderCallback = std::function<void(const MetaData &metaData)>; 63 using DataCallback = std::function<void(const char *data, size_t size)>; 64 using DeliveredCallback = std::function<void(uint64_t deliveryTag, bool redelivered)>; 65 66 /** 67 * For returned messages amqp-cpp first calls a return-callback before the start, 68 * header and data callbacks are called. Instead of the deliver-callback, a 69 * returned-callback is called. 70 */ 71 using ReturnCallback = std::function<void(int16_t code, const std::string &message)>; 72 using ReturnedCallback = std::function<void()>; 73 74 /** 75 * If you do not want to merge all data into a single string, you can als 76 * implement callbacks that return the collected message. 77 */ 78 using MessageCallback = std::function<void(const Message &message, uint64_t deliveryTag, bool redelivered)>; 79 using BounceCallback = std::function<void(const Message &message, int16_t code, const std::string &description)>; 80 81 /** 82 * When using publisher confirms, AckCallback is called when server confirms that message is received 83 * and processed. NackCallback is called otherwise. 84 */ 85 using AckCallback = std::function<void(uint64_t deliveryTag, bool multiple)>; 86 using NackCallback = std::function<void(uint64_t deliveryTag, bool multiple, bool requeue)>; 87 88 /** 89 * End namespace 90 */ 91 } 92