ewapps

Created: 2012-08-21 07:25
Updated: 2013-11-03 04:09
License: other
c++

README.md

ewapps

version : 0.0.6

Plateforme pour faire tourner les applications lourdes d'ewo. Elle lance un daemon qui lui même va gérer les cibles de vie des autes applications (IA, gestion d'evenments aléatoires, ...)

Installation

Prérequis

Récupèrer le code source via git

$ git clone 

L'application utilise la lib websocket++ qui est définie entant que sous module, il faut donc exécuter la commande suivante :

$ git submodule init
$ git submodule update

Ensuite, étant donné qu'ewapps est basé sur Qt4 il faut avoir les libs d'installée, à voir en fonction de l'OS. Enfin, il faut récupérer segvcatch, une lib qui permet la gestion des erreurs dans les plugins, à téléchartger ici

Installation

Websocket++

Voir le guide de la lib ici

Segvcatch

C'est du cmake, donc dans le dossier du makefile

$ cmake .
$ make
$ sudo make install

Ewapps

Très simple aussi, il suffit de définir le type de build dans le fichier ewapp.pro (debug ou release dans la variable CONFIG) et après

$ qmake ewapp.pro
$ make

Et voila, y a plus qu'à

Utilisation

Commandes

Il n'y a que quatre options :

  • démarrer des applications (toutes si aucun argument)
$ ewapp start [appname1] [appname2] [...]
  • arrêter des applications (toutes si aucun argument)
$ ewapp stop [appname1] [appname2] [...]
  • redémarrer des applications (toutes si aucun argument)
$ ewapp restart [appname1] [appname2] [...]
  • connaitre l'état d'applications (toutes si aucun argument)
$ ewapp state [appname1] [appname2] [...]

Configuration

La configuration elle se fait via fichier INI. Ce fichier s'appel ewapp.ini et doit se trouver dans /etc/ ou usr/local/etc/ oudans la PATH du système, et peut se trouver dans un sous dossier ewapp (ou pas). Sa structure est très simple

[General]
; Fichier de lock
lockFile=/var/lock/ewapp.lock
; Nom à donner au daemon pour la communication interne
daemonName=ewapps

[apps]
; liste des applications à lancer
list=	/usr/local/ewapp/admin.so,
	v3.so

Creation d'un plugin

Un plugin se présente sous la forme d'une librairie partagée (.so sous unix). Je dois encore voir les mécanismes de Qt à ce niveau là, mais il devront surement dériver d'une certaine classe, ou au moins posséder certaines méthodes.

Un plugin va pouvoir accéder à certains services fournis :

  • websocket : l'application aura le droit à un service websocket (un par appli pour éviter les collisons de nom, donc chaque appli fera sa popote interne pour différencier les fonctions). Un service de génération de tokken sera aussi fourni.
  • système de log
  • communication avec l'api ewo
  • communication interne avec d'autres applis
  • système d'envoie de mail
  • gestion de fichier de config
  • ...

Tout ceci sera explicité dans la doc plus tard

Cookies help us deliver our services. By using our services, you agree to our use of cookies Learn more