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 yaml
|
||||
import os
|
||||
|
||||
import onlyone.namedpipes
|
||||
|
||||
|
||||
|
||||
@@ -38,5 +38,6 @@ if args.server:
|
||||
if(manager==None):
|
||||
log.error("server mode selected, but manager not loaded maybe missing --configFile")
|
||||
else:
|
||||
npServer = onlyone.namedpipes.Server(manager, "/tmp/onlyone_fifo")
|
||||
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