Engine.swift 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. //////////////////////////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Engine.swift
  4. // Starscream
  5. //
  6. // Created by Dalton Cherry on 6/15/19
  7. // Copyright © 2019 Vluxe. All rights reserved.
  8. //
  9. // Licensed under the Apache License, Version 2.0 (the "License");
  10. // you may not use this file except in compliance with the License.
  11. // You may obtain a copy of the License at
  12. //
  13. // http://www.apache.org/licenses/LICENSE-2.0
  14. //
  15. // Unless required by applicable law or agreed to in writing, software
  16. // distributed under the License is distributed on an "AS IS" BASIS,
  17. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  18. // See the License for the specific language governing permissions and
  19. // limitations under the License.
  20. //
  21. //////////////////////////////////////////////////////////////////////////////////////////////////
  22. import Foundation
  23. public protocol EngineDelegate: AnyObject {
  24. func didReceive(event: WebSocketEvent)
  25. }
  26. public protocol Engine {
  27. func register(delegate: EngineDelegate)
  28. func start(request: URLRequest)
  29. func stop(closeCode: UInt16)
  30. func forceStop()
  31. func write(data: Data, opcode: FrameOpCode, completion: (() -> ())?)
  32. func write(string: String, completion: (() -> ())?)
  33. }