diff options
author | Michael Bridgen <mikeb@lshift.net> | 2010-03-18 12:42:57 +0000 |
---|---|---|
committer | Michael Bridgen <mikeb@lshift.net> | 2010-03-18 12:42:57 +0000 |
commit | 64965e11479055ed797d190de4665f8ae595beee (patch) | |
tree | 6007d8832daa28778bcd9eb388468b04158064a4 /codegen.py | |
parent | fca3940ad43e5c8cdc259675fa2fca2992d21808 (diff) | |
parent | 9fe32fe62e9acb0373ed369365a7a1880571987f (diff) | |
download | rabbitmq-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.py | 15 |
1 files changed, 11 insertions, 4 deletions
@@ -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) |