Files
Kine-backend/ConfBack/manager.py

71 lines
2.0 KiB
Python

# -*- encoding: utf-8 -*-
# @author : vincent.benoit@scle.fr
# @brief : Client UNIX Socket Manager
#########################################################
# Importation de modules externes #
import sys, re, os
import socket
import time
#########################################################
# Classes et Methodes #
class Sock:
''' Socket class '''
def __init__(self, addr="", logger=None):
''' Class constructor
'''
self.addr = addr
self.log = logger
self.isConnected = False
self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
def connect(self):
''' connect to KineIntercom server
'''
ret = False
idx = 0
while not ret and idx < 3:
try:
self.sock.connect(self.addr)
ret = True
except TimeoutError as e:
self.log.error("Erreur de connexion avec le processus KineIntercom")
except ConnectionRefusedError as e:
self.log.error("Connexion refusée avec le processus KineIntercom")
except FileNotFoundError as e:
self.log.error("Connexion inexistante")
idx = idx + 1
time.sleep(1)
self.isConnected = ret
return ret
def disconnect(self):
''' Disconnect from KineIntercom server
'''
self.sock.close()
def send(self, msg):
''' Send message to Server
'''
totalsent = 0
ret = True
while totalsent < len(msg):
sent = self.sock.send(msg[totalsent:])
if sent == 0:
self.log.error("socket connection broken")
ret = False
break
totalsent = totalsent + sent
return ret
#########################################################
# Decorators #
#########################################################
# Instantiation #