def init_connection(self): """Initialize variables that are local to a connection, (needed if the client automatically reconnect)""" self.ready_lock.acquire( False) # reacquire the ready-lock in case of reconnection self.connected = PYMUMBLE_CONN_STATE_NOT_CONNECTED self.control_socket = None self.media_socket = None # Not implemented - for UDP media self.bandwidth = PYMUMBLE_BANDWIDTH # reset the outgoing bandwidth to it's default before connectiong self.server_max_bandwidth = None self.udp_active = False self.users = users.Users( self, self.callbacks ) # contain the server's connected users informations self.channels = channels.Channels( self, self.callbacks) # contain the server's channels informations self.blobs = blobs.Blobs(self) # manage the blob objects self.sound_output = soundoutput.SoundOutput( self, PYMUMBLE_AUDIO_PER_PACKET, self.bandwidth) # manage the outgoing sounds self.commands = commands.Commands( ) # manage commands sent between the main and the mumble threads self.receive_buffer = "" # initialize the control connection input buffer
def run(): ''' Creates the Presenter and connects it to the config and pico_log models, the view interface and the interactor ''' presenter.Presenter(channels.Channels(), view.MeTvFrame(), interactor.Interactor())
import sys import threading import channels import util ''' Main function of the coordinator server Description: The sequencer keeps a queue of messages received from each server and broadcasts the messages ''' if __name__ == "__main__": # Makes sure that the user entered a config file if (len(sys.argv) < 2): print 'Usage: python coordinator.py config_file' sys.exit() # Read server name and config from CL arguments name = 'Seq' config = util.read_key_value_file(sys.argv[1]) channels = channels.Channels(name) channels.make_connections(config) # Instatiates the message broacaster and receive threads broadcast_thread = threading.Thread( target=lambda: channels.broadcast_message()) broadcast_thread.start() recv_thread = threading.Thread(target=lambda: channels.recv_message()) recv_thread.start()
def get_channels(self): request = channels.ChannelsRequest() xml_channels = self.get_data_(self.GET_CHANNELS_CMD_, request.to_xml()) if xml_channels == None or len(xml_channels) == 0: raise DVBLinkError(DVBLinkStatus.STATUS_INVALID_DATA) return channels.Channels(xml_channels)
def execute(self): print(self.commands) if self.commands[1] == "channel": if self.commands[2] == "create": if len(self.commands) > 3: n = channels.Channels() s = n.createLogicalChannel(self.commands[3]) return io.BytesIO(s.encode("utf-8")) if self.commands[2] == "mv": if len(self.commands) > 3: n = channels.Channels() s = n.renameLogicalChannel(self.commands[3], self.commands[4]) return io.BytesIO(s.encode("utf-8")) if self.commands[2] == "rm": if len(self.commands) > 3: n = channels.Channels() s = n.removeLogicalChannel(self.commands[3]) return io.BytesIO(s.encode("utf-8")) if self.commands[2] == "ls": n = channels.Channels() s = n.listLogicalChannel() return io.BytesIO(s.encode("utf-8")) if self.commands[2] == "ptt": if len(self.commands) > 3: unquoted = self.commands[3].replace("'", "").replace("\"", "") n = channels.Channels() s = n.getPttStatus(unquoted) return io.BytesIO(s.encode("utf-8")) if self.commands[2] == "stream": if self.inputstream != None and self.commands[3] == '-l': unquoted = self.commands[4].replace("'", "").replace("\"", "") jailed = self.chroot.translate(unquoted) # We do a soft form of semaphore lock using a file. This isn't intended to # be perfectly fair but it should be atomic. f = None try: f = os.open(jailed + ".lock", os.O_CREAT | os.O_EXCL) except: raise Exception("The channel is already being streamed to.") finally: if f is not None: os.close(f) n = channels.Channels() try: if not n.acquire(unquoted): raise Exception("There is no such channel to stream to.") self.upload(jailed) finally: time.sleep(3) os.remove(jailed + ".lock") n.release(unquoted) return None if self.inputstream == None and self.commands[3] == '-r': unquoted = self.commands[4].replace("'", "").replace("\"", "") jailed = self.chroot.translate(unquoted) return self.download(jailed) return None
print("startListen error", e) print('exiting startListen') f.close() def userListener(): input("Press Enter to exit...\n") print('Enter pressed ') channels.stopListen = True stopFlag.set() if __name__ == '__main__': f = open('./video.avi', 'wb') channels = channels.Channels() initComm() sendAllPackets() stopFlag = Event() cmd = ['ffplay', '-i', '-'] process = Popen(cmd, stdin=PIPE) timer = timerThread.Timer(stopFlag, resetComm, channels, 10) timer.start() stopThread = Thread(target=userListener).start() startListen(channels.tcpSocketVideo2) timer.join() process.kill() f.close() closeComm() print('finished')
import trunks # from datetime import datetime from tornado.concurrent import run_on_executor import concurrent.futures import channels as channels_ import datetime import channel_events import psycopg2 as pg2 define("port", default=18001, help="run on the given port", type=int) smf = Semaphore() clients = [] ws_queue = Queue() events_queue = Queue() devices = channels_.Devices() channels = channels_.Channels(ws_queue) """ {'channel_number': {'caller_id_number': {'<line>/0': {'' } 'answered': 0, 'rejected': 0, 'incoming': 0, 'period': (from_datetime, last_datetime) } """ settings = { "cookie_secret": "r3S5j6jsRE9PQMHLkSnrRi9Dpiga/CArRRIBt/ahA/18zlovBJUku7A+6S2F+WZu0Mc=", "login_url": "/login", "xsrf_cookies": True,