named pipe reader (server mode)
This commit is contained in:
5
.vscode/settings.json
vendored
Normal file
5
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"python.analysis.extraPaths": [
|
||||||
|
"./onlyone"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -6,7 +6,7 @@ import sys
|
|||||||
import onlyone
|
import onlyone
|
||||||
import yaml
|
import yaml
|
||||||
import os
|
import os
|
||||||
|
import onlyone.namedpipes
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -38,5 +38,6 @@ if args.server:
|
|||||||
if(manager==None):
|
if(manager==None):
|
||||||
log.error("server mode selected, but manager not loaded maybe missing --configFile")
|
log.error("server mode selected, but manager not loaded maybe missing --configFile")
|
||||||
else:
|
else:
|
||||||
|
npServer = onlyone.namedpipes.Server(manager, "/tmp/onlyone_fifo")
|
||||||
log.info("server loaded...")
|
log.info("server loaded...")
|
||||||
input("[server mode]")
|
input("[server mode]\n")
|
||||||
33
onlyone/namedpipes/__init__.py
Normal file
33
onlyone/namedpipes/__init__.py
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
import onlyone
|
||||||
|
import os
|
||||||
|
import errno
|
||||||
|
import logging
|
||||||
|
import threading
|
||||||
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
class Server:
|
||||||
|
def __fifo_read(fifoname):
|
||||||
|
while True:
|
||||||
|
log.info("Opening FIFO...")
|
||||||
|
with open(fifoname) as fifo:
|
||||||
|
log.info("FIFO opened")
|
||||||
|
while True:
|
||||||
|
data = fifo.read()
|
||||||
|
if len(data) == 0:
|
||||||
|
log.info("FIFO Writer closed")
|
||||||
|
break
|
||||||
|
log.info('FIFO Read: "{0}"'.format(data))
|
||||||
|
|
||||||
|
def __init__(self, manager:onlyone.Manager, fifoname:str):
|
||||||
|
self.manager=manager
|
||||||
|
self__fifoname=fifoname
|
||||||
|
try:
|
||||||
|
os.mkfifo(fifoname)
|
||||||
|
except OSError as oe:
|
||||||
|
if oe.errno != errno.EEXIST:
|
||||||
|
raise
|
||||||
|
|
||||||
|
|
||||||
|
readThread = threading.Thread( target=Server.__fifo_read, args = (fifoname,) )
|
||||||
|
readThread.start()
|
||||||
Reference in New Issue
Block a user