Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | Related Pages

gLoopback.py

00001 #!/usr/local/bin/python
00002 #
00003 #                               Copyright 2004
00004 #                                     by
00005 #                        The Board of Trustees of the
00006 #                     Leland Stanford Junior University.
00007 #                            All rights reserved.
00008 #
00009 
00010 
00011 __facility__ = "Online"
00012 __abstract__ = "Loopback mode handler class"
00013 __author__   = "Amedeo Perazzo <perazzo@slac.stanford.edu> SLAC - GLAST I&T/Online"
00014 __date__     = ("$Date: 2004/08/24 22:57:25 $").split(' ')[1]
00015 __version__  = "$Revision: 2.2 $"
00016 __release__  = "$Name: R04-12-00 $"
00017 __credits__  = "SLAC"
00018 
00019 import socket
00020 import threading
00021 import struct
00022 
00023 class Loopback(object):
00024   def __init__(self):
00025     self.__lock = threading.Lock()
00026     self.__lock.acquire()
00027     self.__sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
00028     self.__sock.bind(('localhost', 0))
00029     self.__sock.connect(self.__sock.getsockname())
00030 
00031   def socket(self):
00032     return self.__sock
00033 
00034   def commit(self, value):
00035     packet = struct.pack('I', value)
00036     self.__sock.send(packet)
00037     self.__lock.acquire()
00038 
00039   def acknowledge(self):
00040     packet = self.__sock.recv(4)
00041     self.__lock.release()
00042     value = struct.unpack('I', packet)
00043     return value[0]

Generated on Fri Jul 21 13:26:28 2006 for LATTE R04-12-00 by doxygen 1.4.3