<commit_before>#ifndef ACCOUNTMANAGER_H
#define ACCOUNTMANAGER_H

#include <functional>

#include <QtCore/qobject.h>
#include <QtCore/qshareddata.h>
#include <QtCore/qlist.h>
#include <QtCore/qiodevice.h>
#include <QtCore/qscopedpointer.h>

#include "qtdatasync_global.h"

class QRemoteObjectNode;
class QRemoteObjectReplica;
class AccountManagerPrivateReplica;

namespace QtDataSync {

class DeviceInfoPrivate;
class Q_DATASYNC_EXPORT DeviceInfo
{
	Q_GADGET

	Q_PROPERTY(QString name READ name WRITE setName)
	Q_PROPERTY(QByteArray fingerprint READ fingerprint WRITE setFingerprint)

public:
	DeviceInfo();
	DeviceInfo(const QString &name, const QByteArray &fingerprint);
	DeviceInfo(const DeviceInfo &other);
	~DeviceInfo();

	DeviceInfo &operator=(const DeviceInfo &other);

	QString name() const;
	QByteArray fingerprint() const;

	void setName(const QString &name);
	void setFingerprint(const QByteArray &fingerprint);

private:
	QSharedDataPointer<DeviceInfoPrivate> d;

	friend QDataStream &operator<<(QDataStream &stream, const DeviceInfo &deviceInfo);
	friend QDataStream &operator>>(QDataStream &stream, DeviceInfo &deviceInfo);
};

class LoginRequestPrivate;
class Q_DATASYNC_EXPORT LoginRequest
{
	friend class AccountManager;

public:
	LoginRequest(LoginRequestPrivate *d_ptr);
	~LoginRequest();<commit_msg>fix friend declaration for win<commit_after>#ifndef ACCOUNTMANAGER_H
#define ACCOUNTMANAGER_H

#include <functional>

#include <QtCore/qobject.h>
#include <QtCore/qshareddata.h>
#include <QtCore/qlist.h>
#include <QtCore/qiodevice.h>
#include <QtCore/qscopedpointer.h>

#include "qtdatasync_global.h"

class QRemoteObjectNode;
class QRemoteObjectReplica;
class AccountManagerPrivateReplica;

namespace QtDataSync {

class DeviceInfoPrivate;
class Q_DATASYNC_EXPORT DeviceInfo
{
	Q_GADGET

	Q_PROPERTY(QString name READ name WRITE setName)
	Q_PROPERTY(QByteArray fingerprint READ fingerprint WRITE setFingerprint)

public:
	DeviceInfo();
	DeviceInfo(const QString &name, const QByteArray &fingerprint);
	DeviceInfo(const DeviceInfo &other);
	~DeviceInfo();

	DeviceInfo &operator=(const DeviceInfo &other);

	QString name() const;
	QByteArray fingerprint() const;

	void setName(const QString &name);
	void setFingerprint(const QByteArray &fingerprint);

private:
	QSharedDataPointer<DeviceInfoPrivate> d;

	friend Q_DATASYNC_EXPORT QDataStream &operator<<(QDataStream &stream, const DeviceInfo &deviceInfo);
	friend Q_DATASYNC_EXPORT QDataStream &operator>>(QDataStream &stream, DeviceInfo &deviceInfo);
};

class LoginRequestPrivate;
class Q_DATASYNC_EXPORT LoginRequest
{
	friend class AccountManager;

public:
	LoginRequest(LoginRequestPrivate *d_ptr);
	~LoginRequest();
{'fraction_non_alphanumeric': 0.08986260675826216, 'fraction_numerical': 0.0, 'mean_word_length': 7.832786885245902, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6248991', 'n_tokens_mistral': 901, 'n_tokens_neox': 876, 'n_words': 209}