@class NSString, NSMutableDictionary, NSXPCConnection, NSObject, COClusterRoleMonitor; @protocol COClusterRoleMonitorConnectionProvider, COMessageChannelConnectionProvider, OS_dispatch_queue; @interface COMessageChannel : NSObject <COMessageChannelClientInterface> { struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _lock; NSObject<OS_dispatch_queue> *_workQueue; BOOL _activated; unsigned int _baseRequestID; } @property (readonly, copy, nonatomic) NSString *clusterLabel; @property (weak, nonatomic) NSXPCConnection *lastConnection; @property (nonatomic) unsigned long long sendLimit; @property (nonatomic) unsigned long long receiveLimit; @property (retain, nonatomic) NSMutableDictionary *sessionProducers; @property (retain, nonatomic) NSMutableDictionary *sessionConsumers; @property (retain, nonatomic) NSMutableDictionary *sessionsInflight; @property (copy, nonatomic) COClusterRoleMonitor *clusterRoleMonitor; @property (retain, nonatomic) NSMutableDictionary *roleSnapshotsCache; @property (retain, nonatomic) NSMutableDictionary *outstandingRequests; @property (copy, nonatomic) id /* block */ recorder; @property (retain, nonatomic) NSMutableDictionary *requestHandlers; @property (readonly, nonatomic) id<COMessageChannelConnectionProvider> provider; @property (readonly, nonatomic) id<COClusterRoleMonitorConnectionProvider> roleMonitorConnectionProvider; @property (readonly, copy, nonatomic) NSString *topic; @property (readonly, copy, nonatomic) id cluster; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (void)_activateWithCompletion:(id /* block */)a0; - (void)dealloc; - (void)activateWithCompletion:(id /* block */)a0; - (void).cxx_destruct; - (id)_remoteInterfaceWithErrorHandler:(id /* block */)a0; - (void)_lostConnectionToService; - (void)_withLock:(id /* block */)a0; - (id)copyWithZone:(struct _NSZone { } *)a0; - (void)registerHandler:(id /* block */)a0 forRequestClass:(Class)a1; - (void)addSessionProducerWithSubTopic:(id)a0 delegate:(id)a1 dispatchQueue:(id)a2; - (id)initWithTopic:(id)a0 cluster:(id)a1; - (void)_broadcastRequest:(id)a0 type:(id)a1 recipientsCallback:(id /* block */)a2 responseCompletionHandler:(id /* block */)a3; - (void)_callbackProducersAndConsumersAfterActivationWithError:(id)a0; - (void)_deliverDidEndDelegateForSession:(id)a0 notice:(id)a1 initiator:(id)a2 error:(id)a3; - (void)_deliverDidFailToStartSessionWithMember:(id)a0 producer:(id)a1 error:(id)a2; - (void)_deliverFailedToStartSessionWithMember:(id)a0 consumer:(id)a1 error:(id)a2; - (void)_deliverSuccessfullyStartedSession:(id)a0 withMember:(id)a1 consumer:(id)a2; - (void)_deliverSuccessfullyStartedSession:(id)a0 withResponse:(id)a1 withMember:(id)a2 producer:(id)a3; - (unsigned int)_generateRequestID; - (void)_handleAddedMembers:(id)a0; - (void)_handleCapableCommand:(id)a0 fromMember:(id)a1 callback:(id /* block */)a2; - (void)_handleRemovedMembers:(id)a0; - (void)_handleStartCommand:(id)a0 withMember:(id)a1 callback:(id /* block */)a2; - (void)_handleStopCommand:(id)a0 fromMember:(id)a1 callback:(id /* block */)a2; - (void)_invokeResponseCallbackForInfo:(id)a0 snapshot:(id)a1 response:(id)a2 error:(id)a3; - (Class)_payloadClassFromType:(id)a0; - (id)_payloadTypeFromClass:(Class)a0; - (void)_sendRequest:(id)a0 type:(id)a1 members:(id)a2 withCompletionHandler:(id /* block */)a3; - (void)_setupClusterMonitor; - (void)_startSessionWithProducer:(id)a0 member:(id)a1; - (void)_startSessionWithProducer:(id)a0 member:(id)a1 request:(id)a2; - (void)_submitMetricsForActivationCompletionWithError:(id)a0; - (void)_submitMetricsForRequest:(id)a0 withRequestInfo:(id)a1 withError:(id)a2; - (void)_submitMetricsForResponse:(id)a0 size:(unsigned long long)a1 withError:(id)a2; - (void)_submitMetricsForSession:(id)a0 withError:(id)a1; - (void)addSessionConsumerWithSubTopic:(id)a0 delegate:(id)a1 dispatchQueue:(id)a2; - (void)broadcastRequest:(id)a0 recipientsCallback:(id /* block */)a1 responseCompletionHandler:(id /* block */)a2; - (void)broadcastRequest:(id)a0 type:(id)a1 recipientsCallback:(id /* block */)a2 responseCompletionHandler:(id /* block */)a3; - (void)failedToSendRequestWithID:(unsigned int)a0 withError:(id)a1; - (id)initWithConnectionProvider:(id)a0 roleMonitorConnectionProvider:(id)a1 topic:(id)a2 cluster:(id)a3; - (void)receivedRecipientListForRequestID:(unsigned int)a0 recipients:(id)a1; - (void)receivedRequestWithPayload:(id)a0 payloadType:(id)a1 requestID:(unsigned int)a2 fromMember:(id)a3 withCallback:(id /* block */)a4; - (void)receivedResponseForRequestID:(unsigned int)a0 responsePayload:(id)a1 responseType:(id)a2 responseError:(id)a3 fromMember:(id)a4; - (void)registerHandler:(id /* block */)a0 forRequestClassType:(id)a1; - (void)sendRequest:(id)a0 members:(id)a1 withCompletionHandler:(id /* block */)a2; - (void)sendRequest:(id)a0 type:(id)a1 members:(id)a2 withCompletionHandler:(id /* block */)a3; - (void)sendRequest:(id)a0 type:(id)a1 withCompletionHandler:(id /* block */)a2; - (void)sendRequest:(id)a0 withCompletionHandler:(id /* block */)a1; - (void)startSessionWithProducer:(id)a0 members:(id)a1; - (void)stopMessageSession:(id)a0 withNotice:(id)a1; - (void)unregisterHandlerForRequestClass:(Class)a0; - (void)unregisterHandlerForRequestClassType:(id)a0; @end