Logo white

Peter M. Groen / TrueMQTT-cpp

Sign in
  • Sign in
  • Project
  • Files
  • Commits
  • Network
  • Graphs
  • Milestones
  • Issues 0
  • Merge Requests 0
  • Labels
  • Wiki
  • Commits 55
  • Compare
  • Branches 2
  • Tags 0
  • TrueMQTT-cpp
25 Sep, 2022
6 commits
  • feat(send): deligate sending of packets to its own thread ...
    1f70ca5d
    This means the socket can be blocking, which makes administration
    easier. The drawback is that there is now a queue, including
    signalling, between the main thread and write thread. This
    consumes a bit more CPU; but in return the main thread is never
    blocked.
    Patric Stout authored
    2022-09-25 12:20:46 +0200  
    Browse Code »
  • feat(stress): reworked stress-test to show status, including avg latency
    f2f0b866
    Patric Stout authored
    2022-09-25 11:44:25 +0200  
    Browse Code »
  • fix(packet): use a single buffer for a packet ...
    d5d85340
    Before this commit, we had one small buffer telling the packet
    type and length, and another buffer with the payload. They were
    send to the kernel one by one. For small packets, this is a
    problem, as NODELAY causes the first buffer to be send on the
    IP stack, and the payload after. This increases the IP overhead
    for no good reason.
    
    Now instead, already reserve room in the packet to write the
    header, and send it as one single unit to the kernel.
    Patric Stout authored
    2022-09-25 10:31:28 +0200  
    Browse Code »
  • chore(pubsub): change default log-level to WARNING and above
    15005b6b
    Patric Stout authored
    2022-09-25 10:03:53 +0200  
    Browse Code »
  • feat(pubstress): example application to punish your broker
    bdf26bcd
    Patric Stout authored
    2022-09-25 10:03:23 +0200  
    Browse Code »
  • fix(connection): handle full socket sndbuf and failing send() graceful ...
    26e28ae0
    send() no longer is blocking, and all sendNNN calls now return
    false if the call couldn't be executed.
    
    Additionally, the library now recovers much better from issues,
    like unexpected broker disconnects.
    Patric Stout authored
    2022-09-25 10:02:09 +0200  
    Browse Code »

20 Sep, 2022
1 commit
  • fix: the given ClientID was ignored during connection setup
    03833229
    Patric Stout authored
    2022-09-20 19:29:07 +0200  
    Browse Code »

17 Sep, 2022
6 commits
  • feat: implement last-will support
    87fe34d7
    Patric Stout authored
    2022-09-17 11:12:37 +0200  
    Browse Code »
  • chore(coding-style): remove this-> and prefix member variables with m_
    584030be
    Patric Stout authored
    2022-09-17 11:04:54 +0200  
    Browse Code »
  • fix(connection): implement configurable connection timeout/backoff
    81f19eca
    Patric Stout authored
    2022-09-17 10:59:51 +0200  
    Browse Code »
  • chore: rework that Connection can use Client::Impl ...
    d502382e
    This avoids copying the pointers from Client::Impl into Connection,
    which is just administrative work. Now we can access Client::Impl,
    and have all variables available to us.
    Patric Stout authored
    2022-09-17 10:41:37 +0200  
    Browse Code »
  • fix(connection): respect disconnect() requests while connecting ...
    fdba503b
    Especially select() can take 100ms (as that is the timeout),
    after which a lot could have changed. So re-check the state if
    we aren't asked to disconnect before continueing.
    Patric Stout authored
    2022-09-17 10:10:06 +0200  
    Browse Code »
  • fix(connection): resolve() leaks memory when connection can't be made
    856bcc0a
    Patric Stout authored
    2022-09-17 09:56:43 +0200  
    Browse Code »

11 Sep, 2022
12 commits
  • chore: applied a few more SonarCloud suggestions
    31ddd2c7
    Patric Stout authored
    2022-09-11 19:07:01 +0200  
    Browse Code »
  • chore(log): force that LOG_XXX has to be followed by a semicolon ...
    1322df2c
    Last commit the hope was the {} alone was enough, but SonarCloud,
    somewhat rightfully, still complains.
    Patric Stout authored
    2022-09-11 19:01:30 +0200  
    Browse Code »
  • chore: apply some coding-style suggestions from SonarCloud
    54a4385b
    Patric Stout authored
    2022-09-11 18:59:20 +0200  
    Browse Code »
  • chore(interface): document that unsubscribe removes all subscriptions on that exact topic ...
    5454f1c4
    It wasn't all that clear that this was the case.
    Patric Stout authored
    2022-09-11 15:44:26 +0200  
    Browse Code »
  • chore(interface): remove documentation suggesting unsubscribe can fail ...
    63266779
    Protocol specification of MQTT 3.1.1 doesn't allow unsubscribes
    to fail.
    Patric Stout authored
    2022-09-11 15:43:44 +0200  
    Browse Code »
  • chore(interface): document behaviour of overlapping subscriptions ...
    ace91efd
    The specifications say that the broker MAY deduplicate messages
    on overlapping subscriptions. In result, some do, and some don't.
    
    It is now, by documentation, left to the user of this library to
    handle overlapping subscriptions properly, and depending on their
    broker, they may receive one or more times the same message when
    the subscriptions overlap.
    Patric Stout authored
    2022-09-11 15:30:53 +0200  
    Browse Code »
  • feat(client): call the correct callback when receiving messages ...
    510ac007
    Subscriptions are now stored in a tree-like structure, to quickly
    find the correct callbacks. This not only reduces the complexity
    from O(n) to O(logn), but also doesn't require stuff like regex.
    
    It does however require slightly more memory.
    Patric Stout authored
    2022-09-11 14:50:30 +0200  
    Browse Code »
  • chore(packet): also no need for && in constructor ...
    b3d744fe
    std::move() is doing the right thing either way.
    Patric Stout authored
    2022-09-11 11:31:39 +0200  
    Browse Code »
  • chore(packet): no need for &&, std::move will do the right thing on std::string too ...
    b61afde0
    Just for small strings it will copy, and only large strings will
    actually be moved.
    Patric Stout authored
    2022-09-11 11:26:46 +0200  
    Browse Code »
  • chore(docs): make a bit clear this library isn't working (yet)
    62bf528f
    Patric Stout authored
    2022-09-11 10:33:48 +0200  
    Browse Code »
  • chore(docs): README suggested to use "make" instead of "cmake" ...
    ced4ef8c
    Fixes #1.
    Patric Stout authored
    2022-09-11 10:28:51 +0200  
    Browse Code »
  • feat(packet): implement connect/publish/subscribe packets ...
    11dbf8f9
    This includes CONNACK and SUBACK.
    Patric Stout authored
    2022-09-11 10:27:56 +0200  
    Browse Code »

10 Sep, 2022
3 commits
  • feat(connection): connection logic using Happy Eyeballs ...
    995dd53f
    By using Happy Eyeballs, we stagger connections of a host resolves
    into multiple IPs. This is useful for IPv6 / IPv4 hosts, where
    one of the two can stutter.
    
    Sadly, creating a connection is rather complex, with many odd
    things that can happen along the way. For example, a writeable
    socket doesn't mean it is actually connected; it can also mean
    the socket is in an error state.
    
    This implementation is inspired by my own work on OpenTTD's
    variant of this.
    Patric Stout authored
    2022-09-10 15:38:49 +0200  
    Browse Code »
  • feat(actions): code-analyze the project with SonarCloud
    7b1eeefa
    Patric Stout authored
    2022-09-10 10:14:50 +0200  
    Browse Code »
  • feat(client): finish everything up till the actual socket communication ...
    49cd81e2
    All administration should been taken care of now, and the only
    thing remaining is creating connect/disconnect and implementing
    the sendXXX functions.
    Patric Stout authored
    2022-09-10 09:32:56 +0200  
    Browse Code »

09 Sep, 2022
2 commits
  • feat(client): library header-file and empty implementation ...
    ed2f25ca
    This contains no actual code yet, just the scaffolding to get
    started.
    Patric Stout authored
    2022-09-09 22:27:49 +0200  
    Browse Code »
  • chore: initial empty commit
    2d8bd867
    Patric Stout authored
    2022-09-09 20:52:38 +0200  
    Browse Code »