Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Sven Gestegård Robertz
LabComm
Commits
05041bf4
Commit
05041bf4
authored
May 16, 2013
by
Anders Blomdell
Browse files
Added StreamWriter and StreamReader to python library.
Updated wiki_example to use StreamReader.
parent
7e5d6af5
Changes
8
Hide whitespace changes
Inline
Side-by-side
.bzrignore
View file @
05041bf4
...
...
@@ -25,3 +25,9 @@ example.h
example.py
examples/wiki_example/example.encoded
example.encoded
examples/simple/*.class
examples/simple/encoded_data
examples/simple/example_decoder
examples/simple/example_encoder
lib/c/test/test_labcomm_basic_type_encoding
lib/c/test/test_labcomm_generated_encoding
Makefile
View file @
05041bf4
SUBDIRS
=
compiler lib examples
test
SUBDIRS
=
compiler lib
test
examples
export
LABCOMM_JAR
=
$(
shell
pwd
)
/compiler/labComm.jar
export
LABCOMM
=
java
-jar
$(LABCOMM_JAR)
...
...
examples/Makefile
View file @
05041bf4
...
...
@@ -2,7 +2,8 @@ all:
echo
To be
done
...
test
:
echo
To be
done
...
echo
More to be
done
...
cd
simple
;
sh compile.sh
&&
sh run.sh
clean
:
echo
To be
done
...
examples/wiki_example/example_decoder.py
View file @
05041bf4
...
...
@@ -3,29 +3,8 @@
import
labcomm
import
sys
class
FileReader
:
def
__init__
(
self
,
name
):
self
.
f
=
open
(
name
)
pass
def
start
(
self
,
decoder
,
version
):
other_version
=
decoder
.
decode_string
()
if
version
!=
other_version
:
raise
Exception
(
"LabComm version mismatch %s != %s"
%
(
version
,
other_version
))
pass
def
read
(
self
,
count
):
s
=
self
.
f
.
read
(
count
)
if
len
(
s
)
==
0
:
raise
Exception
(
"EOF"
)
return
s
def
mark
(
self
,
value
,
decl
):
pass
if
__name__
==
"__main__"
:
d
=
labcomm
.
Decoder
(
File
Reader
(
sys
.
argv
[
1
]))
d
=
labcomm
.
Decoder
(
labcomm
.
Stream
Reader
(
open
(
sys
.
argv
[
1
]))
)
while
True
:
try
:
...
...
lib/python/labcomm/StreamReader.py
0 → 100644
View file @
05041bf4
class
StreamReader
:
def
__init__
(
self
,
stream
):
self
.
stream
=
stream
pass
def
start
(
self
,
decoder
,
version
):
other_version
=
decoder
.
decode_string
()
if
version
!=
other_version
:
raise
Exception
(
"LabComm version mismatch %s != %s"
%
(
version
,
other_version
))
pass
def
read
(
self
,
count
):
result
=
self
.
stream
.
read
(
count
)
if
len
(
result
)
==
0
:
raise
EOFError
()
return
result
def
mark
(
self
,
value
,
decl
):
pass
pass
lib/python/labcomm/StreamWriter.py
0 → 100644
View file @
05041bf4
class
StreamWriter
:
def
__init__
(
self
,
stream
):
self
.
stream
=
stream
pass
def
start
(
self
,
encoder
,
version
):
encoder
.
encode_string
(
version
)
pass
def
write
(
self
,
data
):
self
.
stream
.
write
(
data
)
pass
def
mark
(
self
):
self
.
stream
.
flush
()
pass
pass
lib/python/labcomm/__init__.py
View file @
05041bf4
import
labcomm.LabComm
from
labcomm.StreamReader
import
StreamReader
from
labcomm.StreamWriter
import
StreamWriter
Decoder
=
labcomm
.
LabComm
.
Decoder
Encoder
=
labcomm
.
LabComm
.
Encoder
...
...
test/test_encoder_decoder.py
View file @
05041bf4
...
...
@@ -127,18 +127,7 @@ class Test:
self
.
next
=
threading
.
Semaphore
(
0
)
decoder
=
threading
.
Thread
(
target
=
self
.
decode
,
args
=
(
p
.
stdout
,))
decoder
.
start
()
class
Writer
:
def
start
(
self
,
encoder
,
version
):
encoder
.
encode_string
(
version
)
pass
def
write
(
self
,
data
):
p
.
stdin
.
write
(
data
)
pass
def
mark
(
self
):
p
.
stdin
.
flush
()
pass
pass
encoder
=
labcomm
.
Encoder
(
Writer
())
encoder
=
labcomm
.
Encoder
(
labcomm
.
StreamWriter
(
p
.
stdin
))
for
name
,
signature
in
self
.
signatures
:
encoder
.
add_decl
(
signature
)
pass
...
...
@@ -164,22 +153,7 @@ class Test:
pass
def
decode
(
self
,
f
):
class
Reader
:
def
start
(
self
,
decoder
,
version
):
other_version
=
decoder
.
decode_string
()
if
version
!=
other_version
:
raise
Exception
(
"LabComm version mismatch %s != %s"
%
(
version
,
other_version
))
pass
def
read
(
self
,
count
):
result
=
f
.
read
(
count
)
if
len
(
result
)
==
0
:
raise
EOFError
()
return
result
def
mark
(
self
,
value
,
decl
):
pass
pass
decoder
=
labcomm
.
Decoder
(
Reader
())
decoder
=
labcomm
.
Decoder
(
labcomm
.
StreamReader
(
f
))
try
:
while
True
:
value
,
decl
=
decoder
.
decode
()
...
...
Write
Preview
Supports
Markdown
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