Git Product home page Git Product logo

pubsub's Introduction

PUBSUB

PUBSUB is a thread-safe publish/subscribe messaging library.

BUILD

  • To build:

    • chmod a+rx setup.sh
    • ./setup.sh
  • Run the example:

    • ./run.sh

DEFINING TOPICS

  • Topics should be define in header files with including Topic.h header.

  • Topics will be define as a struct.

  • After struct definition, topics should declare with TOPIC_DECLARE()

  • Examples:

    • /topics/iso.h
    • /topics/test.h
  • Topic should define in /topics/Topic.cpp with TOPIC_DEFINE()

  • Example:

    • #include "iso.h"
    • TOPIC_DEFINE(iso)

USAGE

  • Subscribe or Publisher (or both) should be included

  • Topic header file should be included

  • Both Subscriber and Publisher initialized with:

    • TOPIC_ID()
    • topic struct
  • Example:

    • Subscriber<iso_s> subiso{TOPIC_ID(iso)};

    • Publisher<iso_s> pubiso{TOPIC_ID(iso)};

  • Multiple Publishers can advertise to a topic

  • Multiple Subscribers can copy from topic if advertised

  • Publishers can unadvertise from a topic

  • All publishers must unadvertise for topic to be unadvertised

  • Subscribers can check if topic is updated before copying data from topic

  • Publisher can set() data and update() (publishing) anytime they want later

Example usage is in /src/test.cpp

pubsub's People

Contributors

canpinaremre avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.