#include "options.hpp"
 
 
#include <iostream>
 
 
  private:
    std::string url;
    bool ready, canceled;
 
  public:
    scheduled_sender(const std::string &s, double d, double t) :
        url(s),
        work_queue(0),
        ready(true),            
        canceled(false)         
    {}
 
    }
 
 
        work_queue->
schedule(timeout, make_work(&scheduled_sender::cancel, 
this, s));
        work_queue->
schedule(interval, make_work(&scheduled_sender::tick, 
this, s));
    }
 
        canceled = true;
    }
 
        if (!canceled) {
            work_queue->
schedule(interval, make_work(&scheduled_sender::tick, 
this, sender)); 
                send(sender);
            else
                ready = true; 
        }
    }
 
        if (ready)              
            send(sender);
    }
 
        std::cout << "send" << std::endl;
        ready = false;
    }
};
 
 
int main(int argc, char **argv) {
    std::string address("127.0.0.1:5672/examples");
    double interval = 1.0;
    double timeout = 5.0;
 
    example::options opts(argc, argv);
 
    opts.add_value(address, 'a', "address", "connect and send to URL", "URL");
    opts.add_value(interval, 'i', "interval", "send a message every INTERVAL seconds", "INTERVAL");
    opts.add_value(timeout, 't', "timeout", "stop after T seconds", "T");
 
    try {
        opts.parse();
        scheduled_sender h(address, interval, timeout);
        return 0;
    } catch (const example::bad_option& e) {
        std::cout << opts << std::endl << e.what() << std::endl;
    } catch (const std::exception& e) {
        std::cerr << e.what() << std::endl;
    }
 
    return 1;
}
void close()
Close the connection.
A top-level container of connections, sessions, and links.
Definition: container.hpp:49
void run()
Run the container in the current thread.
returned< sender > open_sender(const std::string &addr_url)
Open a connection and sender for addr_url.
A span of time in milliseconds.
Definition: duration.hpp:39
static const duration SECOND
One second.
Definition: duration.hpp:55
class work_queue & work_queue() const
Get the work_queue for the link.
int credit() const
Credit available on the link.
class connection connection() const
The connection that owns this link.
An AMQP message.
Definition: message.hpp:50
Handler for Proton messaging events.
Definition: messaging_handler.hpp:69
virtual void on_sendable(sender &)
A message can be sent.
virtual void on_container_start(container &)
The container event loop is starting.
virtual void on_sender_open(sender &)
The remote peer opened the link.
A channel for sending messages.
Definition: sender.hpp:40
tracker send(const message &m)
Send a message on the sender.
Unsettled API - A context for thread-safe execution of work.
Definition: work_queue.hpp:327
void schedule(duration, work fn)
Unsettled API - Add work fn to the work queue after a duration.
A connection to a remote AMQP peer.
A top-level container of connections, sessions, and links.
A span of time in milliseconds.
Handler for Proton messaging events.
A channel for sending messages.
A tracker for a sent message.
Unsettled API - A context for thread-safe execution of work.