Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
algorand
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
nilak
algorand
Commits
e35447f3
Commit
e35447f3
authored
Apr 08, 2019
by
THAKARE AKSHAY HARIBHAU
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
stupid
parent
ec65eea9
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
98 additions
and
0 deletions
+98
-0
Network.py
Network.py
+27
-0
Node.py
Node.py
+12
-0
Starter.py
Starter.py
+17
-0
SystemEntity.py
SystemEntity.py
+12
-0
TimeSimulator.py
TimeSimulator.py
+30
-0
No files found.
Network.py
View file @
e35447f3
from
SystemEntity
import
SystemEntity
import
logging
logger
=
logging
.
getLogger
(
__name__
)
class
Network
(
SystemEntity
):
def
__init__
(
self
):
#TODO need better datastructure store these
self
.
nodes
=
[]
self
.
links
=
[]
def
setupNetwork
(
self
):
# TODO add nodes
# TODO add links
pass
def
simulate
(
self
,
time
):
logger
.
info
(
"simulating .. "
)
# Note links should be simulated before nodes
# in order to receive the messge which is supposed to be received in this tick
for
link
in
self
.
links
:
link
.
simulate
(
time
)
for
node
in
self
.
nodes
:
node
.
simulate
(
time
)
pass
Node.py
View file @
e35447f3
import
SystemEntity
import
logging
logger
=
logging
.
getLogger
(
__name__
)
class
Node
(
SystemEntity
.
SystemEntity
):
def
__init__
(
self
,
id
):
self
.
id
=
id
def
simulate
(
self
,
time
):
logger
.
info
(
"simulating .. "
)
logger
.
info
(
" hello "
+
self
.
id
)
pass
\ No newline at end of file
Starter.py
View file @
e35447f3
from
TimeSimulator
import
TimeSimulator
from
Network
import
Network
import
logging
logging
.
basicConfig
(
filename
=
'ASim.log'
,
level
=
logging
.
INFO
)
logger
=
logging
.
getLogger
(
__name__
)
def
simulateThis
(
time
):
logger
.
info
(
"ticking time"
+
str
(
time
))
if
__name__
==
'__main__'
:
metronome
=
TimeSimulator
()
network
=
Network
()
metronome
.
startTicking
(
network
.
simulate
)
pass
\ No newline at end of file
SystemEntity.py
View file @
e35447f3
import
logging
logger
=
logging
.
getLogger
(
__name__
)
class
SystemEntity
(
object
):
def
__init__
(
self
):
self
.
todoList
=
[]
def
simulate
(
self
,
time
):
pass
TimeSimulator.py
View file @
e35447f3
import
logging
logger
=
logging
.
getLogger
(
__name__
)
class
TimeSimulator
(
object
):
class
__TimeSimulator
:
def
__init__
(
self
):
self
.
_systemTime
=
0
def
__str__
(
self
):
# return repr(self) + str(self._systemTime)
return
"Time : "
+
str
(
self
.
_systemTime
)
def
startTicking
(
self
,
callback
):
for
i
in
range
(
10
):
self
.
_systemTime
=
self
.
_systemTime
+
1
logger
.
info
(
self
)
callback
(
self
.
_systemTime
)
instance
=
None
def
__new__
(
cls
):
# __new__ always a classmethod
if
not
TimeSimulator
.
instance
:
TimeSimulator
.
instance
=
TimeSimulator
.
__TimeSimulator
()
return
TimeSimulator
.
instance
def
__getattr__
(
self
,
name
):
return
getattr
(
self
.
instance
,
name
)
def
__setattr__
(
self
,
name
):
return
setattr
(
self
.
instance
,
name
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment