[ 
https://issues.apache.org/jira/browse/THRIFT-3773?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15519588#comment-15519588
 ] 

ASF GitHub Bot commented on THRIFT-3773:
----------------------------------------

Github user apocolipse commented on a diff in the pull request:

    https://github.com/apache/thrift/pull/1084#discussion_r80368238
  
    --- Diff: lib/swift/Sources/TMultiplexedProtocol.swift ---
    @@ -0,0 +1,47 @@
    +/*
    +* Licensed to the Apache Software Foundation (ASF) under one
    +* or more contributor license agreements. See the NOTICE file
    +* distributed with this work for additional information
    +* regarding copyright ownership. The ASF licenses this file
    +* to you under the Apache License, Version 2.0 (the
    +* "License"); you may not use this file except in compliance
    +* with the License. You may obtain a copy of the License at
    +*
    +*   http://www.apache.org/licenses/LICENSE-2.0
    +*
    +* Unless required by applicable law or agreed to in writing,
    +* software distributed under the License is distributed on an
    +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    +* KIND, either express or implied. See the License for the
    +* specific language governing permissions and limitations
    +* under the License.
    +*/
    +
    +public class TMultiplexedProtocol<Protocol: TProtocol>: 
TWrappedProtocol<Protocol> {
    +  public let separator = ":"
    +
    +  public var serviceName = ""
    +  
    +  public convenience init(on transport: TTransport, serviceName: String) {
    +    self.init(on: transport)
    +    self.serviceName = serviceName    
    +  }
    +
    +  override public func writeMessageBegin(name: String,
    +                                         type messageType: TMessageType,
    +                                         sequenceID: Int32) throws {
    +    switch messageType {
    +    case .call, .oneway:
    +      var serviceFunction = serviceName
    +      serviceFunction += serviceName == "" ? "" : separator
    +      serviceFunction += name
    +      return try super.writeMessageBegin(name: serviceFunction,
    +                                         type: messageType,
    +                                         sequenceID: sequenceID)
    +    default:
    --- End diff --
    
    That would require redundantly duplicated code.  Semantically this is just 
"If call or oneway, pad the message call, otherwise forward it through"


> Swift Library
> -------------
>
>                 Key: THRIFT-3773
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3773
>             Project: Thrift
>          Issue Type: New Feature
>          Components: Swift - Library
>            Reporter: Thomas Bartelmess
>
> We already have the option to generate Swift code in the Cocoa compiler, 
> however large parts of the (Objective-C) Cocoa Library still depend on Cocoa 
> and  Objective-C.
> It would be good to have a native Swift library that doesn't depend on the 
> Cocoa libraries.
> Design goals:
> - Fully compatible with the code that is currently generated by the Cocoa 
> compiler (both Objective-C and Swift).
> - Ability to run on Linux
> - Pure Swift, no Objective-C code.
> - No dependencies on closed source apple libraries
> - Keep the same interface, so that the library is compatible with the code 
> the current cocoa compiler generates
> - Better server support that the current Objective-C library.
> - Follow the new Swift packaging format to be compatible with the Swift 
> Package manager



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to