Code generate Swift wrappers for protocol buffers.
This commit is contained in:
parent
937ae24556
commit
2b05bbc0aa
|
@ -293,12 +293,13 @@ public enum %s: Error {
|
||||||
|
|
||||||
|
|
||||||
class MessageField:
|
class MessageField:
|
||||||
def __init__(self, name, index, rules, proto_type, default_value):
|
def __init__(self, name, index, rules, proto_type, default_value, sort_index):
|
||||||
self.name = name
|
self.name = name
|
||||||
self.index = index
|
self.index = index
|
||||||
self.rules = rules
|
self.rules = rules
|
||||||
self.proto_type = proto_type
|
self.proto_type = proto_type
|
||||||
self.default_value = default_value
|
self.default_value = default_value
|
||||||
|
self.sort_index = sort_index
|
||||||
|
|
||||||
|
|
||||||
class MessageContext(BaseContext):
|
class MessageContext(BaseContext):
|
||||||
|
@ -315,8 +316,10 @@ class MessageContext(BaseContext):
|
||||||
|
|
||||||
self.field_map = {}
|
self.field_map = {}
|
||||||
|
|
||||||
def fields(self):
|
def fields(self):
|
||||||
return self.field_map.values()
|
fields = self.field_map.values()
|
||||||
|
fields = sorted(fields, key=lambda f: f.sort_index)
|
||||||
|
return fields
|
||||||
|
|
||||||
def field_indices(self):
|
def field_indices(self):
|
||||||
return [field.index for field in self.fields()]
|
return [field.index for field in self.fields()]
|
||||||
|
@ -685,7 +688,8 @@ def parse_message(args, proto_file_path, parser, parent_context, message_name):
|
||||||
# print '# message:', message_name
|
# print '# message:', message_name
|
||||||
|
|
||||||
context = MessageContext(args, parent_context, message_name)
|
context = MessageContext(args, parent_context, message_name)
|
||||||
|
|
||||||
|
sort_index = 0
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
line = parser.next()
|
line = parser.next()
|
||||||
|
@ -753,8 +757,10 @@ def parse_message(args, proto_file_path, parser, parent_context, message_name):
|
||||||
raise Exception('Duplicate message field index[%s]: %s' % (proto_file_path, item_name))
|
raise Exception('Duplicate message field index[%s]: %s' % (proto_file_path, item_name))
|
||||||
# context.field_indices.add(item_index)
|
# context.field_indices.add(item_index)
|
||||||
|
|
||||||
context.field_map[item_index] = MessageField(item_name, item_index, item_rules, item_type, item_default)
|
context.field_map[item_index] = MessageField(item_name, item_index, item_rules, item_type, item_default, sort_index)
|
||||||
|
|
||||||
|
sort_index = sort_index + 1
|
||||||
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
raise Exception('Invalid message syntax[%s]: %s' % (proto_file_path, line))
|
raise Exception('Invalid message syntax[%s]: %s' % (proto_file_path, line))
|
||||||
|
|
|
@ -134,7 +134,7 @@ public class MessageFetcherJob: NSObject {
|
||||||
let legacyMessage: Data? = try params.optionalBase64EncodedData(key: "message")
|
let legacyMessage: Data? = try params.optionalBase64EncodedData(key: "message")
|
||||||
let content: Data? = try params.optionalBase64EncodedData(key: "content")
|
let content: Data? = try params.optionalBase64EncodedData(key: "content")
|
||||||
|
|
||||||
return SSKProtoEnvelope(type: type, relay: nil, source: source, timestamp: UInt64(timestamp), sourceDevice: sourceDevice, legacyMessage: legacyMessage, content: content)
|
return SSKProtoEnvelope(type: type, source: source, sourceDevice: sourceDevice, relay: nil, timestamp: UInt64(timestamp), legacyMessage: legacyMessage, content: content)
|
||||||
} catch {
|
} catch {
|
||||||
owsFail("\(self.logTag) in \(#function) error building envelope: \(error)")
|
owsFail("\(self.logTag) in \(#function) error building envelope: \(error)")
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -3392,10 +3392,10 @@ typedef OWSContact * (^OWSContactBlock)(YapDatabaseReadWriteTransaction *transac
|
||||||
|
|
||||||
|
|
||||||
SSKProtoEnvelope *envelope = [[SSKProtoEnvelope alloc] initWithType:SSKProtoEnvelopeTypeCiphertext
|
SSKProtoEnvelope *envelope = [[SSKProtoEnvelope alloc] initWithType:SSKProtoEnvelopeTypeCiphertext
|
||||||
relay:nil
|
|
||||||
source:source
|
source:source
|
||||||
timestamp:timestamp
|
|
||||||
sourceDevice:1
|
sourceDevice:1
|
||||||
|
relay:nil
|
||||||
|
timestamp:timestamp
|
||||||
legacyMessage:nil
|
legacyMessage:nil
|
||||||
content:nil];
|
content:nil];
|
||||||
return envelope;
|
return envelope;
|
||||||
|
@ -3891,10 +3891,10 @@ typedef OWSContact * (^OWSContactBlock)(YapDatabaseReadWriteTransaction *transac
|
||||||
NSData *content = plaintextData;
|
NSData *content = plaintextData;
|
||||||
|
|
||||||
SSKProtoEnvelope *envelope = [[SSKProtoEnvelope alloc] initWithType:envelopeType
|
SSKProtoEnvelope *envelope = [[SSKProtoEnvelope alloc] initWithType:envelopeType
|
||||||
relay:nil
|
|
||||||
source:source
|
source:source
|
||||||
timestamp:timestamp
|
|
||||||
sourceDevice:sourceDevice
|
sourceDevice:sourceDevice
|
||||||
|
relay:nil
|
||||||
|
timestamp:timestamp
|
||||||
legacyMessage:nil
|
legacyMessage:nil
|
||||||
content:content];
|
content:content];
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue