summaryrefslogtreecommitdiff
path: root/codegen.py
diff options
context:
space:
mode:
authorMichael Bridgen <mikeb@lshift.net>2010-03-18 12:42:57 +0000
committerMichael Bridgen <mikeb@lshift.net>2010-03-18 12:42:57 +0000
commit64965e11479055ed797d190de4665f8ae595beee (patch)
tree6007d8832daa28778bcd9eb388468b04158064a4 /codegen.py
parentfca3940ad43e5c8cdc259675fa2fca2992d21808 (diff)
parent9fe32fe62e9acb0373ed369365a7a1880571987f (diff)
downloadrabbitmq-server-64965e11479055ed797d190de4665f8ae595beee.tar.gz
Non-trivial merge of default into amqp_0_9_1. Queue exclusivity (bug
20578) and exchange hooks intersect in a few places. The main things to take care over are that the post-queue-deletion hooks gets called, and the exclusivity check is called. NB: exchange auto-delete machinery needs to be removed, which will simplify things in a few places.
Diffstat (limited to 'codegen.py')
-rw-r--r--codegen.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/codegen.py b/codegen.py
index b5c91cbd..cce25e78 100644
--- a/codegen.py
+++ b/codegen.py
@@ -126,7 +126,7 @@ def printFileHeader():
%%
%% Contributor(s): ______________________________________.
%%"""
-
+
def genErl(spec):
def erlType(domain):
return erlangTypeMap[spec.resolveDomain(domain)]
@@ -151,7 +151,7 @@ def genErl(spec):
def genMethodHasContent(m):
print "method_has_content(%s) -> %s;" % (m.erlangName(), str(m.hasContent).lower())
-
+
def genMethodIsSynchronous(m):
hasNoWait = "nowait" in fieldNameList(m.arguments)
if m.isSynchronous and hasNoWait:
@@ -219,6 +219,9 @@ def genErl(spec):
else:
pass
+ def genMethodRecord(m):
+ print "method_record(%s) -> #%s{};" % (m.erlangName(), m.erlangName())
+
def genDecodeMethodFields(m):
packedFields = packMethodFields(m.arguments)
binaryPattern = ', '.join([methodFieldFragment(f) for f in packedFields])
@@ -299,6 +302,7 @@ def genErl(spec):
-export([method_id/1]).
-export([method_has_content/1]).
-export([is_method_synchronous/1]).
+-export([method_record/1]).
-export([method_fieldnames/1]).
-export([decode_method_fields/2]).
-export([decode_properties/2]).
@@ -323,6 +327,9 @@ bitvalue(undefined) -> 0.
for m in methods: genMethodIsSynchronous(m)
print "is_method_synchronous(Name) -> exit({unknown_method_name, Name})."
+ for m in methods: genMethodRecord(m)
+ print "method_record(Name) -> exit({unknown_method_name, Name})."
+
for m in methods: genMethodFieldNames(m)
print "method_fieldnames(Name) -> exit({unknown_method_name, Name})."
@@ -362,7 +369,7 @@ def genHrl(spec):
result += ' = ' + conv_fn(field.defaultvalue)
return result
return ', '.join([fillField(f) for f in fields])
-
+
methods = spec.allMethods()
printFileHeader()
@@ -387,7 +394,7 @@ def generateErl(specPath):
def generateHrl(specPath):
genHrl(AmqpSpec(specPath))
-
+
if __name__ == "__main__":
do_main(generateHrl, generateErl)