diff --git a/apps/roster/priv/macbert/Source/Decoder.swift b/apps/roster/priv/macbert/Source/Decoder.swift index af2be88aa15d0391fe9f3881e9388129aabedad9..d0eb85fdeddd770a9a37511594928440c6d72874 100644 --- a/apps/roster/priv/macbert/Source/Decoder.swift +++ b/apps/roster/priv/macbert/Source/Decoder.swift @@ -1,6 +1,246 @@ func parseObject(name: String, body:[Model], tuple: BertTuple) -> AnyObject? { switch name { + case "writer": + if body.count != 5 { return nil } + let a_writer = writer() + a_writer.id = body[0].parse(bert: tuple.elements[1]) as? AnyObject + a_writer.count = body[1].parse(bert: tuple.elements[2]) as? Int64 + a_writer.cache = body[2].parse(bert: tuple.elements[3]) as? [AnyObject] + a_writer.args = body[3].parse(bert: tuple.elements[4]) as? AnyObject + a_writer.first = body[4].parse(bert: tuple.elements[5]) as? [AnyObject] + return a_writer + case "reader": + if body.count != 6 { return nil } + let a_reader = reader() + a_reader.id = body[0].parse(bert: tuple.elements[1]) as? AnyObject + a_reader.pos = body[1].parse(bert: tuple.elements[2]) as? Int64 + a_reader.cache = body[2].parse(bert: tuple.elements[3]) as? Int64 + a_reader.args = body[3].parse(bert: tuple.elements[4]) as? AnyObject + a_reader.feed = body[4].parse(bert: tuple.elements[5]) as? AnyObject + a_reader.dir = body[5].parse(bert: tuple.elements[6]) as? AnyObject + return a_reader + case "cur": + if body.count != 11 { return nil } + let a_cur = cur() + a_cur.id = body[0].parse(bert: tuple.elements[1]) as? AnyObject + a_cur.top = body[1].parse(bert: tuple.elements[2]) as? Int64 + a_cur.bot = body[2].parse(bert: tuple.elements[3]) as? Int64 + a_cur.dir = body[3].parse(bert: tuple.elements[4]) as? AnyObject + a_cur.reader = body[4].parse(bert: tuple.elements[5]) as? [AnyObject] + a_cur.writer = body[5].parse(bert: tuple.elements[6]) as? [AnyObject] + a_cur.args = body[8].parse(bert: tuple.elements[9]) as? [AnyObject] + return a_cur + case "iter": + if body.count != 5 { return nil } + let a_iter = iter() + a_iter.id = body[0].parse(bert: tuple.elements[1]) as? Int64 + a_iter.container = body[1].parse(bert: tuple.elements[2]) as? StringAtom + a_iter.feed = body[2].parse(bert: tuple.elements[3]) as? AnyObject + a_iter.next = body[3].parse(bert: tuple.elements[4]) as? Int64 + a_iter.prev = body[4].parse(bert: tuple.elements[5]) as? Int64 + return a_iter + case "container": + if body.count != 4 { return nil } + let a_container = container() + a_container.id = body[0].parse(bert: tuple.elements[1]) as? Int64 + a_container.top = body[1].parse(bert: tuple.elements[2]) as? Int64 + a_container.rear = body[2].parse(bert: tuple.elements[3]) as? Int64 + a_container.count = body[3].parse(bert: tuple.elements[4]) as? Int64 + return a_container + case "iterator": + if body.count != 6 { return nil } + let a_iterator = iterator() + a_iterator.id = body[0].parse(bert: tuple.elements[1]) as? Int64 + a_iterator.container = body[1].parse(bert: tuple.elements[2]) as? StringAtom + a_iterator.feed_id = body[2].parse(bert: tuple.elements[3]) as? AnyObject + a_iterator.prev = body[3].parse(bert: tuple.elements[4]) as? Int64 + a_iterator.next = body[4].parse(bert: tuple.elements[5]) as? Int64 + a_iterator.feeds = body[5].parse(bert: tuple.elements[6]) as? [AnyObject] + return a_iterator + case "log": + if body.count != 6 { return nil } + let a_log = log() + a_log.id = body[0].parse(bert: tuple.elements[1]) as? Int64 + a_log.top = body[1].parse(bert: tuple.elements[2]) as? Int64 + a_log.rear = body[2].parse(bert: tuple.elements[3]) as? Int64 + a_log.count = body[3].parse(bert: tuple.elements[4]) as? Int64 + return a_log + case "operation": + if body.count != 9 { return nil } + let a_operation = operation() + a_operation.id = body[0].parse(bert: tuple.elements[1]) as? Int64 + a_operation.container = body[1].parse(bert: tuple.elements[2]) as? StringAtom + a_operation.feed_id = body[2].parse(bert: tuple.elements[3]) as? AnyObject + a_operation.prev = body[3].parse(bert: tuple.elements[4]) as? Int64 + a_operation.next = body[4].parse(bert: tuple.elements[5]) as? Int64 + a_operation.feeds = body[5].parse(bert: tuple.elements[6]) as? [AnyObject] + return a_operation + case "feed": + if body.count != 5 { return nil } + let a_feed = feed() + a_feed.id = body[0].parse(bert: tuple.elements[1]) as? Int64 + a_feed.top = body[1].parse(bert: tuple.elements[2]) as? Int64 + a_feed.rear = body[2].parse(bert: tuple.elements[3]) as? Int64 + a_feed.count = body[3].parse(bert: tuple.elements[4]) as? Int64 + return a_feed + case "task": + if body.count != 4 { return nil } + let a_task = task() + a_task.name = body[0].parse(bert: tuple.elements[1]) as? StringAtom + a_task.module = body[1].parse(bert: tuple.elements[2]) as? StringAtom + a_task.prompt = body[2].parse(bert: tuple.elements[3]) as? [AnyObject] + a_task.roles = body[3].parse(bert: tuple.elements[4]) as? String + return a_task + case "userTask": + if body.count != 4 { return nil } + let a_userTask = userTask() + a_userTask.name = body[0].parse(bert: tuple.elements[1]) as? StringAtom + a_userTask.module = body[1].parse(bert: tuple.elements[2]) as? StringAtom + a_userTask.prompt = body[2].parse(bert: tuple.elements[3]) as? [AnyObject] + a_userTask.roles = body[3].parse(bert: tuple.elements[4]) as? String + return a_userTask + case "serviceTask": + if body.count != 4 { return nil } + let a_serviceTask = serviceTask() + a_serviceTask.name = body[0].parse(bert: tuple.elements[1]) as? StringAtom + a_serviceTask.module = body[1].parse(bert: tuple.elements[2]) as? StringAtom + a_serviceTask.prompt = body[2].parse(bert: tuple.elements[3]) as? [AnyObject] + a_serviceTask.roles = body[3].parse(bert: tuple.elements[4]) as? String + return a_serviceTask + case "receiveTask": + if body.count != 4 { return nil } + let a_receiveTask = receiveTask() + a_receiveTask.name = body[0].parse(bert: tuple.elements[1]) as? StringAtom + a_receiveTask.module = body[1].parse(bert: tuple.elements[2]) as? StringAtom + a_receiveTask.prompt = body[2].parse(bert: tuple.elements[3]) as? [AnyObject] + a_receiveTask.roles = body[3].parse(bert: tuple.elements[4]) as? String + return a_receiveTask + case "messageEvent": + if body.count != 5 { return nil } + let a_messageEvent = messageEvent() + a_messageEvent.name = body[0].parse(bert: tuple.elements[1]) as? StringAtom + a_messageEvent.module = body[1].parse(bert: tuple.elements[2]) as? StringAtom + a_messageEvent.prompt = body[2].parse(bert: tuple.elements[3]) as? [AnyObject] + a_messageEvent.payload = body[3].parse(bert: tuple.elements[4]) as? String + a_messageEvent.timeout = body[4].parse(bert: tuple.elements[5]) as? [AnyObject] + return a_messageEvent + case "boundaryEvent": + if body.count != 8 { return nil } + let a_boundaryEvent = boundaryEvent() + a_boundaryEvent.name = body[0].parse(bert: tuple.elements[1]) as? StringAtom + a_boundaryEvent.module = body[1].parse(bert: tuple.elements[2]) as? StringAtom + a_boundaryEvent.prompt = body[2].parse(bert: tuple.elements[3]) as? [AnyObject] + a_boundaryEvent.payload = body[3].parse(bert: tuple.elements[4]) as? String + a_boundaryEvent.timeout = body[4].parse(bert: tuple.elements[5]) as? [AnyObject] + a_boundaryEvent.timeDate = body[5].parse(bert: tuple.elements[6]) as? String + a_boundaryEvent.timeDuration = body[6].parse(bert: tuple.elements[7]) as? String + a_boundaryEvent.timeCycle = body[7].parse(bert: tuple.elements[8]) as? String + return a_boundaryEvent + case "timeoutEvent": + if body.count != 8 { return nil } + let a_timeoutEvent = timeoutEvent() + a_timeoutEvent.name = body[0].parse(bert: tuple.elements[1]) as? StringAtom + a_timeoutEvent.module = body[1].parse(bert: tuple.elements[2]) as? StringAtom + a_timeoutEvent.prompt = body[2].parse(bert: tuple.elements[3]) as? [AnyObject] + a_timeoutEvent.payload = body[3].parse(bert: tuple.elements[4]) as? String + a_timeoutEvent.timeout = body[4].parse(bert: tuple.elements[5]) as? [AnyObject] + a_timeoutEvent.timeDate = body[5].parse(bert: tuple.elements[6]) as? String + a_timeoutEvent.timeDuration = body[6].parse(bert: tuple.elements[7]) as? String + a_timeoutEvent.timeCycle = body[7].parse(bert: tuple.elements[8]) as? String + return a_timeoutEvent + case "beginEvent": + if body.count != 3 { return nil } + let a_beginEvent = beginEvent() + a_beginEvent.name = body[0].parse(bert: tuple.elements[1]) as? StringAtom + a_beginEvent.module = body[1].parse(bert: tuple.elements[2]) as? StringAtom + a_beginEvent.prompt = body[2].parse(bert: tuple.elements[3]) as? [AnyObject] + return a_beginEvent + case "endEvent": + if body.count != 3 { return nil } + let a_endEvent = endEvent() + a_endEvent.name = body[0].parse(bert: tuple.elements[1]) as? StringAtom + a_endEvent.module = body[1].parse(bert: tuple.elements[2]) as? StringAtom + a_endEvent.prompt = body[2].parse(bert: tuple.elements[3]) as? [AnyObject] + return a_endEvent + case "sequenceFlow": + if body.count != 2 { return nil } + let a_sequenceFlow = sequenceFlow() + a_sequenceFlow.source = body[0].parse(bert: tuple.elements[1]) as? StringAtom + a_sequenceFlow.target = body[1].parse(bert: tuple.elements[2]) as? AnyObject + return a_sequenceFlow + case "hist": + if body.count != 10 { return nil } + let a_hist = hist() + a_hist.id = body[0].parse(bert: tuple.elements[1]) as? Int64 + a_hist.container = body[1].parse(bert: tuple.elements[2]) as? StringAtom + a_hist.feed_id = body[2].parse(bert: tuple.elements[3]) as? AnyObject + a_hist.prev = body[3].parse(bert: tuple.elements[4]) as? Int64 + a_hist.next = body[4].parse(bert: tuple.elements[5]) as? Int64 + a_hist.feeds = body[5].parse(bert: tuple.elements[6]) as? [AnyObject] + a_hist.name = body[6].parse(bert: tuple.elements[7]) as? String + a_hist.task = body[7].parse(bert: tuple.elements[8]) as? StringAtom + a_hist.docs = body[8].parse(bert: tuple.elements[9]) as? [AnyObject] + a_hist.time = body[9].parse(bert: tuple.elements[10]) as? AnyObject + return a_hist + case "process": + if body.count != 22 { return nil } + let a_process = process() + a_process.id = body[0].parse(bert: tuple.elements[1]) as? Int64 + a_process.container = body[1].parse(bert: tuple.elements[2]) as? StringAtom + a_process.feed_id = body[2].parse(bert: tuple.elements[3]) as? AnyObject + a_process.prev = body[3].parse(bert: tuple.elements[4]) as? Int64 + a_process.next = body[4].parse(bert: tuple.elements[5]) as? Int64 + a_process.feeds = body[5].parse(bert: tuple.elements[6]) as? [AnyObject] + a_process.name = body[6].parse(bert: tuple.elements[7]) as? String + a_process.roles = body[7].parse(bert: tuple.elements[8]) as? [AnyObject] + a_process.tasks = body[8].parse(bert: tuple.elements[9]) as? [AnyObject] + a_process.events = body[9].parse(bert: tuple.elements[10]) as? [AnyObject] + a_process.hist = body[10].parse(bert: tuple.elements[11]) as? AnyObject + a_process.flows = body[11].parse(bert: tuple.elements[12]) as? [sequenceFlow] + a_process.rules = body[12].parse(bert: tuple.elements[13]) as? AnyObject + a_process.docs = body[13].parse(bert: tuple.elements[14]) as? [AnyObject] + a_process.options = body[14].parse(bert: tuple.elements[15]) as? AnyObject + a_process.task = body[15].parse(bert: tuple.elements[16]) as? StringAtom + a_process.timer = body[16].parse(bert: tuple.elements[17]) as? String + a_process.notifications = body[17].parse(bert: tuple.elements[18]) as? AnyObject + a_process.result = body[18].parse(bert: tuple.elements[19]) as? String + a_process.started = body[19].parse(bert: tuple.elements[20]) as? [AnyObject] + a_process.beginEvent = body[20].parse(bert: tuple.elements[21]) as? StringAtom + a_process.endEvent = body[21].parse(bert: tuple.elements[22]) as? StringAtom + return a_process + case "complete": + if body.count != 1 { return nil } + let a_complete = complete() + a_complete.id = body[0].parse(bert: tuple.elements[1]) as? Int64 + return a_complete + case "proc": + if body.count != 1 { return nil } + let a_proc = proc() + a_proc.id = body[0].parse(bert: tuple.elements[1]) as? Int64 + return a_proc + case "load": + if body.count != 1 { return nil } + let a_load = load() + a_load.id = body[0].parse(bert: tuple.elements[1]) as? Int64 + return a_load + case "histo": + if body.count != 1 { return nil } + let a_histo = histo() + a_histo.id = body[0].parse(bert: tuple.elements[1]) as? Int64 + return a_histo + case "create": + if body.count != 2 { return nil } + let a_create = create() + a_create.proc = body[0].parse(bert: tuple.elements[1]) as? AnyObject + a_create.docs = body[1].parse(bert: tuple.elements[2]) as? [AnyObject] + return a_create + case "amend": + if body.count != 2 { return nil } + let a_amend = amend() + a_amend.id = body[0].parse(bert: tuple.elements[1]) as? Int64 + a_amend.docs = body[1].parse(bert: tuple.elements[2]) as? [AnyObject] + return a_amend case "chain": if body.count != 6 { return nil } let a_chain = chain() @@ -314,6 +554,12 @@ func parseObject(name: String, body:[Model], tuple: BertTuple) -> AnyObject? a_Index.id = body[0].parse(bert: tuple.elements[1]) as? AnyObject a_Index.roster = body[1].parse(bert: tuple.elements[2]) as? [AnyObject] return a_Index + case "Whitelist": + if body.count != 2 { return nil } + let a_Whitelist = Whitelist() + a_Whitelist.phone = body[0].parse(bert: tuple.elements[1]) as? String + a_Whitelist.created = body[1].parse(bert: tuple.elements[2]) as? Int64 + return a_Whitelist case "error": if body.count != 1 { return nil } let a_error = error() @@ -371,6 +617,30 @@ func parseObject(name: String, body:[Model], tuple: BertTuple) -> AnyObject? a_PublishService.topic = body[1].parse(bert: tuple.elements[2]) as? String a_PublishService.qos = body[2].parse(bert: tuple.elements[3]) as? Int64 return a_PublishService + case "FakeNumbers": + if body.count != 2 { return nil } + let a_FakeNumbers = FakeNumbers() + a_FakeNumbers.phone = body[0].parse(bert: tuple.elements[1]) as? String + a_FakeNumbers.created = body[1].parse(bert: tuple.elements[2]) as? Int64 + return a_FakeNumbers + case "cx": + if body.count != 14 { return nil } + let a_cx = cx() + a_cx.handlers = body[0].parse(bert: tuple.elements[1]) as? [handler] + a_cx.actions = body[1].parse(bert: tuple.elements[2]) as? [AnyObject] + a_cx.req = body[2].parse(bert: tuple.elements[3]) as? AnyObject + a_cx.module = body[3].parse(bert: tuple.elements[4]) as? StringAtom + a_cx.lang = body[4].parse(bert: tuple.elements[5]) as? StringAtom + a_cx.path = body[5].parse(bert: tuple.elements[6]) as? String + a_cx.session = body[6].parse(bert: tuple.elements[7]) as? String + a_cx.formatter = body[7].parse(bert: tuple.elements[8]) as? AnyObject + a_cx.params = body[8].parse(bert: tuple.elements[9]) as? [AnyObject] + a_cx.node = body[9].parse(bert: tuple.elements[10]) as? StringAtom + a_cx.client_pid = body[10].parse(bert: tuple.elements[11]) as? AnyObject + a_cx.state = body[11].parse(bert: tuple.elements[12]) as? AnyObject + a_cx.from = body[12].parse(bert: tuple.elements[13]) as? String + a_cx.vsn = body[13].parse(bert: tuple.elements[14]) as? String + return a_cx default: return nil } } \ No newline at end of file diff --git a/apps/roster/priv/macbert/json-bert.js b/apps/roster/priv/macbert/json-bert.js index bd7f9a5a317191ecbd8cbdce3c52771e704ae6f0..1d7a3225a95205a66056e02727ecf069cc247096 100644 --- a/apps/roster/priv/macbert/json-bert.js +++ b/apps/roster/priv/macbert/json-bert.js @@ -39,6 +39,673 @@ function encode(x) { } else return scalar(x); } +function encwriter(d) { + var tup = atom('writer'); + var id = 'id' in d && d.id ? encode(d.id) : nil(); + var count = 'count' in d && d.count ? number(d.count) : nil(); + var cache = 'cache' in d && d.cache ? encode(d.cache) : nil(); + var args = 'args' in d && d.args ? encode(d.args) : nil(); + var first = 'first' in d && d.first ? encode(d.first) : nil(); + return tuple(tup,id,count,cache,args,first); } + +function lenwriter() { return 6; } +function decwriter(d) { + var r={}; r.tup = 'writer'; + r.id = d && d.v[1] ? decode(d.v[1]) : undefined; + r.count = d && d.v[2] ? d.v[2].v : undefined; + r.cache = d && d.v[3] ? decode(d.v[3]) : undefined; + r.args = d && d.v[4] ? decode(d.v[4]) : undefined; + r.first = d && d.v[5] ? decode(d.v[5]) : undefined; + return clean(r); } + +function encreader(d) { + var tup = atom('reader'); + var id = 'id' in d && d.id ? encode(d.id) : nil(); + var pos = 'pos' in d && d.pos ? number(d.pos) : nil(); + var cache = 'cache' in d && d.cache ? number(d.cache) : nil(); + var args = 'args' in d && d.args ? encode(d.args) : nil(); + var feed = 'feed' in d && d.feed ? encode(d.feed) : nil(); + var dir = 'dir' in d && d.dir ? encode(d.dir) : nil(); + return tuple(tup,id,pos,cache,args,feed,dir); } + +function lenreader() { return 7; } +function decreader(d) { + var r={}; r.tup = 'reader'; + r.id = d && d.v[1] ? decode(d.v[1]) : undefined; + r.pos = d && d.v[2] ? d.v[2].v : undefined; + r.cache = d && d.v[3] ? d.v[3].v : undefined; + r.args = d && d.v[4] ? decode(d.v[4]) : undefined; + r.feed = d && d.v[5] ? decode(d.v[5]) : undefined; + r.dir = d && d.v[6] ? decode(d.v[6]) : undefined; + return clean(r); } + +function enccur(d) { + var tup = atom('cur'); + var id = 'id' in d && d.id ? encode(d.id) : nil(); + var top = 'top' in d && d.top ? number(d.top) : nil(); + var bot = 'bot' in d && d.bot ? number(d.bot) : nil(); + var dir = 'dir' in d && d.dir ? encode(d.dir) : nil(); + var reader = 'reader' in d && d.reader ? encode(d.reader) : nil(); + var writer = 'writer' in d && d.writer ? encode(d.writer) : nil(); + var left = 'left' in d && d.left ? encode(d.left) : nil(); + var right = 'right' in d && d.right ? encode(d.right) : nil(); + var args = []; if ('args' in d && d.args) + { d.args.forEach(function(x){ + args.push(encode(x))}); + args={t:108,v:args}; } else { args = nil() }; + var money = 'money' in d && d.money ? encode(d.money) : nil(); + var status = 'status' in d && d.status ? encode(d.status) : nil(); + return tuple(tup,id,top,bot,dir,reader,writer,left,right,args,money,status); } + +function lencur() { return 12; } +function deccur(d) { + var r={}; r.tup = 'cur'; + r.id = d && d.v[1] ? decode(d.v[1]) : undefined; + r.top = d && d.v[2] ? d.v[2].v : undefined; + r.bot = d && d.v[3] ? d.v[3].v : undefined; + r.dir = d && d.v[4] ? decode(d.v[4]) : undefined; + r.reader = d && d.v[5] ? decode(d.v[5]) : undefined; + r.writer = d && d.v[6] ? decode(d.v[6]) : undefined; + r.left = d && d.v[7] ? decode(d.v[7]) : undefined; + r.right = d && d.v[8] ? decode(d.v[8]) : undefined; + r.args = []; + (d && d.v[9] && d.v[9].v) ? + d.v[9].v.forEach(function(x){r.args.push(decode(x))}) : + r.args = undefined; + r.money = d && d.v[10] ? decode(d.v[10]) : undefined; + r.status = d && d.v[11] ? decode(d.v[11]) : undefined; + return clean(r); } + +function enciter(d) { + var tup = atom('iter'); + var id = 'id' in d && d.id ? number(d.id) : nil(); + var container = 'container' in d && d.container ? atom(d.container) : nil(); + var feed = 'feed' in d && d.feed ? encode(d.feed) : nil(); + var next = 'next' in d && d.next ? number(d.next) : nil(); + var prev = 'prev' in d && d.prev ? number(d.prev) : nil(); + return tuple(tup,id,container,feed,next,prev); } + +function leniter() { return 6; } +function deciter(d) { + var r={}; r.tup = 'iter'; + r.id = d && d.v[1] ? d.v[1].v : undefined; + r.container = d && d.v[2] ? d.v[2].v : undefined; + r.feed = d && d.v[3] ? decode(d.v[3]) : undefined; + r.next = d && d.v[4] ? d.v[4].v : undefined; + r.prev = d && d.v[5] ? d.v[5].v : undefined; + return clean(r); } + +function enccontainer(d) { + var tup = atom('container'); + var id = 'id' in d && d.id ? number(d.id) : nil(); + var top = 'top' in d && d.top ? number(d.top) : nil(); + var rear = 'rear' in d && d.rear ? number(d.rear) : nil(); + var count = 'count' in d && d.count ? number(d.count) : nil(); + return tuple(tup,id,top,rear,count); } + +function lencontainer() { return 5; } +function deccontainer(d) { + var r={}; r.tup = 'container'; + r.id = d && d.v[1] ? d.v[1].v : undefined; + r.top = d && d.v[2] ? d.v[2].v : undefined; + r.rear = d && d.v[3] ? d.v[3].v : undefined; + r.count = d && d.v[4] ? d.v[4].v : undefined; + return clean(r); } + +function enciterator(d) { + var tup = atom('iterator'); + var id = 'id' in d && d.id ? number(d.id) : nil(); + var container = 'container' in d && d.container ? atom(d.container) : nil(); + var feed_id = 'feed_id' in d && d.feed_id ? encode(d.feed_id) : nil(); + var prev = 'prev' in d && d.prev ? number(d.prev) : nil(); + var next = 'next' in d && d.next ? number(d.next) : nil(); + var feeds = []; if ('feeds' in d && d.feeds) + { d.feeds.forEach(function(x){ + feeds.push(encode(x))}); + feeds={t:108,v:feeds}; } else { feeds = nil() }; + return tuple(tup,id,container,feed_id,prev,next,feeds); } + +function leniterator() { return 7; } +function deciterator(d) { + var r={}; r.tup = 'iterator'; + r.id = d && d.v[1] ? d.v[1].v : undefined; + r.container = d && d.v[2] ? d.v[2].v : undefined; + r.feed_id = d && d.v[3] ? decode(d.v[3]) : undefined; + r.prev = d && d.v[4] ? d.v[4].v : undefined; + r.next = d && d.v[5] ? d.v[5].v : undefined; + r.feeds = []; + (d && d.v[6] && d.v[6].v) ? + d.v[6].v.forEach(function(x){r.feeds.push(decode(x))}) : + r.feeds = undefined; + return clean(r); } + +function enclog(d) { + var tup = atom('log'); + var id = 'id' in d && d.id ? number(d.id) : nil(); + var top = 'top' in d && d.top ? number(d.top) : nil(); + var rear = 'rear' in d && d.rear ? number(d.rear) : nil(); + var count = 'count' in d && d.count ? number(d.count) : nil(); + return tuple(tup,id,top,rear,count); } + +function lenlog() { return 5; } +function declog(d) { + var r={}; r.tup = 'log'; + r.id = d && d.v[1] ? d.v[1].v : undefined; + r.top = d && d.v[2] ? d.v[2].v : undefined; + r.rear = d && d.v[3] ? d.v[3].v : undefined; + r.count = d && d.v[4] ? d.v[4].v : undefined; + return clean(r); } + +function encoperation(d) { + var tup = atom('operation'); + var id = 'id' in d && d.id ? number(d.id) : nil(); + var container = 'container' in d && d.container ? atom(d.container) : nil(); + var feed_id = 'feed_id' in d && d.feed_id ? encode(d.feed_id) : nil(); + var prev = 'prev' in d && d.prev ? number(d.prev) : nil(); + var next = 'next' in d && d.next ? number(d.next) : nil(); + var feeds = []; if ('feeds' in d && d.feeds) + { d.feeds.forEach(function(x){ + feeds.push(encode(x))}); + feeds={t:108,v:feeds}; } else { feeds = nil() }; + var body = 'body' in d && d.body ? encode(d.body) : nil(); + var name = 'name' in d && d.name ? encode(d.name) : nil(); + var status = 'status' in d && d.status ? encode(d.status) : nil(); + return tuple(tup,id,container,feed_id,prev,next,feeds,body,name,status); } + +function lenoperation() { return 10; } +function decoperation(d) { + var r={}; r.tup = 'operation'; + r.id = d && d.v[1] ? d.v[1].v : undefined; + r.container = d && d.v[2] ? d.v[2].v : undefined; + r.feed_id = d && d.v[3] ? decode(d.v[3]) : undefined; + r.prev = d && d.v[4] ? d.v[4].v : undefined; + r.next = d && d.v[5] ? d.v[5].v : undefined; + r.feeds = []; + (d && d.v[6] && d.v[6].v) ? + d.v[6].v.forEach(function(x){r.feeds.push(decode(x))}) : + r.feeds = undefined; + r.body = d && d.v[7] ? decode(d.v[7]) : undefined; + r.name = d && d.v[8] ? decode(d.v[8]) : undefined; + r.status = d && d.v[9] ? decode(d.v[9]) : undefined; + return clean(r); } + +function enckvs(d) { + var tup = atom('kvs'); + var mod = 'mod' in d && d.mod ? encode(d.mod) : nil(); + return tuple(tup,mod); } + +function lenkvs() { return 2; } +function deckvs(d) { + var r={}; r.tup = 'kvs'; + r.mod = d && d.v[1] ? decode(d.v[1]) : undefined; + return clean(r); } + +function encfeed(d) { + var tup = atom('feed'); + var id = 'id' in d && d.id ? number(d.id) : nil(); + var top = 'top' in d && d.top ? number(d.top) : nil(); + var rear = 'rear' in d && d.rear ? number(d.rear) : nil(); + var count = 'count' in d && d.count ? number(d.count) : nil(); + var aclver = 'aclver' in d && d.aclver ? encode(d.aclver) : nil(); + return tuple(tup,id,top,rear,count,aclver); } + +function lenfeed() { return 6; } +function decfeed(d) { + var r={}; r.tup = 'feed'; + r.id = d && d.v[1] ? d.v[1].v : undefined; + r.top = d && d.v[2] ? d.v[2].v : undefined; + r.rear = d && d.v[3] ? d.v[3].v : undefined; + r.count = d && d.v[4] ? d.v[4].v : undefined; + r.aclver = d && d.v[5] ? decode(d.v[5]) : undefined; + return clean(r); } + +function enctask(d) { + var tup = atom('task'); + var name = 'name' in d && d.name ? atom(d.name) : nil(); + var module = 'module' in d && d.module ? atom(d.module) : nil(); + var prompt = []; if ('prompt' in d && d.prompt) + { d.prompt.forEach(function(x){ + prompt.push(encode(x))}); + prompt={t:108,v:prompt}; } else { prompt = nil() }; + var roles = 'roles' in d && d.roles ? bin(d.roles) : nil(); + return tuple(tup,name,module,prompt,roles); } + +function lentask() { return 5; } +function dectask(d) { + var r={}; r.tup = 'task'; + r.name = d && d.v[1] ? d.v[1].v : undefined; + r.module = d && d.v[2] ? d.v[2].v : undefined; + r.prompt = []; + (d && d.v[3] && d.v[3].v) ? + d.v[3].v.forEach(function(x){r.prompt.push(decode(x))}) : + r.prompt = undefined; + r.roles = d && d.v[4] ? utf8_arr(d.v[4].v) : undefined; + return clean(r); } + +function encuserTask(d) { + var tup = atom('userTask'); + var name = 'name' in d && d.name ? atom(d.name) : nil(); + var module = 'module' in d && d.module ? atom(d.module) : nil(); + var prompt = []; if ('prompt' in d && d.prompt) + { d.prompt.forEach(function(x){ + prompt.push(encode(x))}); + prompt={t:108,v:prompt}; } else { prompt = nil() }; + var roles = 'roles' in d && d.roles ? bin(d.roles) : nil(); + return tuple(tup,name,module,prompt,roles); } + +function lenuserTask() { return 5; } +function decuserTask(d) { + var r={}; r.tup = 'userTask'; + r.name = d && d.v[1] ? d.v[1].v : undefined; + r.module = d && d.v[2] ? d.v[2].v : undefined; + r.prompt = []; + (d && d.v[3] && d.v[3].v) ? + d.v[3].v.forEach(function(x){r.prompt.push(decode(x))}) : + r.prompt = undefined; + r.roles = d && d.v[4] ? utf8_arr(d.v[4].v) : undefined; + return clean(r); } + +function encserviceTask(d) { + var tup = atom('serviceTask'); + var name = 'name' in d && d.name ? atom(d.name) : nil(); + var module = 'module' in d && d.module ? atom(d.module) : nil(); + var prompt = []; if ('prompt' in d && d.prompt) + { d.prompt.forEach(function(x){ + prompt.push(encode(x))}); + prompt={t:108,v:prompt}; } else { prompt = nil() }; + var roles = 'roles' in d && d.roles ? bin(d.roles) : nil(); + return tuple(tup,name,module,prompt,roles); } + +function lenserviceTask() { return 5; } +function decserviceTask(d) { + var r={}; r.tup = 'serviceTask'; + r.name = d && d.v[1] ? d.v[1].v : undefined; + r.module = d && d.v[2] ? d.v[2].v : undefined; + r.prompt = []; + (d && d.v[3] && d.v[3].v) ? + d.v[3].v.forEach(function(x){r.prompt.push(decode(x))}) : + r.prompt = undefined; + r.roles = d && d.v[4] ? utf8_arr(d.v[4].v) : undefined; + return clean(r); } + +function encreceiveTask(d) { + var tup = atom('receiveTask'); + var name = 'name' in d && d.name ? atom(d.name) : nil(); + var module = 'module' in d && d.module ? atom(d.module) : nil(); + var prompt = []; if ('prompt' in d && d.prompt) + { d.prompt.forEach(function(x){ + prompt.push(encode(x))}); + prompt={t:108,v:prompt}; } else { prompt = nil() }; + var roles = 'roles' in d && d.roles ? bin(d.roles) : nil(); + return tuple(tup,name,module,prompt,roles); } + +function lenreceiveTask() { return 5; } +function decreceiveTask(d) { + var r={}; r.tup = 'receiveTask'; + r.name = d && d.v[1] ? d.v[1].v : undefined; + r.module = d && d.v[2] ? d.v[2].v : undefined; + r.prompt = []; + (d && d.v[3] && d.v[3].v) ? + d.v[3].v.forEach(function(x){r.prompt.push(decode(x))}) : + r.prompt = undefined; + r.roles = d && d.v[4] ? utf8_arr(d.v[4].v) : undefined; + return clean(r); } + +function encmessageEvent(d) { + var tup = atom('messageEvent'); + var name = 'name' in d && d.name ? atom(d.name) : nil(); + var module = 'module' in d && d.module ? atom(d.module) : nil(); + var prompt = []; if ('prompt' in d && d.prompt) + { d.prompt.forEach(function(x){ + prompt.push(encode(x))}); + prompt={t:108,v:prompt}; } else { prompt = nil() }; + var payload = 'payload' in d && d.payload ? bin(d.payload) : nil(); + var timeout = 'timeout' in d && d.timeout ? encode(d.timeout) : nil(); + return tuple(tup,name,module,prompt,payload,timeout); } + +function lenmessageEvent() { return 6; } +function decmessageEvent(d) { + var r={}; r.tup = 'messageEvent'; + r.name = d && d.v[1] ? d.v[1].v : undefined; + r.module = d && d.v[2] ? d.v[2].v : undefined; + r.prompt = []; + (d && d.v[3] && d.v[3].v) ? + d.v[3].v.forEach(function(x){r.prompt.push(decode(x))}) : + r.prompt = undefined; + r.payload = d && d.v[4] ? utf8_arr(d.v[4].v) : undefined; + r.timeout = d && d.v[5] ? decode(d.v[5]) : undefined; + return clean(r); } + +function encboundaryEvent(d) { + var tup = atom('boundaryEvent'); + var name = 'name' in d && d.name ? atom(d.name) : nil(); + var module = 'module' in d && d.module ? atom(d.module) : nil(); + var prompt = []; if ('prompt' in d && d.prompt) + { d.prompt.forEach(function(x){ + prompt.push(encode(x))}); + prompt={t:108,v:prompt}; } else { prompt = nil() }; + var payload = 'payload' in d && d.payload ? bin(d.payload) : nil(); + var timeout = 'timeout' in d && d.timeout ? encode(d.timeout) : nil(); + var timeDate = 'timeDate' in d && d.timeDate ? bin(d.timeDate) : nil(); + var timeDuration = 'timeDuration' in d && d.timeDuration ? bin(d.timeDuration) : nil(); + var timeCycle = 'timeCycle' in d && d.timeCycle ? bin(d.timeCycle) : nil(); + return tuple(tup,name,module,prompt,payload,timeout,timeDate,timeDuration,timeCycle); } + +function lenboundaryEvent() { return 9; } +function decboundaryEvent(d) { + var r={}; r.tup = 'boundaryEvent'; + r.name = d && d.v[1] ? d.v[1].v : undefined; + r.module = d && d.v[2] ? d.v[2].v : undefined; + r.prompt = []; + (d && d.v[3] && d.v[3].v) ? + d.v[3].v.forEach(function(x){r.prompt.push(decode(x))}) : + r.prompt = undefined; + r.payload = d && d.v[4] ? utf8_arr(d.v[4].v) : undefined; + r.timeout = d && d.v[5] ? decode(d.v[5]) : undefined; + r.timeDate = d && d.v[6] ? utf8_arr(d.v[6].v) : undefined; + r.timeDuration = d && d.v[7] ? utf8_arr(d.v[7].v) : undefined; + r.timeCycle = d && d.v[8] ? utf8_arr(d.v[8].v) : undefined; + return clean(r); } + +function enctimeoutEvent(d) { + var tup = atom('timeoutEvent'); + var name = 'name' in d && d.name ? atom(d.name) : nil(); + var module = 'module' in d && d.module ? atom(d.module) : nil(); + var prompt = []; if ('prompt' in d && d.prompt) + { d.prompt.forEach(function(x){ + prompt.push(encode(x))}); + prompt={t:108,v:prompt}; } else { prompt = nil() }; + var payload = 'payload' in d && d.payload ? bin(d.payload) : nil(); + var timeout = 'timeout' in d && d.timeout ? encode(d.timeout) : nil(); + var timeDate = 'timeDate' in d && d.timeDate ? bin(d.timeDate) : nil(); + var timeDuration = 'timeDuration' in d && d.timeDuration ? bin(d.timeDuration) : nil(); + var timeCycle = 'timeCycle' in d && d.timeCycle ? bin(d.timeCycle) : nil(); + return tuple(tup,name,module,prompt,payload,timeout,timeDate,timeDuration,timeCycle); } + +function lentimeoutEvent() { return 9; } +function dectimeoutEvent(d) { + var r={}; r.tup = 'timeoutEvent'; + r.name = d && d.v[1] ? d.v[1].v : undefined; + r.module = d && d.v[2] ? d.v[2].v : undefined; + r.prompt = []; + (d && d.v[3] && d.v[3].v) ? + d.v[3].v.forEach(function(x){r.prompt.push(decode(x))}) : + r.prompt = undefined; + r.payload = d && d.v[4] ? utf8_arr(d.v[4].v) : undefined; + r.timeout = d && d.v[5] ? decode(d.v[5]) : undefined; + r.timeDate = d && d.v[6] ? utf8_arr(d.v[6].v) : undefined; + r.timeDuration = d && d.v[7] ? utf8_arr(d.v[7].v) : undefined; + r.timeCycle = d && d.v[8] ? utf8_arr(d.v[8].v) : undefined; + return clean(r); } + +function encbeginEvent(d) { + var tup = atom('beginEvent'); + var name = 'name' in d && d.name ? atom(d.name) : nil(); + var module = 'module' in d && d.module ? atom(d.module) : nil(); + var prompt = []; if ('prompt' in d && d.prompt) + { d.prompt.forEach(function(x){ + prompt.push(encode(x))}); + prompt={t:108,v:prompt}; } else { prompt = nil() }; + return tuple(tup,name,module,prompt); } + +function lenbeginEvent() { return 4; } +function decbeginEvent(d) { + var r={}; r.tup = 'beginEvent'; + r.name = d && d.v[1] ? d.v[1].v : undefined; + r.module = d && d.v[2] ? d.v[2].v : undefined; + r.prompt = []; + (d && d.v[3] && d.v[3].v) ? + d.v[3].v.forEach(function(x){r.prompt.push(decode(x))}) : + r.prompt = undefined; + return clean(r); } + +function encendEvent(d) { + var tup = atom('endEvent'); + var name = 'name' in d && d.name ? atom(d.name) : nil(); + var module = 'module' in d && d.module ? atom(d.module) : nil(); + var prompt = []; if ('prompt' in d && d.prompt) + { d.prompt.forEach(function(x){ + prompt.push(encode(x))}); + prompt={t:108,v:prompt}; } else { prompt = nil() }; + return tuple(tup,name,module,prompt); } + +function lenendEvent() { return 4; } +function decendEvent(d) { + var r={}; r.tup = 'endEvent'; + r.name = d && d.v[1] ? d.v[1].v : undefined; + r.module = d && d.v[2] ? d.v[2].v : undefined; + r.prompt = []; + (d && d.v[3] && d.v[3].v) ? + d.v[3].v.forEach(function(x){r.prompt.push(decode(x))}) : + r.prompt = undefined; + return clean(r); } + +function encsequenceFlow(d) { + var tup = atom('sequenceFlow'); + var source = 'source' in d && d.source ? atom(d.source) : nil(); + var target = 'target' in d && d.target ? encode(d.target) : nil(); + return tuple(tup,source,target); } + +function lensequenceFlow() { return 3; } +function decsequenceFlow(d) { + var r={}; r.tup = 'sequenceFlow'; + r.source = d && d.v[1] ? d.v[1].v : undefined; + r.target = d && d.v[2] ? decode(d.v[2]) : undefined; + return clean(r); } + +function enchist(d) { + var tup = atom('hist'); + var id = 'id' in d && d.id ? number(d.id) : nil(); + var container = 'container' in d && d.container ? atom(d.container) : nil(); + var feed_id = 'feed_id' in d && d.feed_id ? encode(d.feed_id) : nil(); + var prev = 'prev' in d && d.prev ? number(d.prev) : nil(); + var next = 'next' in d && d.next ? number(d.next) : nil(); + var feeds = []; if ('feeds' in d && d.feeds) + { d.feeds.forEach(function(x){ + feeds.push(encode(x))}); + feeds={t:108,v:feeds}; } else { feeds = nil() }; + var name = 'name' in d && d.name ? bin(d.name) : nil(); + var task = 'task' in d && d.task ? atom(d.task) : nil(); + var docs = []; if ('docs' in d && d.docs) + { d.docs.forEach(function(x){ + docs.push(encode(x))}); + docs={t:108,v:docs}; } else { docs = nil() }; + var time = 'time' in d && d.time ? encode(d.time) : nil(); + return tuple(tup,id,container,feed_id,prev,next,feeds,name,task,docs,time); } + +function lenhist() { return 11; } +function dechist(d) { + var r={}; r.tup = 'hist'; + r.id = d && d.v[1] ? d.v[1].v : undefined; + r.container = d && d.v[2] ? d.v[2].v : undefined; + r.feed_id = d && d.v[3] ? decode(d.v[3]) : undefined; + r.prev = d && d.v[4] ? d.v[4].v : undefined; + r.next = d && d.v[5] ? d.v[5].v : undefined; + r.feeds = []; + (d && d.v[6] && d.v[6].v) ? + d.v[6].v.forEach(function(x){r.feeds.push(decode(x))}) : + r.feeds = undefined; + r.name = d && d.v[7] ? utf8_arr(d.v[7].v) : undefined; + r.task = d && d.v[8] ? d.v[8].v : undefined; + r.docs = []; + (d && d.v[9] && d.v[9].v) ? + d.v[9].v.forEach(function(x){r.docs.push(decode(x))}) : + r.docs = undefined; + r.time = d && d.v[10] ? decode(d.v[10]) : undefined; + return clean(r); } + +function encprocess(d) { + var tup = atom('process'); + var id = 'id' in d && d.id ? number(d.id) : nil(); + var container = 'container' in d && d.container ? atom(d.container) : nil(); + var feed_id = 'feed_id' in d && d.feed_id ? encode(d.feed_id) : nil(); + var prev = 'prev' in d && d.prev ? number(d.prev) : nil(); + var next = 'next' in d && d.next ? number(d.next) : nil(); + var feeds = []; if ('feeds' in d && d.feeds) + { d.feeds.forEach(function(x){ + feeds.push(encode(x))}); + feeds={t:108,v:feeds}; } else { feeds = nil() }; + var name = 'name' in d && d.name ? bin(d.name) : nil(); + var roles = []; if ('roles' in d && d.roles) + { d.roles.forEach(function(x){ + roles.push(encode(x))}); + roles={t:108,v:roles}; } else { roles = nil() }; + var tasks = []; if ('tasks' in d && d.tasks) + { d.tasks.forEach(function(x){ + tasks.push(encode(x))}); + tasks={t:108,v:tasks}; } else { tasks = nil() }; + var events = []; if ('events' in d && d.events) + { d.events.forEach(function(x){ + events.push(encode(x))}); + events={t:108,v:events}; } else { events = nil() }; + var hist = 'hist' in d && d.hist ? encode(d.hist) : nil(); + var flows = []; if ('flows' in d && d.flows) + { d.flows.forEach(function(x){ + flows.push(encode(x))}); + flows={t:108,v:flows}; } else { flows = nil() }; + var rules = 'rules' in d && d.rules ? encode(d.rules) : nil(); + var docs = []; if ('docs' in d && d.docs) + { d.docs.forEach(function(x){ + docs.push(encode(x))}); + docs={t:108,v:docs}; } else { docs = nil() }; + var options = 'options' in d && d.options ? encode(d.options) : nil(); + var task = 'task' in d && d.task ? atom(d.task) : nil(); + var timer = 'timer' in d && d.timer ? bin(d.timer) : nil(); + var notifications = 'notifications' in d && d.notifications ? encode(d.notifications) : nil(); + var result = 'result' in d && d.result ? bin(d.result) : nil(); + var started = 'started' in d && d.started ? encode(d.started) : nil(); + var beginEvent = 'beginEvent' in d && d.beginEvent ? atom(d.beginEvent) : nil(); + var endEvent = 'endEvent' in d && d.endEvent ? atom(d.endEvent) : nil(); + return tuple(tup,id,container,feed_id,prev,next,feeds,name,roles,tasks,events, + hist,flows,rules,docs,options,task,timer,notifications,result,started,beginEvent,endEvent); } + +function lenprocess() { return 23; } +function decprocess(d) { + var r={}; r.tup = 'process'; + r.id = d && d.v[1] ? d.v[1].v : undefined; + r.container = d && d.v[2] ? d.v[2].v : undefined; + r.feed_id = d && d.v[3] ? decode(d.v[3]) : undefined; + r.prev = d && d.v[4] ? d.v[4].v : undefined; + r.next = d && d.v[5] ? d.v[5].v : undefined; + r.feeds = []; + (d && d.v[6] && d.v[6].v) ? + d.v[6].v.forEach(function(x){r.feeds.push(decode(x))}) : + r.feeds = undefined; + r.name = d && d.v[7] ? utf8_arr(d.v[7].v) : undefined; + r.roles = []; + (d && d.v[8] && d.v[8].v) ? + d.v[8].v.forEach(function(x){r.roles.push(decode(x))}) : + r.roles = undefined; + r.tasks = []; + (d && d.v[9] && d.v[9].v) ? + d.v[9].v.forEach(function(x){r.tasks.push(decode(x))}) : + r.tasks = undefined; + r.events = []; + (d && d.v[10] && d.v[10].v) ? + d.v[10].v.forEach(function(x){r.events.push(decode(x))}) : + r.events = undefined; + r.hist = d && d.v[11] ? decode(d.v[11]) : undefined; + r.flows = []; + (d && d.v[12] && d.v[12].v) ? + d.v[12].v.forEach(function(x){r.flows.push(decode(x))}) : + r.flows = undefined; + r.rules = d && d.v[13] ? decode(d.v[13]) : undefined; + r.docs = []; + (d && d.v[14] && d.v[14].v) ? + d.v[14].v.forEach(function(x){r.docs.push(decode(x))}) : + r.docs = undefined; + r.options = d && d.v[15] ? decode(d.v[15]) : undefined; + r.task = d && d.v[16] ? d.v[16].v : undefined; + r.timer = d && d.v[17] ? utf8_arr(d.v[17].v) : undefined; + r.notifications = d && d.v[18] ? decode(d.v[18]) : undefined; + r.result = d && d.v[19] ? utf8_arr(d.v[19].v) : undefined; + r.started = d && d.v[20] ? decode(d.v[20]) : undefined; + r.beginEvent = d && d.v[21] ? d.v[21].v : undefined; + r.endEvent = d && d.v[22] ? d.v[22].v : undefined; + return clean(r); } + +function enccomplete(d) { + var tup = atom('complete'); + var id = 'id' in d && d.id ? number(d.id) : nil(); + return tuple(tup,id); } + +function lencomplete() { return 2; } +function deccomplete(d) { + var r={}; r.tup = 'complete'; + r.id = d && d.v[1] ? d.v[1].v : undefined; + return clean(r); } + +function encproc(d) { + var tup = atom('proc'); + var id = 'id' in d && d.id ? number(d.id) : nil(); + return tuple(tup,id); } + +function lenproc() { return 2; } +function decproc(d) { + var r={}; r.tup = 'proc'; + r.id = d && d.v[1] ? d.v[1].v : undefined; + return clean(r); } + +function encload(d) { + var tup = atom('load'); + var id = 'id' in d && d.id ? number(d.id) : nil(); + return tuple(tup,id); } + +function lenload() { return 2; } +function decload(d) { + var r={}; r.tup = 'load'; + r.id = d && d.v[1] ? d.v[1].v : undefined; + return clean(r); } + +function enchisto(d) { + var tup = atom('histo'); + var id = 'id' in d && d.id ? number(d.id) : nil(); + return tuple(tup,id); } + +function lenhisto() { return 2; } +function dechisto(d) { + var r={}; r.tup = 'histo'; + r.id = d && d.v[1] ? d.v[1].v : undefined; + return clean(r); } + +function enccreate(d) { + var tup = atom('create'); + var proc = 'proc' in d && d.proc ? encode(d.proc) : nil(); + var docs = []; if ('docs' in d && d.docs) + { d.docs.forEach(function(x){ + docs.push(encode(x))}); + docs={t:108,v:docs}; } else { docs = nil() }; + return tuple(tup,proc,docs); } + +function lencreate() { return 3; } +function deccreate(d) { + var r={}; r.tup = 'create'; + r.proc = d && d.v[1] ? decode(d.v[1]) : undefined; + r.docs = []; + (d && d.v[2] && d.v[2].v) ? + d.v[2].v.forEach(function(x){r.docs.push(decode(x))}) : + r.docs = undefined; + return clean(r); } + +function encamend(d) { + var tup = atom('amend'); + var id = 'id' in d && d.id ? number(d.id) : nil(); + var docs = []; if ('docs' in d && d.docs) + { d.docs.forEach(function(x){ + docs.push(encode(x))}); + docs={t:108,v:docs}; } else { docs = nil() }; + return tuple(tup,id,docs); } + +function lenamend() { return 3; } +function decamend(d) { + var r={}; r.tup = 'amend'; + r.id = d && d.v[1] ? d.v[1].v : undefined; + r.docs = []; + (d && d.v[2] && d.v[2].v) ? + d.v[2].v.forEach(function(x){r.docs.push(decode(x))}) : + r.docs = undefined; + return clean(r); } + function encchain(d) { var tup = atom('chain'); var id = 'id' in d && d.id ? number(d.id) : nil(); @@ -1094,3 +1761,251 @@ function decFakeNumbers(d) { r.created = d && d.v[2] ? d.v[2].v : undefined; return clean(r); } +function enchandler(d) { + var tup = atom('handler'); + var name = 'name' in d && d.name ? atom(d.name) : nil(); + var module = 'module' in d && d.module ? atom(d.module) : nil(); + var class = 'class' in d && d.class ? encode(d.class) : nil(); + var group = 'group' in d && d.group ? atom(d.group) : nil(); + var config = 'config' in d && d.config ? encode(d.config) : nil(); + var state = 'state' in d && d.state ? encode(d.state) : nil(); + var seq = 'seq' in d && d.seq ? encode(d.seq) : nil(); + return tuple(tup,name,module,class,group,config,state,seq); } + +function lenhandler() { return 8; } +function dechandler(d) { + var r={}; r.tup = 'handler'; + r.name = d && d.v[1] ? d.v[1].v : undefined; + r.module = d && d.v[2] ? d.v[2].v : undefined; + r.class = d && d.v[3] ? decode(d.v[3]) : undefined; + r.group = d && d.v[4] ? d.v[4].v : undefined; + r.config = d && d.v[5] ? decode(d.v[5]) : undefined; + r.state = d && d.v[6] ? decode(d.v[6]) : undefined; + r.seq = d && d.v[7] ? decode(d.v[7]) : undefined; + return clean(r); } + +function encpi(d) { + var tup = atom('pi'); + var name = 'name' in d && d.name ? atom(d.name) : nil(); + var sup = 'sup' in d && d.sup ? atom(d.sup) : nil(); + var module = 'module' in d && d.module ? atom(d.module) : nil(); + var state = 'state' in d && d.state ? encode(d.state) : nil(); + return tuple(tup,name,sup,module,state); } + +function lenpi() { return 5; } +function decpi(d) { + var r={}; r.tup = 'pi'; + r.name = d && d.v[1] ? d.v[1].v : undefined; + r.sup = d && d.v[2] ? d.v[2].v : undefined; + r.module = d && d.v[3] ? d.v[3].v : undefined; + r.state = d && d.v[4] ? decode(d.v[4]) : undefined; + return clean(r); } + +function enccx(d) { + var tup = atom('cx'); + var handlers = []; if ('handlers' in d && d.handlers) + { d.handlers.forEach(function(x){ + handlers.push(encode(x))}); + handlers={t:108,v:handlers}; } else { handlers = nil() }; + var actions = []; if ('actions' in d && d.actions) + { d.actions.forEach(function(x){ + actions.push(encode(x))}); + actions={t:108,v:actions}; } else { actions = nil() }; + var req = 'req' in d && d.req ? encode(d.req) : nil(); + var module = 'module' in d && d.module ? atom(d.module) : nil(); + var lang = 'lang' in d && d.lang ? atom(d.lang) : nil(); + var path = 'path' in d && d.path ? bin(d.path) : nil(); + var session = 'session' in d && d.session ? bin(d.session) : nil(); + var formatter = 'formatter' in d && d.formatter ? atom(d.formatter) : nil(); + var params = []; if ('params' in d && d.params) + { d.params.forEach(function(x){ + params.push(encode(x))}); + params={t:108,v:params}; } else { params = nil() }; + var node = 'node' in d && d.node ? atom(d.node) : nil(); + var client_pid = 'client_pid' in d && d.client_pid ? encode(d.client_pid) : nil(); + var state = 'state' in d && d.state ? encode(d.state) : nil(); + var from = 'from' in d && d.from ? bin(d.from) : nil(); + var vsn = 'vsn' in d && d.vsn ? bin(d.vsn) : nil(); + return tuple(tup,handlers,actions,req,module,lang,path,session,formatter,params,node, + client_pid,state,from,vsn); } + +function lencx() { return 15; } +function deccx(d) { + var r={}; r.tup = 'cx'; + r.handlers = []; + (d && d.v[1] && d.v[1].v) ? + d.v[1].v.forEach(function(x){r.handlers.push(decode(x))}) : + r.handlers = undefined; + r.actions = []; + (d && d.v[2] && d.v[2].v) ? + d.v[2].v.forEach(function(x){r.actions.push(decode(x))}) : + r.actions = undefined; + r.req = d && d.v[3] ? decode(d.v[3]) : undefined; + r.module = d && d.v[4] ? d.v[4].v : undefined; + r.lang = d && d.v[5] ? d.v[5].v : undefined; + r.path = d && d.v[6] ? utf8_arr(d.v[6].v) : undefined; + r.session = d && d.v[7] ? utf8_arr(d.v[7].v) : undefined; + r.formatter = d && d.v[8] ? decode(d.v[8]) : undefined; + r.params = []; + (d && d.v[9] && d.v[9].v) ? + d.v[9].v.forEach(function(x){r.params.push(decode(x))}) : + r.params = undefined; + r.node = d && d.v[10] ? d.v[10].v : undefined; + r.client_pid = d && d.v[11] ? decode(d.v[11]) : undefined; + r.state = d && d.v[12] ? decode(d.v[12]) : undefined; + r.from = d && d.v[13] ? utf8_arr(d.v[13].v) : undefined; + r.vsn = d && d.v[14] ? utf8_arr(d.v[14].v) : undefined; + return clean(r); } + +function encbin(d) { + var tup = atom('bin'); + var data = 'data' in d && d.data ? encode(d.data) : nil(); + return tuple(tup,data); } + +function lenbin() { return 2; } +function decbin(d) { + var r={}; r.tup = 'bin'; + r.data = d && d.v[1] ? decode(d.v[1]) : undefined; + return clean(r); } + +function encclient(d) { + var tup = atom('client'); + var data = 'data' in d && d.data ? encode(d.data) : nil(); + return tuple(tup,data); } + +function lenclient() { return 2; } +function decclient(d) { + var r={}; r.tup = 'client'; + r.data = d && d.v[1] ? decode(d.v[1]) : undefined; + return clean(r); } + +function encserver(d) { + var tup = atom('server'); + var data = 'data' in d && d.data ? encode(d.data) : nil(); + return tuple(tup,data); } + +function lenserver() { return 2; } +function decserver(d) { + var r={}; r.tup = 'server'; + r.data = d && d.v[1] ? decode(d.v[1]) : undefined; + return clean(r); } + +function encinit(d) { + var tup = atom('init'); + var token = 'token' in d && d.token ? encode(d.token) : nil(); + return tuple(tup,token); } + +function leninit() { return 2; } +function decinit(d) { + var r={}; r.tup = 'init'; + r.token = d && d.v[1] ? decode(d.v[1]) : undefined; + return clean(r); } + +function encpickle(d) { + var tup = atom('pickle'); + var source = 'source' in d && d.source ? encode(d.source) : nil(); + var pickled = 'pickled' in d && d.pickled ? encode(d.pickled) : nil(); + var args = 'args' in d && d.args ? encode(d.args) : nil(); + return tuple(tup,source,pickled,args); } + +function lenpickle() { return 4; } +function decpickle(d) { + var r={}; r.tup = 'pickle'; + r.source = d && d.v[1] ? decode(d.v[1]) : undefined; + r.pickled = d && d.v[2] ? decode(d.v[2]) : undefined; + r.args = d && d.v[3] ? decode(d.v[3]) : undefined; + return clean(r); } + +function encflush(d) { + var tup = atom('flush'); + var data = 'data' in d && d.data ? encode(d.data) : nil(); + return tuple(tup,data); } + +function lenflush() { return 2; } +function decflush(d) { + var r={}; r.tup = 'flush'; + r.data = d && d.v[1] ? decode(d.v[1]) : undefined; + return clean(r); } + +function encdirect(d) { + var tup = atom('direct'); + var data = 'data' in d && d.data ? encode(d.data) : nil(); + return tuple(tup,data); } + +function lendirect() { return 2; } +function decdirect(d) { + var r={}; r.tup = 'direct'; + r.data = d && d.v[1] ? decode(d.v[1]) : undefined; + return clean(r); } + +function encev(d) { + var tup = atom('ev'); + var module = 'module' in d && d.module ? encode(d.module) : nil(); + var msg = 'msg' in d && d.msg ? encode(d.msg) : nil(); + var trigger = 'trigger' in d && d.trigger ? encode(d.trigger) : nil(); + var name = 'name' in d && d.name ? encode(d.name) : nil(); + return tuple(tup,module,msg,trigger,name); } + +function lenev() { return 5; } +function decev(d) { + var r={}; r.tup = 'ev'; + r.module = d && d.v[1] ? decode(d.v[1]) : undefined; + r.msg = d && d.v[2] ? decode(d.v[2]) : undefined; + r.trigger = d && d.v[3] ? decode(d.v[3]) : undefined; + r.name = d && d.v[4] ? decode(d.v[4]) : undefined; + return clean(r); } + +function encftp(d) { + var tup = atom('ftp'); + var id = 'id' in d && d.id ? encode(d.id) : nil(); + var sid = 'sid' in d && d.sid ? encode(d.sid) : nil(); + var filename = 'filename' in d && d.filename ? encode(d.filename) : nil(); + var meta = 'meta' in d && d.meta ? encode(d.meta) : nil(); + var size = 'size' in d && d.size ? encode(d.size) : nil(); + var offset = 'offset' in d && d.offset ? encode(d.offset) : nil(); + var block = 'block' in d && d.block ? encode(d.block) : nil(); + var data = 'data' in d && d.data ? encode(d.data) : nil(); + var status = 'status' in d && d.status ? encode(d.status) : nil(); + return tuple(tup,id,sid,filename,meta,size,offset,block,data,status); } + +function lenftp() { return 10; } +function decftp(d) { + var r={}; r.tup = 'ftp'; + r.id = d && d.v[1] ? decode(d.v[1]) : undefined; + r.sid = d && d.v[2] ? decode(d.v[2]) : undefined; + r.filename = d && d.v[3] ? decode(d.v[3]) : undefined; + r.meta = d && d.v[4] ? decode(d.v[4]) : undefined; + r.size = d && d.v[5] ? decode(d.v[5]) : undefined; + r.offset = d && d.v[6] ? decode(d.v[6]) : undefined; + r.block = d && d.v[7] ? decode(d.v[7]) : undefined; + r.data = d && d.v[8] ? decode(d.v[8]) : undefined; + r.status = d && d.v[9] ? decode(d.v[9]) : undefined; + return clean(r); } + +function encftpack(d) { + var tup = atom('ftpack'); + var id = 'id' in d && d.id ? encode(d.id) : nil(); + var sid = 'sid' in d && d.sid ? encode(d.sid) : nil(); + var filename = 'filename' in d && d.filename ? encode(d.filename) : nil(); + var meta = 'meta' in d && d.meta ? encode(d.meta) : nil(); + var size = 'size' in d && d.size ? encode(d.size) : nil(); + var offset = 'offset' in d && d.offset ? encode(d.offset) : nil(); + var block = 'block' in d && d.block ? encode(d.block) : nil(); + var data = 'data' in d && d.data ? encode(d.data) : nil(); + var status = 'status' in d && d.status ? encode(d.status) : nil(); + return tuple(tup,id,sid,filename,meta,size,offset,block,data,status); } + +function lenftpack() { return 10; } +function decftpack(d) { + var r={}; r.tup = 'ftpack'; + r.id = d && d.v[1] ? decode(d.v[1]) : undefined; + r.sid = d && d.v[2] ? decode(d.v[2]) : undefined; + r.filename = d && d.v[3] ? decode(d.v[3]) : undefined; + r.meta = d && d.v[4] ? decode(d.v[4]) : undefined; + r.size = d && d.v[5] ? decode(d.v[5]) : undefined; + r.offset = d && d.v[6] ? decode(d.v[6]) : undefined; + r.block = d && d.v[7] ? decode(d.v[7]) : undefined; + r.data = d && d.v[8] ? decode(d.v[8]) : undefined; + r.status = d && d.v[9] ? decode(d.v[9]) : undefined; + return clean(r); } + diff --git a/apps/roster/src/protocol/roster_link.erl b/apps/roster/src/protocol/roster_link.erl index 87f933d546ac3967d6850864b2b1e922714d7610..fd53f53cbe428b92a009fa7e8cbfda5d188bbd36 100644 --- a/apps/roster/src/protocol/roster_link.erl +++ b/apps/roster/src/protocol/roster_link.erl @@ -24,8 +24,7 @@ info(#'Link'{id = LinkId, type = group, status = join = LStatus} = RequestData, {#'Member'{}, [], #'Room'{} = Room1} = roster:add_member(Room, Member, {no_muc_message, Room#'Room'.readers}), {As, Ms} = roster:split_members(roster:members(#muc{name = Room1#'Room'.id}, presence)), - #'Room'{} = Room2 = roster:reader_cache(Room1#'Room'{status = join, last_msg = LastMsg, unread = UnreadMsg, members = Ms, admins = As}), - ok_code(Room2); + roster:reader_cache(Room1#'Room'{status = join, last_msg = LastMsg, unread = UnreadMsg, members = Ms, admins = As}); #error{code = not_found} = Err -> Err end, roster:info(?MODULE, "Link/~p.Response:~p", [Res, LStatus]), @@ -51,7 +50,7 @@ info(#'Link'{id = LinkId, type = group, status = get = LStatus} = RequestData, roster:info(?MODULE, "~p:Link/~p:~p", [ClientId, LStatus, RequestData]), Res = case get_room_by_link_id(LinkId) of #ok{code = #'Room'{} = Room} -> - #ok{code = Room#'Room'{status = info}}; + Room#'Room'{status = info}; #error{code = not_found} = Err -> Err end, roster:info(?MODULE, "Link/~p.Response:~p", [Res, LStatus]), @@ -101,7 +100,7 @@ update_link(RoomId, #'Link'{id = LinkId}) -> ok = kvs:put(Room#'Room'{links = Links1}), ok = kvs:delete('Link', LinkId), ok = kvs:put(NewLink), - ok_code(NewLink); + NewLink; false -> #error{code = invalid_data} end; #error{code = not_found} = Err -> Err diff --git a/apps/roster/src/test/room_test.erl b/apps/roster/src/test/room_test.erl index 96f1a2de5f2ff7dba447fa4e3be1bf215bf2a9da..2711669a756e654fa720a2d173d918e603026127 100644 --- a/apps/roster/src/test/room_test.erl +++ b/apps/roster/src/test/room_test.erl @@ -127,10 +127,10 @@ link() -> %% Get the room link by RoomId #ok{code = #'Room'{links = [#'Link'{id = LinkId}]}} = kvs:get('Room', Room), %% Assert linkId by Link get request - #ok{code = #'Room'{links = [#'Link'{id = LinkId}], readers = [_ | _]}} = + #'Room'{links = [#'Link'{id = LinkId}], readers = [_ | _]} = roster_client:send_receive(AClientId, 1, #'Link'{id = LinkId, type = group, status = get}), %% Update the link from the administrator and compare it with the old one. - #ok{code = #'Link'{id = LinkId}} /= roster_client:send_receive(AClientId, 1, #'Link'{id = LinkId, name = Room, type = group, status = update}), + #'Link'{id = LinkId} /= roster_client:send_receive(AClientId, 1, #'Link'{id = LinkId, name = Room, type = group, status = update}), %%add member with message size roster:purge_user(FPhone = <<"6789000">>), {FClientId, FToken} = roster_client:reg_fake_user(FPhone), @@ -223,15 +223,15 @@ test_joinlink() -> {error, not_found} = roster_client:send_receive(BClientId, 1, Link#'Link'{id = ?BLANK_LINK, status = get}), %% Test: try to get room info; correct room link; admin - {ok, #'Room'{id = RoomId, links = [#'Link'{id = LinkId}], status = info}} = + #'Room'{id = RoomId, links = [#'Link'{id = LinkId}], status = info} = roster_client:send_receive(BClientId, 1, Link#'Link'{status = get}), %% Test: try to get room info; correct room link; not room member - {ok, #'Room'{id = RoomId, links = [#'Link'{id = LinkId}], status = info}} = + #'Room'{id = RoomId, links = [#'Link'{id = LinkId}], status = info} = roster_client:send_receive(DClientId, 1, Link#'Link'{status = get}), %% Test: join room - {ok, #'Room'{id = RoomId, status = join} = Room1} = + #'Room'{id = RoomId, status = join} = Room1 = roster_client:send_receive(DClientId, 1, Link#'Link'{status = join}), % Check if new member is added true = lists:keymember(DPhoneId, #'Member'.phone_id, Room1#'Room'.members), @@ -242,16 +242,16 @@ test_joinlink() -> %% Test: try to update room link; non room member {error, invalid_data} = roster_client:send_receive(EClientId, 1, Link#'Link'{status = update}), %% Test: try to update room link; room member, admin - {ok, #'Link'{name = RoomId} = Link1} = roster_client:send_receive(BClientId, 1, Link#'Link'{status = update}), + #'Link'{name = RoomId} = Link1 = roster_client:send_receive(BClientId, 1, Link#'Link'{status = update}), %% Test: try to get room info; correct room link; - {ok, #'Room'{id = RoomId, links = [Link1], status = info}} = + #'Room'{id = RoomId, links = [Link1], status = info} = roster_client:send_receive(EClientId, 1, Link1#'Link'{status = get}), %% Test: try to update room link; non-existent link, room member, admin {error, invalid_data} = roster_client:send_receive(BClientId, 1, Link#'Link'{status = update}), %% Test: join room; non-existent link, non room member {error, not_found} = roster_client:send_receive(EClientId, 1, Link#'Link'{status = join}), %% Test: join room; non room member - {ok, #'Room'{id = RoomId, links = [Link1], status = join} = Room2} = + #'Room'{id = RoomId, links = [Link1], status = join} = Room2 = roster_client:send_receive(EClientId, 1, Link1#'Link'{status = join}), % Check if new member is added true = lists:keymember(EPhoneId, #'Member'.phone_id, Room2#'Room'.members),