A simple but interesting demo to visualize how ChronoSync library works
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.jenkins.d build: Build ndn-cxx as a shared library Jun 11, 2015
ChronoSync @ 1d1092d Update git submodules Aug 6, 2018
contrib dist: update OS X 10.10 bundle preparation script Apr 6, 2015
debug-tools bug: Fix local prefix discovery Sep 23, 2014
disabled Add chatroom discovery UI Sep 21, 2014
docs docs: add documentation for chatroom discovery Aug 21, 2014
images refresh prefix enabled Oct 8, 2012
linux Adding Linux supports May 9, 2014
security security: Introduce hierarchical validator Mar 5, 2015
src add proper #include lines for ndn::OBufferStream and Boost.Iostreams Aug 22, 2016
test remove protobuf dependency Apr 12, 2015
waf-tools build: Always build in C++11 mode. Nov 4, 2014
.gitignore
.gitmodules ci: Enable scripts for Travis-CI and in-house Jenkins CI Feb 25, 2015
.jenkins ci: Enable scripts for Travis-CI and in-house Jenkins CI Feb 25, 2015
.travis.yml ci: Enable scripts for Travis-CI and in-house Jenkins CI Feb 25, 2015
README.md docs: Update README.md May 9, 2014
TODO gui: raise chat dialog when clicking the action in menu May 9, 2014
demo.icns
demo.qrc security: load trust anchor from QT resources May 9, 2014
log4cxx.properties SelfProfile related things is done, not tested yet. May 9, 2014
logging.cc
logging.h SelfProfile related things is done, not tested yet. May 9, 2014
qt.conf add packaging file for Mac OS X Oct 2, 2012
waf build: Always build in C++11 mode. Nov 4, 2014
wscript test: add test script in jenkins Mar 12, 2015

README.md

ChronoChat

ChronoChat is a multiparty chat application that demostrates our synchronization primitive that we call ChronoSync.

Note that after you click to close ChronoChat, it will keep running on your system tray. To restore it to normal size window, you have to click on the system tray icon (normally on the upper right corner of your screen). Clicking on the dock won't work for now and is still on the to-do list (because I'm using qt for gui, not the native Cocoa framework).

Known Issues


  1. When you switch to a new room, you'll temporarily see yourself in two nodes for a minute or so. It won't affect others, just yourself. Hopefully it's not so disturbing.
  2. Sometimes you may not get the most up-to-date chat history.

For those who wants (or is forced to) compile from source code


Compilation steps for OSX

  1. Install MacPorts, if not yet installed (http://www.macports.org/), configure NDN ports repository and install NFD if you don't have it yet.

     sudo port install nfd
     sudo nfd-start
    
  2. Install ChronoChat dependencies

     sudo port install pkgconfig protobuf-cpp boost qt4-mac
    
  3. Fetch source code with submodules

     git clone --recursive git://github.com/named-data/ChronoChat
    

If you already cloned repository, you can update submodules this way:

    git submodule update --init
  1. Configure and install ChronoSync

     cd ChronoChat/ChronoSync
     ./waf configure
     ./waf
     sudo ./waf install
    
  2. Configure and build ChronoChat

     cd ..
     PKG_CONFIG_PATH=/opt/local/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig ./waf configure
     ./waf
    

Congratulations! build/ChronoChat.app is ready to use (on a Mac).

Compilation steps for Ubuntu 12.04, 13.10, 14.04

  1. Configure NDN PPA repository and install NFD if you don't have it yet.

     sudo apt-get install nfd
    
  2. Install ChronoChat dependencies

     sudo apt-get install libprotobuf-dev protobuf-compiler libevent-dev
     sudo apt-get install libboost1.48-all-dev
     sudo apt-get install qt4-dev-tools
    
  3. Fetch source code with submodules

     git clone --recursive git://github.com/named-data/ChronoChat
    

If you already cloned repository, you can update submodules this way:

    git submodule update --init
  1. Configure and install ChronoSync

     cd ChronoChat/ChronoSync
     ./waf configure
     ./waf
     sudo ./waf install
     sudo ldconfig
    
  2. Configure and build ChronoChat

     cd ..
     ./waf configure
     ./waf
    

Congratulations! build/ChronoChat is ready to use. Do not forget to start ccnd and configure FIB before using ChronoChat.