New library to delay Publish to cloud: PublishQueue

Hi @tiagonmas

I’ve made an update on your library so it uses a software timer and removed the need for .Process(). I’ve also put it into a single .h file as the footprint is so small.

class PublishQueue {
public:
    PublishQueue() : publishTimer(1000, &PublishQueue::PublishTimerCallback, *this, false) {
        publishTimer.start();
    };
    void Publish(String eventName, String data) {
        node my_node = {.eventName=eventName, .data=data};
        my_queue.push(my_node);
    };
private:
    std::queue<node> my_queue;
    Timer publishTimer;
    void PublishTimerCallback() {
        if (!my_queue.empty()) {
            node my_node = my_queue.front();
            my_queue.pop();
            Particle.publish(my_node.eventName, my_node.data, 60, PRIVATE);
        }
    };
};

Kev