;ELC ;;; Compiled ;;; in Emacs version 26.3 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\207" [require cl-lib zeroconf rudel-backend rudel-session-initiation] 2) #@44 Version of the Zeroconf backend for Rudel. (defconst rudel-zeroconf-version '(0 2) (#$ . 542)) #@114 Service types used by Rudel backends. Each element is of the form (SERVICE TRANSPORT-BACKEND PROTOCOL-BACKEND). (defvar rudel-zeroconf-service-types nil (#$ . 644)) (byte-code "\300\301\302\303#\210\300\304\305\306#\210\300\307\310\311#\207" [defalias rudel-zeroconf-service-type car "Return type of service." rudel-zeroconf-transport-backend cadr "Return transport backend associated with service type." rudel-zeroconf-protocol-backend cl-third "Return protocol backend associated with service type."] 4) #@67 Return the Zeroconf service type used by BACKEND. (fn KEY WHICH) (defalias 'rudel-zeroconf-service #[514 "\301\302\303\304=\203\305\202\306&\207" [rudel-zeroconf-service-types cl-find :key :test rudel-zeroconf-service-type string= eq] 10 (#$ . 1157)]) #@315 Add an entry for TYPE with TRANSPORT-BACKEND and PROTOCOL-BACKEND to the list of service types. TRANSPORT-BACKEND is the name of the transport backend handling the service type TYPE. PROTOCOL-BACKEND is the name of the protocol backend handling the service type TYPE. (fn TYPE TRANSPORT-BACKEND PROTOCOL-BACKEND) (defalias 'rudel-zeroconf-register-service #[771 "E\211\235\203\202\211B\211\207" [rudel-zeroconf-service-types] 6 (#$ . 1427)]) (byte-code "\300\301!\210\302 \210\303\304\305\306!\"\210\303\307\310\306!\"\210\303\311\307\"\210\312\311\313\314#\210\315\306\316\307#\317\306\320\321\322$\207" [message "Initializing Zeroconf ..." zeroconf-init defalias rudel-zeroconf-backend-p eieio-make-class-predicate rudel-zeroconf-backend rudel-zeroconf-backend--eieio-childp eieio-make-child-predicate rudel-zeroconf-backend-child-p make-obsolete "use (cl-typep ... \\='rudel-zeroconf-backend) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (rudel-session-initiation-backend) ((capabilities :initform (discover advertise)) (priority :initform primary)) (:documentation "")] 6) #@79 Create a new object of class type `rudel-zeroconf-backend'. (fn &rest SLOTS) (defalias 'rudel-zeroconf-backend #[128 "\300\301\302#\207" [apply make-instance rudel-zeroconf-backend] 5 (#$ . 2557)]) (byte-code "\300\301\302\303#\300\207" [function-put rudel-zeroconf-backend compiler-macro rudel-zeroconf-backend--anon-cmacro] 4) #@26 (fn WHOLE &rest SLOTS) (defalias 'rudel-zeroconf-backend--anon-cmacro #[385 "\211@;\204\207\300\301\302@@#@\303@DABB\"\207" [macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 7 (#$ . 2894)]) (byte-code "\300\301\302\303\304\305%\210\300\306\302\307\302\310%\210\300\311\302\312\302\313%\210\300\314\302\315\302\316%\207" [cl-generic-define-method initialize-instance nil ((this rudel-zeroconf-backend) _slots) t #[771 " \210\301\302#\207" [rudel-zeroconf-version eieio-oset :version] 7 "Initialize slots of THIS with SLOTS.\n\n(fn CL--CNM THIS SLOTS)"] rudel-discover ((_this rudel-zeroconf-backend)) #[257 "\301\302\303\304\301\305\306\307\301\310\"\"\"\"\"\207" [rudel-zeroconf-service-types mapcar rudel-zeroconf-service->plist cl-remove-if null zeroconf-resolve-service apply append rudel-zeroconf-services] 12 "Return a list of session information property lists for Zeroconf-advertised sessions.\n\n(fn THIS)"] rudel-advertise ((_this rudel-session-initiation-backend) info) #[514 "\300\301\"\300\302\"\300\303\"\300\304\"\300\305\"\300\306\"\203.\307\310 &\210\266\311\207" [plist-get :name :transport-backend :protocol-backend :host :port :data apply rudel-zeroconf-publish t] 16 "Use Zeroconf to advertise the session described by INFO to other users.\n\n(fn THIS INFO)"] rudel-withdraw ((_this rudel-session-initiation-backend)) #[257 "\300\301!\207" [error "Not implemented, yet"] 3 "Withdraw Zeroconf record.\n\n(fn THIS)"]] 6) #@51 List Zeroconf services for BACKEND. (fn SERVICE) (defalias 'rudel-zeroconf-services #[257 "\300\301!!\207" [zeroconf-list-services rudel-zeroconf-service-type] 4 (#$ . 4410)]) #@70 Check whether there are Zeroconf services for BACKEND. (fn SERVICE) (defalias 'rudel-zeroconf-services-present-p #[257 "\300!\207" [rudel-zeroconf-services] 3 (#$ . 4594)]) #@148 Publish PROTOCOL-BACKEND over TRANSPORT-BACKEND service NAME for HOST and PORT. (fn TRANSPORT-BACKEND PROTOCOL-BACKEND NAME HOST PORT &rest DATA) (defalias 'rudel-zeroconf-publish #[1413 "\300\301\"\211\205\302\303!\304\305P\306\307\310\n\"&\207" [rudel-zeroconf-service rudel-zeroconf-protocol-backend zeroconf-publish-service rudel-zeroconf-service-type "local" ".local" "" mapcar #[257 "\211@\300AQ\207" ["="] 4 "\n\n(fn ITEM)"]] 17 (#$ . 4776)]) #@55 Withdraw service NAME for BACKEND. (fn BACKEND NAME) (defalias 'rudel-zeroconf-withdraw #[514 "\300\301!\207" [error "Not implemented, yet"] 4 (#$ . 5246)]) #@75 Convert a Zeroconf service record to an info property list. (fn SERVICE) (defalias 'rudel-zeroconf-service->plist #[257 "\300!\301\302!!\303\304\"\305\306\307\310!\"\311\312\313\314!\"\315\312\316\317!\"\320\321 !\322\323 !\324\211 \235?\206>\325 \324\"\326\230\257\f\207" [zeroconf-service-type rudel-zeroconf-parse-txt-record zeroconf-service-txt rudel-zeroconf-service rudel-zeroconf-service-type :name format "Zeroconf advertised session \"%s\"" zeroconf-service-name :transport-backend rudel-backend-get transport rudel-zeroconf-transport-backend :protocol-backend protocol rudel-zeroconf-protocol-backend :host zeroconf-service-host :port zeroconf-service-port :encryption plist-get "yes"] 18 (#$ . 5410)]) #@68 Parse RECORD into a property list of keys and values. (fn RECORD) (defalias 'rudel-zeroconf-parse-txt-record #[257 "\300\301\302\303\"\"\207" [apply append mapcar #[257 "\300\301\"\211@A\211@A\302\303P!D\266\202\207" [split-string "=" intern ":"] 11 "\n\n(fn ENTRY)"]] 6 (#$ . 6144)]) #@69 Retrieve services for BACKEND and read one from user. (fn BACKEND) (defalias 'rudel-zeroconf-read-service #[257 "\300!\301\302\303\304\"\305\306$\307\310\304\311\312&\313!\314!\315!D\207" [rudel-zeroconf-services completing-read "Service: " mapcar zeroconf-service-name nil t cl-find :key :test string= zeroconf-resolve-service zeroconf-service-host zeroconf-service-port] 10 (#$ . 6444)]) (byte-code "\300\301\302!\303\304#\210\305\306!\207" [rudel-add-backend rudel-backend-get-factory session-initiation zeroconf rudel-zeroconf-backend provide rudel-zeroconf] 4)