QSharedPointer<Node> Node::CreateClientServer(const PrivateIdentity &ident, const Group &group, const QList<Address> &local, const QList<Address> &remote, const QSharedPointer<ISink> &sink, SessionFactory::SessionType session, AuthFactory::AuthType auth, const QSharedPointer<KeyShare> &keys) { QSharedPointer<GroupHolder> gh(new GroupHolder(group)); QSharedPointer<ClientServer::Overlay> overlay(new ClientServer::Overlay( ident.GetLocalId(), local, remote, QList<Connections::Id>(), ident.GetSuperPeer())); QObject::connect(gh.data(), SIGNAL(GroupUpdated()), overlay.data(), SLOT(GroupUpdated())); QSharedPointer<Network> network(new CSNetwork(overlay)); return QSharedPointer<Node>(new Node(ident, gh, overlay, network, sink, session, auth, keys)); }
QSharedPointer<Node> Node::CreateBasicGossip(const PrivateIdentity &ident, const Group &group, const QList<Address> &local, const QList<Address> &remote, const QSharedPointer<ISink> &sink, SessionFactory::SessionType session, AuthFactory::AuthType auth, const QSharedPointer<KeyShare> &keys) { QSharedPointer<GroupHolder> gh(new GroupHolder(group)); QSharedPointer<BaseOverlay> overlay(new BasicGossip(ident.GetLocalId(), local, remote)); QSharedPointer<Network> network(new DefaultNetwork( overlay->GetConnectionManager(), overlay->GetRpcHandler())); return QSharedPointer<Node>(new Node(ident, gh, overlay, network, sink, session, auth, keys)); }