diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2012-04-13 21:16:12 +0200 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2012-04-13 21:16:12 +0200 |
commit | eeb9927c89d6d2425a74c33ff8773bceba39af1c (patch) | |
tree | e5e770fc041fa27b6e13a78dc9c3dc3f75c7c213 /fposition.py | |
parent | 99561b834dbd9d52b83aa7b0fb980431fa1aa056 (diff) | |
download | pyevenja-master.zip pyevenja-master.tar.gz |
Diffstat (limited to 'fposition.py')
-rw-r--r-- | fposition.py | 398 |
1 files changed, 199 insertions, 199 deletions
diff --git a/fposition.py b/fposition.py index 09cc62e..308ceb9 100644 --- a/fposition.py +++ b/fposition.py @@ -22,7 +22,7 @@ """/** Define the position ( source OR destination) of the evenData. function : maintain the stringHashs for the computer, rooms, port, action. - Format example : www.revena.com/room1/room2/port:normal + Format example : www.revena.com/room1/room2/port:normal description : method "setPosition" set all position informations this mean - compute @@ -46,206 +46,206 @@ from evenjastrings import ACT_NORMAL from evenjastrings import TXT_NULL class Fposition(FstringHash): - """This class keeps informations on the computer / a list of rooms / a port /an action / and time""" - - def __init__(self): - FstringHash.__init__(self) # force constructor - self.computer = FstringHash() # /** computer destination or source. */ - self.rooms = Flist() # /** room destination or source. */ - self.nbLevel = 0 - self.port = FstringHash() # /** port destination or source. */ - self.action = FstringHash() # /** action to do at the position (source or destination). */ - self.waitTime = 0 # /** wait time in the action */ - #/** waitTime unit (ex.: y(year), n(month), d(day), h(hour), m(minute), s(seconde) or x(milliseconde))*/ - self.unitWaitTime = ACT_WAIT_NOTHING - self.positionActived = False - - def __del__(self): - """I belive this is for no use""" - self.resetPosition() - - def __str__(self): - return "\t"+FstringHash.__str__(self)+\ - "Fposition - computer : "+str(self.computer)+\ - " - rooms : "+str(self.rooms)+\ - " - nbLevel : "+str(self.nbLevel)+\ - " - port : "+str(self.port)+\ - " - action : "+str(self.action)+\ - " - waitTime : "+str(self.waitTime)+\ - " - unitWaitTime : "+str(self.unitWaitTime)+\ - " - positionAtived : "+str(self.positionActived)+"\n" - - def resetPosition(self): - """/** reset position (erase datas) */""" - if self.positionActived: - self.computer.setString(TXT_NULL) - # delete rooms - for I in range(self.nbLevel): - self.rooms.remove(0) # TzurTcH - no self.getRoom() - self.nbLevel = 0 - self.port.setString(TXT_NULL) - self.action.setString(TXT_NULL) - self.waitTime = 0 - self.unitWaitTime = ACT_WAIT_NOTHING - self.positionActived = False - - def setPosition(self, position): - """/** Set the source or the destination of an evenData. */""" - self.resetPosition() - self.nbLevel = 0 - self.setString(position) - - # search for - computer/rooms<F2> - buffer = position.split("/") - if len(buffer) > 1: - # computer name ? - ret = None - try: - ret = buffer[0].index(".") - except: - None - if ret: - self.computer.setString(buffer[0]) - buffer = buffer[1:] - # import rooms - bufferRooms="" - for I in buffer[:-1]: - self.rooms.add( FstringHash()) - if self.nbLevel: - bufferRooms += "/" - bufferRooms += I - self.rooms.get(self.nbLevel).setString(bufferRooms) - self.nbLevel += 1 - # search for - port:action - buffer = buffer[-1].split(":") - self.port.setString(buffer[0]) - if len(buffer) > 1: - # search for - action,time - buffer = buffer[1].split(",") - self.action.setString(buffer[0]) - if len(buffer) > 1: - self.waitTime = int(buffer[1][:-1]) - self.unitWaitTime = buffer[1][-1] - else: - self.waitTime = 0 - self.unitWaitTime = ACT_WAIT_NOTHING - else: - self.action.setString(ACT_NORMAL) - self.waitTime = 0 - self.unitWaitTime = ACT_WAIT_NOTHING - self.positionActived = True - return RET_OK - - def getComputer(self): - """/** Get the computer name. If the evenData needs to go to another computer. */""" - return self.computer - - def getRoom(self, level = 0): - """/** Get the room for destination or source. */""" - if level < self.nbLevel: - return self.rooms.get(level) - else: - return None - - def getNbLevel(self): - """/** Number of levels in the rooms routing tree. */""" - return self.nbLevel - - def getPort(self): - """/** Get the port of the position (source or destination). This means an evenDoor or a evenBoard. */""" - return self.port - - def getAction(self): - """/** Get the action of the position (source or destination). */""" - return self.action - - def getWaitTime(self): - """/** Get the amount of waiting time (unity is another get function) */""" - return self.waitTime - - def getUnitWaitTime(self): - """/** Get the unity time y,n,d,h,m,s or x */""" - return self.unitWaitTime - - def copyFrom(self, pos): - """/** Copy a position From another Fposition class */""" - self.resetPosition() - self.computer.copyFrom(pos.getComputer()) - - for I in range(pos.getNbLevel()): - new = FstringHash() - new.copyFrom(pos.getRoom(I)) - self.rooms.add(new) - self.nbLevel = pos.getNbLevel() - self.port.copyFrom(pos.getPort()) - self.action.copyFrom(pos.getAction()) - self.waitTime = pos.getWaitTime() - self.unitWaitTime = pos.getUnitWaitTime() - self.positionActived = True + """This class keeps informations on the computer / a list of rooms / a port /an action / and time""" + + def __init__(self): + FstringHash.__init__(self) # force constructor + self.computer = FstringHash() # /** computer destination or source. */ + self.rooms = Flist() # /** room destination or source. */ + self.nbLevel = 0 + self.port = FstringHash() # /** port destination or source. */ + self.action = FstringHash() # /** action to do at the position (source or destination). */ + self.waitTime = 0 # /** wait time in the action */ + #/** waitTime unit (ex.: y(year), n(month), d(day), h(hour), m(minute), s(seconde) or x(milliseconde))*/ + self.unitWaitTime = ACT_WAIT_NOTHING + self.positionActived = False + + def __del__(self): + """I belive this is for no use""" + self.resetPosition() + + def __str__(self): + return "\t"+FstringHash.__str__(self)+\ + "Fposition - computer : "+str(self.computer)+\ + " - rooms : "+str(self.rooms)+\ + " - nbLevel : "+str(self.nbLevel)+\ + " - port : "+str(self.port)+\ + " - action : "+str(self.action)+\ + " - waitTime : "+str(self.waitTime)+\ + " - unitWaitTime : "+str(self.unitWaitTime)+\ + " - positionAtived : "+str(self.positionActived)+"\n" + + def resetPosition(self): + """/** reset position (erase datas) */""" + if self.positionActived: + self.computer.setString(TXT_NULL) + # delete rooms + for I in range(self.nbLevel): + self.rooms.remove(0) # TzurTcH - no self.getRoom() + self.nbLevel = 0 + self.port.setString(TXT_NULL) + self.action.setString(TXT_NULL) + self.waitTime = 0 + self.unitWaitTime = ACT_WAIT_NOTHING + self.positionActived = False + + def setPosition(self, position): + """/** Set the source or the destination of an evenData. */""" + self.resetPosition() + self.nbLevel = 0 + self.setString(position) + + # search for - computer/rooms<F2> + buffer = position.split("/") + if len(buffer) > 1: + # computer name ? + ret = None + try: + ret = buffer[0].index(".") + except: + None + if ret: + self.computer.setString(buffer[0]) + buffer = buffer[1:] + # import rooms + bufferRooms="" + for I in buffer[:-1]: + self.rooms.add( FstringHash()) + if self.nbLevel: + bufferRooms += "/" + bufferRooms += I + self.rooms.get(self.nbLevel).setString(bufferRooms) + self.nbLevel += 1 + # search for - port:action + buffer = buffer[-1].split(":") + self.port.setString(buffer[0]) + if len(buffer) > 1: + # search for - action,time + buffer = buffer[1].split(",") + self.action.setString(buffer[0]) + if len(buffer) > 1: + self.waitTime = int(buffer[1][:-1]) + self.unitWaitTime = buffer[1][-1] + else: + self.waitTime = 0 + self.unitWaitTime = ACT_WAIT_NOTHING + else: + self.action.setString(ACT_NORMAL) + self.waitTime = 0 + self.unitWaitTime = ACT_WAIT_NOTHING + self.positionActived = True + return RET_OK + + def getComputer(self): + """/** Get the computer name. If the evenData needs to go to another computer. */""" + return self.computer + + def getRoom(self, level = 0): + """/** Get the room for destination or source. */""" + if level < self.nbLevel: + return self.rooms.get(level) + else: + return None + + def getNbLevel(self): + """/** Number of levels in the rooms routing tree. */""" + return self.nbLevel + + def getPort(self): + """/** Get the port of the position (source or destination). This means an evenDoor or a evenBoard. */""" + return self.port + + def getAction(self): + """/** Get the action of the position (source or destination). */""" + return self.action + + def getWaitTime(self): + """/** Get the amount of waiting time (unity is another get function) */""" + return self.waitTime + + def getUnitWaitTime(self): + """/** Get the unity time y,n,d,h,m,s or x */""" + return self.unitWaitTime + + def copyFrom(self, pos): + """/** Copy a position From another Fposition class */""" + self.resetPosition() + self.computer.copyFrom(pos.getComputer()) + + for I in range(pos.getNbLevel()): + new = FstringHash() + new.copyFrom(pos.getRoom(I)) + self.rooms.add(new) + self.nbLevel = pos.getNbLevel() + self.port.copyFrom(pos.getPort()) + self.action.copyFrom(pos.getAction()) + self.waitTime = pos.getWaitTime() + self.unitWaitTime = pos.getUnitWaitTime() + self.positionActived = True if __name__ == '__main__': - import unittest - from evenjastrings import * - - pos1 = Fposition() - pos2 = Fposition() - - class FpositionTestCase(unittest.TestCase): - - def test1Splitting(self): - pos1.setPosition( "WWW.TEST.ORG/room1/room2/port") - self.assertEquals(pos1.getNbLevel(),2) - self.assertEquals("WWW.TEST.ORG",pos1.getComputer().getString()) - self.assertEquals("room1",pos1.getRoom(0).getString()) - self.assertEquals("room1/room2",pos1.getRoom(1).getString()) - self.assertEquals("port",pos1.getPort().getString()) - self.assertEquals(ACT_NORMAL,pos1.getAction().getString()) - - pos1.setPosition("room1/room2/port:destination1Data") - self.assertEquals(pos1.getNbLevel(),2) - self.assertEquals(TXT_NULL,pos1.getComputer().getString()) - self.assertEquals("room1",pos1.getRoom(0).getString()) - self.assertEquals("room1/room2",pos1.getRoom(1).getString()) - self.assertEquals("port",pos1.getPort().getString()) - self.assertEquals(ACT_DESTINATION1DATA,pos1.getAction().getString()) - - pos1.setPosition( "port:wait,5s") - self.assertEquals(pos1.getNbLevel(),0) - self.assertEquals(TXT_NULL,pos1.getComputer().getString()) - self.assertEquals(pos1.getRoom(0),None) - self.assertEquals("port",pos1.getPort().getString()) - self.assertEquals(ACT_WAIT,pos1.getAction().getString()) - self.assertEquals(pos1.getWaitTime(),5) - self.assertEquals( pos1.getUnitWaitTime(),ACT_WAIT_SECOND) - - pos1.setPosition( ":wait,5d") - self.assertEquals(pos1.getNbLevel(),0) - self.assertEquals(TXT_NULL,pos1.getComputer().getString()) - self.assertEquals(pos1.getRoom(0),None) - self.assertEquals(TXT_NULL,pos1.getPort().getString()) - self.assertEquals(ACT_WAIT,pos1.getAction().getString()) - self.assertEquals(pos1.getWaitTime(),5) - self.assertEquals(pos1.getUnitWaitTime(),ACT_WAIT_DAY) - - pos1.setPosition( ":end") - self.assertEquals(pos1.getNbLevel(),0) - self.assertEquals(TXT_NULL,pos1.getComputer().getString()) - self.assertEquals(pos1.getRoom(0),None) - self.assertEquals(TXT_NULL,pos1.getPort().getString()) - self.assertEquals(ACT_END,pos1.getAction().getString()) - - def test2Copy(self): - pos1.setPosition( "WWW.TEST.ORG/room1/room2/port:wait,1d") - pos2.copyFrom( pos1) - self.assertEquals(pos1.getComputer().equals( pos2.getComputer()),True) - self.assertEquals(pos1.getRoom(0).equals(pos2.getRoom(0)),True) - self.assertEquals(pos1.getRoom( 1).equals( pos2.getRoom( 1)),True) - self.assertEquals(pos1.getPort().equals( pos2.getPort()),True) - self.assertEquals(pos1.getAction().equals( pos2.getAction()),True) - self.assertEquals(pos1.getWaitTime(),pos2.getWaitTime()) - self.assertEquals(pos1.getUnitWaitTime(),pos2.getUnitWaitTime()) - - unittest.main() + import unittest + from evenjastrings import * + + pos1 = Fposition() + pos2 = Fposition() + + class FpositionTestCase(unittest.TestCase): + + def test1Splitting(self): + pos1.setPosition( "WWW.TEST.ORG/room1/room2/port") + self.assertEquals(pos1.getNbLevel(),2) + self.assertEquals("WWW.TEST.ORG",pos1.getComputer().getString()) + self.assertEquals("room1",pos1.getRoom(0).getString()) + self.assertEquals("room1/room2",pos1.getRoom(1).getString()) + self.assertEquals("port",pos1.getPort().getString()) + self.assertEquals(ACT_NORMAL,pos1.getAction().getString()) + + pos1.setPosition("room1/room2/port:destination1Data") + self.assertEquals(pos1.getNbLevel(),2) + self.assertEquals(TXT_NULL,pos1.getComputer().getString()) + self.assertEquals("room1",pos1.getRoom(0).getString()) + self.assertEquals("room1/room2",pos1.getRoom(1).getString()) + self.assertEquals("port",pos1.getPort().getString()) + self.assertEquals(ACT_DESTINATION1DATA,pos1.getAction().getString()) + + pos1.setPosition( "port:wait,5s") + self.assertEquals(pos1.getNbLevel(),0) + self.assertEquals(TXT_NULL,pos1.getComputer().getString()) + self.assertEquals(pos1.getRoom(0),None) + self.assertEquals("port",pos1.getPort().getString()) + self.assertEquals(ACT_WAIT,pos1.getAction().getString()) + self.assertEquals(pos1.getWaitTime(),5) + self.assertEquals( pos1.getUnitWaitTime(),ACT_WAIT_SECOND) + + pos1.setPosition( ":wait,5d") + self.assertEquals(pos1.getNbLevel(),0) + self.assertEquals(TXT_NULL,pos1.getComputer().getString()) + self.assertEquals(pos1.getRoom(0),None) + self.assertEquals(TXT_NULL,pos1.getPort().getString()) + self.assertEquals(ACT_WAIT,pos1.getAction().getString()) + self.assertEquals(pos1.getWaitTime(),5) + self.assertEquals(pos1.getUnitWaitTime(),ACT_WAIT_DAY) + + pos1.setPosition( ":end") + self.assertEquals(pos1.getNbLevel(),0) + self.assertEquals(TXT_NULL,pos1.getComputer().getString()) + self.assertEquals(pos1.getRoom(0),None) + self.assertEquals(TXT_NULL,pos1.getPort().getString()) + self.assertEquals(ACT_END,pos1.getAction().getString()) + + def test2Copy(self): + pos1.setPosition( "WWW.TEST.ORG/room1/room2/port:wait,1d") + pos2.copyFrom( pos1) + self.assertEquals(pos1.getComputer().equals( pos2.getComputer()),True) + self.assertEquals(pos1.getRoom(0).equals(pos2.getRoom(0)),True) + self.assertEquals(pos1.getRoom( 1).equals( pos2.getRoom( 1)),True) + self.assertEquals(pos1.getPort().equals( pos2.getPort()),True) + self.assertEquals(pos1.getAction().equals( pos2.getAction()),True) + self.assertEquals(pos1.getWaitTime(),pos2.getWaitTime()) + self.assertEquals(pos1.getUnitWaitTime(),pos2.getUnitWaitTime()) + + unittest.main() |