• More intuitive if disconnect() blocks like connect(). Most clients will
    want to use these two methods. For more fine grained control,
    disconnect() is just a combo of stop() and wait().
    Hayk Martirosyan authored
     
    Browse File »
  • Configure CMake to generate libredox.so and libredox_static.a, and have
    all examples use the dynamic library. This is how Redox should be used
    in practice, and greatly reduces the compilation time of the examples.
    
    Also renamed redox.[ch]pp to client.[ch]pp and created one master header
    redox.hpp for users to include. This header right now just includes
    client.hpp, command.hpp, and subscriber.hpp.
    Hayk Martirosyan authored
     
    Browse File »
  • Make .free() on commands send a message over an async watcher to the
    event loop, just like adding commands. This gets rid of some very tough
    to find memory bugs. Combined .cancel() with .free(), so there is only
    one method to call, whether for synchronous commands or for looped
    commands.
    
    Also debug some horrible segfaults related to Subscriber. Something is
    odd with hiredis and subscriptions, need to ask them. It seems when we
    flood with commands it doesn't disconnect cleanly. Look for a way to
    wait until all commands are processed.
    Hayk Martirosyan authored
     
    Browse File »


  • Now, there is only one callback for command(), and it returns a const
    reference to the Command object. The user is responsible for error
    checking using c.ok(), c.status(), and getting the reply with c.reply().
    This significantly cleans up the library code and the user code.
    
    Greatly refactored the data type specialization code in command.cpp.
    Hayk Martirosyan authored
     
    Browse File »

  • subscribe/psubscribe/unsubscribe/punsubscribe methods that keep track of
    subscribed topics to make sure we don't ask hiredis for bad things. It
    appears all crashes are eliminated, though no stress testing has been
    done.
    Hayk Martirosyan authored
     
    Browse File »

  • subscribe/unsubscribe/publish with proper and working callbacks. Guard
    added that throws an exception if a non-pubsub command is issued after a
    subscribe.
    
    Also removed all std:: prefixes from redox.cpp. Just made the decision
    for "using namespace std" there for readability. Not a header, of
    course.
    
    Also added another async watcher for breaking the loop, since ev_break
    doesn't actually do anything when called outside of an ev_run callback.
    Hayk Martirosyan authored
     
    Browse File »