Panamo Organization
This project written completely by pure C and BSD sockets under Ubuntu and GCC (please note that we use some other library). In this project we use kernel-coding style from Linus Torvalds and using some script from kernel to validate our code against that. This project also worked on Darwin 14.1.0.
For more information of implementation see doc/protocol files.
Chapat
|
|
|-> connection : create and store TCP communication links
|
|
|-> db : control users and group authentication
|
|
|-> resolver : find best route between chapat servers
This is simple library for event dispatching using Gnome C OO design.
We use this library in chapat db and connection. you can use it for
other projects.
This library named after our friend Seyed Kamyar Seyed Ghasemi Pour.
Library source code available at /common
.
First we make chevents
for our events with chevent_new()
then add some unique data
to them with chevent_register_data()
after that add all our events into chsession
.
After all we can call chsession_dispatch()
for event dispatching with following syntax:
session : chsession
data : void *
-> used for event distinguishing.message : chmessage
user data : void *
-> this data pass into event handler.
In the future following features will be added into KamyLib
- Multi threading support.
- Asynchronous event dispatching with thread safe queue named chqueue.
For resolving userID of a person and find server that containing his socket we use chptr protocol. we design this protocol in transport layer on top of IP ! :-). We do this just for having fun ! this protocol basically is a DHT and we use controlled flooding with sequence number for implementing it.
If you have bug or idea about this project send me an email
Our coding style based on kernel standard.
mkdir build; cd build
cmake ..
make