Skip to content

Commit 06e0cf0

Browse files
authored
Merge pull request #6 from JuliaComputing/tan/dep
gei it working on Julia 0.6
2 parents 3a1a80a + e00b8cd commit 06e0cf0

File tree

8 files changed

+68
-64
lines changed

8 files changed

+68
-64
lines changed

.travis.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ os:
55
- linux
66
julia:
77
- 0.5
8+
- 0.6
9+
- nightly
810
services:
911
- rabbitmq
1012
notifications:

REQUIRE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
julia 0.5
2-
Compat 0.9.5
2+
Compat 0.17.0

spec/gen.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ function gen_spec(specfile)
9696
(name in keys(domainmap)) && continue
9797
name = "TAMQP" * name2sym(name)
9898
typ = domainmap[attribute(domain, "type")].name
99-
println("typealias $name $typ")
99+
println("const $name = $typ")
100100
end
101101
println(DOMAIN_BOTTOM)
102102

src/convert.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
convert{T<:Union{TAMQPShortStr,TAMQPLongStr}}(::Type{Any}, s::T) = convert(String, s)
22
convert{T<:Union{TAMQPShortStr,TAMQPLongStr}}(::Type{String}, s::T) = String(convert(Array{UInt8,1}, s.data))
3-
convert{T<:Union{TAMQPShortStr,TAMQPLongStr}}(::Type{T}, s::AbstractString) = T(length(s), String(s).data)
3+
convert{T<:Union{TAMQPShortStr,TAMQPLongStr}}(::Type{T}, s::AbstractString) = T(length(s), Vector{UInt8}(s))
44
convert(::Type{TAMQPLongStr}, d::Vector{UInt8}) = TAMQPLongStr(length(d), d)
55

66
convert{T}(::Type{TAMQPFieldValue{T}}, v::T) = TAMQPFieldValue{T}(FieldIndicatorMap[T], v)
@@ -15,7 +15,7 @@ function convert(::Type{TAMQPFieldTable}, d::Dict{String,Any})
1515
#@logmsg("converting to TAMQPFieldTable")
1616
data = TAMQPFieldValuePair[]
1717
for (n,v) in d
18-
push!(data, TAMQPFieldValuePair(n, as_fval(v)))
18+
push!(data, TAMQPFieldValuePair(convert(TAMQPShortStr,n), as_fval(v)))
1919
end
2020
TAMQPFieldTable(length(data), data)
2121
end

src/protocol.jl

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,21 @@ write(io::IO, b::TAMQPBodyPayload) = write(io, b.data)
3232

3333
function read(io::IO, ::Type{TAMQPShortStr})
3434
len = ntoh(read(io, TAMQPOctet))
35-
TAMQPShortStr(len, read!(io, Array(UInt8, len)))
35+
TAMQPShortStr(len, read!(io, Array{UInt8}(len)))
3636
end
3737

3838
function read(io::IO, ::Type{TAMQPLongStr})
3939
len = ntoh(read(io, TAMQPLongUInt))
40-
TAMQPLongStr(len, read!(io, Array(UInt8, len)))
40+
TAMQPLongStr(len, read!(io, Array{UInt8}(len)))
4141
end
4242

4343
write{T<:Union{TAMQPShortStr,TAMQPLongStr}}(io::IO, s::T) = write(io, hton(s.len), s.data)
4444

4545
function read(io::IO, ::Type{TAMQPFieldValue})
4646
c = read(io, Char)
4747
v = read(io, FieldValueIndicatorMap[c])
48-
TAMQPFieldValue(c, v)
48+
T = FieldValueIndicatorMap[c]
49+
TAMQPFieldValue{T}(c, v)
4950
end
5051

5152
write(io::IO, fv::TAMQPFieldValue) = write(io, fv.typ, fv.fld)
@@ -57,7 +58,7 @@ write(io::IO, fv::TAMQPFieldValuePair) = write(io, fv.name, fv.val)
5758
function read(io::IO, ::Type{TAMQPFieldTable})
5859
len = ntoh(read(io, fieldtype(TAMQPFieldTable, :len)))
5960
@logmsg("read fieldtable length $(len)")
60-
buff = read!(io, Array(UInt8, len))
61+
buff = read!(io, Array{UInt8}(len))
6162
data = TAMQPFieldValuePair[]
6263
iob = IOBuffer(buff)
6364
while !eof(iob)
@@ -96,7 +97,7 @@ function read(io::IO, ::Type{TAMQPGenericFrame})
9697
@assert hdr in (1,2,3,8)
9798
props = read(io, fieldtype(TAMQPGenericFrame, :props))
9899
@logmsg("reading generic frame type:$hdr, channel:$(props.channel), payloadsize:$(props.payloadsize)")
99-
payload = read!(io, TAMQPBodyPayload(Array(TAMQPOctet, props.payloadsize)))
100+
payload = read!(io, TAMQPBodyPayload(Array{TAMQPOctet}(props.payloadsize)))
100101
fend = ntoh(read(io, fieldtype(TAMQPGenericFrame, :fend)))
101102
@assert fend == FrameEnd
102103
TAMQPGenericFrame(hdr, props, payload, fend)
@@ -157,9 +158,9 @@ const CONN_STATE_CLOSED = 0
157158
const CONN_STATE_OPENING = 1
158159
const CONN_STATE_OPEN = 2
159160
const CONN_STATE_CLOSING = 3
160-
const CONN_MAX_QUEUED = typemax(Int)
161+
const CONN_MAX_QUEUED = 1024 #typemax(Int)
161162

162-
abstract AbstractChannel
163+
@compat abstract type AbstractChannel end
163164

164165
type Connection
165166
virtualhost::String
@@ -1174,7 +1175,7 @@ end
11741175
function on_channel_message_in(chan::MessageChannel, m::TAMQPContentHeaderFrame, ctx)
11751176
msg = chan.partial_msgs[1]
11761177
msg.properties = m.hdrpayload.proplist
1177-
msg.data = Array(UInt8, m.hdrpayload.bodysize)
1178+
msg.data = Array{UInt8}(m.hdrpayload.bodysize)
11781179
msg.filled = 0
11791180
nothing
11801181
end

src/spec.jl

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,19 @@ const HardErrorNotImplemented = 540
3434
const HardErrorInternalError = 541
3535

3636
# Domains
37-
typealias TAMQPConsumerTag TAMQPShortStr
38-
typealias TAMQPDeliveryTag Int64
39-
typealias TAMQPExchangeName TAMQPShortStr
40-
typealias TAMQPNoAck TAMQPBit
41-
typealias TAMQPNoLocal TAMQPBit
42-
typealias TAMQPNoWait TAMQPBit
43-
typealias TAMQPPath TAMQPShortStr
44-
typealias TAMQPPeerProperties TAMQPFieldTable
45-
typealias TAMQPQueueName TAMQPShortStr
46-
typealias TAMQPRedelivered TAMQPBit
47-
typealias TAMQPMessageCount Int32
48-
typealias TAMQPReplyCode Int16
49-
typealias TAMQPReplyText TAMQPShortStr
37+
const TAMQPConsumerTag = TAMQPShortStr
38+
const TAMQPDeliveryTag = Int64
39+
const TAMQPExchangeName = TAMQPShortStr
40+
const TAMQPNoAck = TAMQPBit
41+
const TAMQPNoLocal = TAMQPBit
42+
const TAMQPNoWait = TAMQPBit
43+
const TAMQPPath = TAMQPShortStr
44+
const TAMQPPeerProperties = TAMQPFieldTable
45+
const TAMQPQueueName = TAMQPShortStr
46+
const TAMQPRedelivered = TAMQPBit
47+
const TAMQPMessageCount = Int32
48+
const TAMQPReplyCode = Int16
49+
const TAMQPReplyText = TAMQPShortStr
5050
# end Domains
5151

5252
# Classes

src/types.jl

Lines changed: 36 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,23 @@ const ContentWeight = 0x0000
88
const FrameEnd = 0xCE
99
const HeartBeat = UInt8[8, 0, 0, FrameEnd]
1010

11-
12-
#typealias TAMQPBit UInt8
13-
typealias TAMQPBool UInt8 # 0 = FALSE, else TRUE
14-
typealias TAMQPScale UInt8 # number of decimal digits
15-
typealias TAMQPOctet UInt8
16-
typealias TAMQPShortShortInt UInt8
17-
typealias TAMQPShortShortUInt UInt8
18-
typealias TAMQPShortInt Int16
19-
typealias TAMQPShortUInt UInt16
20-
typealias TAMQPLongInt Int32
21-
typealias TAMQPLongUInt UInt32
22-
typealias TAMQPLongLongInt Int64
23-
typealias TAMQPLongLongUInt UInt64
24-
typealias TAMQPFloat Float32
25-
typealias TAMQPDouble Float64
26-
typealias TAMQPTimeStamp TAMQPLongLongUInt
11+
@compat abstract type TAMQPLengthPrefixed end
12+
13+
#const TAMQPBit = UInt8
14+
const TAMQPBool = UInt8 # 0 = FALSE, else TRUE
15+
const TAMQPScale = UInt8 # number of decimal digits
16+
const TAMQPOctet = UInt8
17+
const TAMQPShortShortInt = UInt8
18+
const TAMQPShortShortUInt = UInt8
19+
const TAMQPShortInt = Int16
20+
const TAMQPShortUInt = UInt16
21+
const TAMQPLongInt = Int32
22+
const TAMQPLongUInt = UInt32
23+
const TAMQPLongLongInt = Int64
24+
const TAMQPLongLongUInt = UInt64
25+
const TAMQPFloat = Float32
26+
const TAMQPDouble = Float64
27+
const TAMQPTimeStamp = TAMQPLongLongUInt
2728

2829
immutable TAMQPBit
2930
val::UInt8
@@ -42,46 +43,42 @@ immutable TAMQPDecimalValue
4243
val::TAMQPLongUInt
4344
end
4445

45-
immutable TAMQPShortStr
46+
immutable TAMQPShortStr <: TAMQPLengthPrefixed
4647
len::TAMQPOctet
4748
data::Vector{Int8}
4849
end
4950

50-
immutable TAMQPLongStr
51+
immutable TAMQPLongStr <: TAMQPLengthPrefixed
5152
len::TAMQPLongUInt
5253
data::Vector{UInt8}
5354
end
5455

55-
typealias TAMQPFieldName TAMQPShortStr
56+
const TAMQPFieldName = TAMQPShortStr
57+
const TAMQPFV = Union{Real, TAMQPDecimalValue, TAMQPLengthPrefixed, Void}
5658

57-
immutable TAMQPFieldValue{T}
59+
immutable TAMQPFieldValue{T <: TAMQPFV}
5860
typ::Char # as in FieldValueIndicatorMap
5961
fld::T
6062
end
6163

62-
function TAMQPFieldValue(typ::Char, fld)
63-
T = FieldValueIndicatorMap[typ]
64-
TAMQPFieldValue{T}(typ, fld)
65-
end
66-
67-
immutable TAMQPFieldValuePair
64+
immutable TAMQPFieldValuePair{T <: TAMQPFV}
6865
name::TAMQPFieldName
69-
val::TAMQPFieldValue
66+
val::TAMQPFieldValue{T}
7067
end
7168

72-
immutable TAMQPFieldArray
69+
immutable TAMQPFieldArray <: TAMQPLengthPrefixed
7370
len::TAMQPLongInt
7471
data::Vector{TAMQPFieldValue}
7572
end
7673

77-
immutable TAMQPFieldTable
74+
immutable TAMQPFieldTable <: TAMQPLengthPrefixed
7875
len::TAMQPLongUInt
7976
data::Vector{TAMQPFieldValuePair}
8077
end
8178

82-
typealias TAMQPField Union{TAMQPBit, TAMQPOctet, TAMQPShortInt, TAMQPShortUInt, TAMQPLongInt, TAMQPLongUInt, TAMQPLongLongInt, TAMQPLongLongUInt, TAMQPShortStr, TAMQPLongStr, TAMQPTimeStamp, TAMQPFieldTable}
79+
const TAMQPField = Union{TAMQPBit, Integer, TAMQPShortStr, TAMQPLongStr, TAMQPFieldTable}
8380

84-
const FieldValueIndicatorMap = Dict{Char,Type}(
81+
const FieldValueIndicatorMap = Dict{Char,DataType}(
8582
't' => TAMQPBool,
8683
'b' => TAMQPShortShortInt,
8784
'B' => TAMQPShortShortUInt,
@@ -103,14 +100,14 @@ const FieldValueIndicatorMap = Dict{Char,Type}(
103100
'V' => Void
104101
)
105102

106-
const FieldIndicatorMap = Dict{Type,Char}(v=>n for (n,v) in FieldValueIndicatorMap)
103+
const FieldIndicatorMap = Dict{DataType,Char}(v=>n for (n,v) in FieldValueIndicatorMap)
107104

108-
typealias TAMQPChannel TAMQPShortUInt
109-
typealias TAMQPPayloadSize TAMQPLongUInt
110-
typealias TAMQPContentBodySize TAMQPLongLongUInt
111-
typealias TAMQPClassId UInt16
112-
typealias TAMQPMethodId UInt16
113-
typealias TAMQPContentClass TAMQPClassId
105+
const TAMQPChannel = TAMQPShortUInt
106+
const TAMQPPayloadSize = TAMQPLongUInt
107+
const TAMQPContentBodySize = TAMQPLongLongUInt
108+
const TAMQPClassId = UInt16
109+
const TAMQPMethodId = UInt16
110+
const TAMQPContentClass = TAMQPClassId
114111

115112
immutable TAMQPFrameProperties
116113
channel::TAMQPChannel
@@ -139,7 +136,7 @@ immutable TAMQPMethodPayload
139136
class = ntoh(read(io, TAMQPClassId))
140137
method = ntoh(read(io, TAMQPMethodId))
141138
args = methodargs(class, method)
142-
fields = Array(Pair{Symbol,TAMQPField}, length(args))
139+
fields = Array{Pair{Symbol,TAMQPField}}(length(args))
143140
@logmsg("reading method payload class:$class, method:$method, nargs:$(length(args))")
144141
bitpos = 0
145142
bitval = TAMQPBit(0)

test/test_throughput.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ function consume(conn, chan1)
9494

9595
# wait to receive all messages
9696
while msg_count < NMSGS
97+
println("$msg_count of $NMSGS messages processed")
9798
sleep(2)
9899
end
99100

@@ -136,7 +137,10 @@ function spawn_test(script, flags)
136137
end
137138

138139
function runtests()
140+
println("starting consumer")
139141
consumer = @async spawn_test("test_throughput.jl", "--runconsumer")
142+
sleep(5)
143+
println("starting publisher")
140144
publisher = @async spawn_test("test_throughput.jl", "--runpublisher")
141145
wait(consumer)
142146
wait(publisher)

0 commit comments

Comments
 (0)