mirror of
https://github.com/nextcloud/desktop.git
synced 2025-10-26 11:17:43 +00:00
Remove all obj-c classes from fileproviderxpc.h
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
parent
fca6b37804
commit
784cd129fb
@ -13,10 +13,9 @@
|
||||
*/
|
||||
|
||||
#include <QObject>
|
||||
#include <QHash>
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "ClientCommunicationProtocol.h"
|
||||
#include "accountstate.h"
|
||||
|
||||
#pragma once
|
||||
|
||||
@ -39,10 +38,7 @@ private slots:
|
||||
void slotAccountStateChanged(AccountState::State state) const;
|
||||
|
||||
private:
|
||||
void setupConnections();
|
||||
void processConnections(NSArray *const services);
|
||||
|
||||
NSDictionary<NSString *, NSObject<ClientCommunicationProtocol> *_clientCommServices;
|
||||
QHash<QString, void*> _clientCommServices;
|
||||
};
|
||||
|
||||
} // namespace OCC::Mac
|
||||
|
||||
@ -35,44 +35,14 @@ void FileProviderXPC::connectToExtensions()
|
||||
const auto domainUrls = FileProviderXPCUtils::getDomainUrlsForManagers(managers);
|
||||
const auto fpServices = FileProviderXPCUtils::getFileProviderServicesAtUrls(domainUrls);
|
||||
const auto connections = FileProviderXPCUtils::connectToFileProviderServices(fpServices);
|
||||
processConnections(connections);
|
||||
}
|
||||
|
||||
void FileProviderXPC::processConnections(NSArray *const connections)
|
||||
{
|
||||
NSMutableDictionary<NSString *, NSObject<ClientCommunicationProtocol>*> *const clientCommServices = NSMutableDictionary.dictionary;
|
||||
|
||||
for (NSXPCConnection * const connection in connections) {
|
||||
const auto remoteObjectInterfaceProtocol = @protocol(ClientCommunicationProtocol);
|
||||
connection.remoteObjectInterface = [NSXPCInterface interfaceWithProtocol:remoteObjectInterfaceProtocol];
|
||||
FileProviderXPCUtils::configureFileProviderConnection(connection);
|
||||
|
||||
const auto clientCommService = (NSObject<ClientCommunicationProtocol> *)FileProviderXPCUtils::getRemoteServiceObject(connection, remoteObjectInterfaceProtocol);
|
||||
if (clientCommService == nil) {
|
||||
qCWarning(lcFileProviderXPC) << "Client communication service is nil";
|
||||
continue;
|
||||
}
|
||||
[clientCommService retain];
|
||||
|
||||
const auto extensionNcAccount = FileProviderXPCUtils::getExtensionAccountId(clientCommService);
|
||||
if (extensionNcAccount == nil) {
|
||||
qCWarning(lcFileProviderXPC) << "Extension account id is nil";
|
||||
continue;
|
||||
}
|
||||
qCInfo(lcFileProviderXPC) << "Got extension account id" << extensionNcAccount.UTF8String;
|
||||
[clientCommServices setObject:clientCommService forKey:extensionNcAccount];
|
||||
}
|
||||
|
||||
_clientCommServices = clientCommServices.copy;
|
||||
_clientCommServices = FileProviderXPCUtils::processClientCommunicationConnections(connections);
|
||||
}
|
||||
|
||||
void FileProviderXPC::configureExtensions()
|
||||
{
|
||||
for (NSString *const extensionNcAccount in _clientCommServices) {
|
||||
for (const auto &extensionNcAccount : _clientCommServices.keys()) {
|
||||
qCInfo(lcFileProviderXPC) << "Sending message to client communication service";
|
||||
|
||||
const auto qExtensionNcAccount = QString::fromNSString(extensionNcAccount);
|
||||
authenticateExtension(qExtensionNcAccount);
|
||||
authenticateExtension(extensionNcAccount);
|
||||
}
|
||||
}
|
||||
|
||||
@ -95,8 +65,7 @@ void FileProviderXPC::authenticateExtension(const QString &extensionAccountId) c
|
||||
NSString *const serverUrl = account->url().toString().toNSString();
|
||||
NSString *const password = credentials->password().toNSString();
|
||||
|
||||
const auto nsExtensionNcAccount = extensionAccountId.toNSString();
|
||||
NSObject<ClientCommunicationProtocol> *const clientCommService = [_clientCommServices objectForKey:nsExtensionNcAccount];
|
||||
const auto clientCommService = (NSObject<ClientCommunicationProtocol> *)_clientCommServices.value(extensionAccountId);
|
||||
[clientCommService configureAccountWithUser:user
|
||||
serverUrl:serverUrl
|
||||
password:password];
|
||||
@ -106,7 +75,7 @@ void FileProviderXPC::unauthenticateExtension(const QString &extensionAccountId)
|
||||
{
|
||||
qCInfo(lcFileProviderXPC) << "Unauthenticating extension" << extensionAccountId;
|
||||
NSString *const nsExtensionAccountId = extensionAccountId.toNSString();
|
||||
NSObject<ClientCommunicationProtocol> *const clientCommService = [_clientCommServices objectForKey:nsExtensionAccountId];
|
||||
const auto clientCommService = (NSObject<ClientCommunicationProtocol> *)_clientCommServices.value(extensionAccountId);
|
||||
[clientCommService removeAccountConfig];
|
||||
}
|
||||
|
||||
|
||||
@ -28,5 +28,6 @@ NSArray<NSXPCConnection *> *connectToFileProviderServices(NSArray<NSDictionary<N
|
||||
void configureFileProviderConnection(NSXPCConnection *connection);
|
||||
NSObject *getRemoteServiceObject(NSXPCConnection *connection, Protocol *protocol);
|
||||
NSString *getExtensionAccountId(NSObject<ClientCommunicationProtocol> *clientCommService);
|
||||
QHash<QString, void*> processClientCommunicationConnections(NSArray *connections);
|
||||
|
||||
}
|
||||
@ -219,4 +219,32 @@ NSString *getExtensionAccountId(NSObject<ClientCommunicationProtocol> *const cli
|
||||
return extensionNcAccount;
|
||||
}
|
||||
|
||||
QHash<QString, void*> processClientCommunicationConnections(NSArray *const connections)
|
||||
{
|
||||
QHash<QString, void*> clientCommServices;
|
||||
|
||||
for (NSXPCConnection * const connection in connections) {
|
||||
const auto remoteObjectInterfaceProtocol = @protocol(ClientCommunicationProtocol);
|
||||
connection.remoteObjectInterface = [NSXPCInterface interfaceWithProtocol:remoteObjectInterfaceProtocol];
|
||||
configureFileProviderConnection(connection);
|
||||
|
||||
const auto clientCommService = (NSObject<ClientCommunicationProtocol> *)getRemoteServiceObject(connection, remoteObjectInterfaceProtocol);
|
||||
if (clientCommService == nil) {
|
||||
qCWarning(lcFileProviderXPCUtils) << "Client communication service is nil";
|
||||
continue;
|
||||
}
|
||||
[clientCommService retain];
|
||||
|
||||
const auto extensionNcAccount = getExtensionAccountId(clientCommService);
|
||||
if (extensionNcAccount == nil) {
|
||||
qCWarning(lcFileProviderXPCUtils) << "Extension account id is nil";
|
||||
continue;
|
||||
}
|
||||
qCInfo(lcFileProviderXPCUtils) << "Got extension account id" << extensionNcAccount.UTF8String;
|
||||
clientCommServices.insert(QString::fromNSString(extensionNcAccount), clientCommService);
|
||||
}
|
||||
|
||||
return clientCommServices;
|
||||
}
|
||||
|
||||
} // namespace OCC::Mac::FileProviderXPCUtils
|
||||
|
||||
Loading…
Reference in New Issue
Block a user