Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F1037475
matrix-sdk.hpp
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
2 KB
Referenced Files
None
Subscribers
None
matrix-sdk.hpp
View Options
/*
* This file is part of kazv.
* SPDX-FileCopyrightText: 2020-2021 Tusooa Zhu <tusooa@kazv.moe>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
#pragma once
#include
<libkazv-config.hpp>
#include
<immer/config.hpp>
// https://github.com/arximboldi/immer/issues/168
#include
<QObject>
#include
<QQmlEngine>
#include
<QString>
#include
<memory>
#include
<lager/extra/qt.hpp>
#include
<sdk-model.hpp>
#include
"meta-types.hpp"
class
MatrixRoomList
;
struct
MatrixSdkPrivate
;
class
MatrixSdk
:
public
QObject
{
Q_OBJECT
QML_ELEMENT
std
::
unique_ptr
<
MatrixSdkPrivate
>
m_d
;
/// @param d A dynamically allocated d-pointer, whose ownership
/// will be transferred to this MatrixSdk.
explicit
MatrixSdk
(
std
::
unique_ptr
<
MatrixSdkPrivate
>
d
,
QObject
*
parent
);
void
init
();
public
:
explicit
MatrixSdk
(
QObject
*
parent
=
0
);
explicit
MatrixSdk
(
Kazv
::
SdkModel
model
,
QObject
*
parent
=
0
);
~
MatrixSdk
()
override
;
LAGER_QT_READER
(
QString
,
serverUrl
);
LAGER_QT_READER
(
QString
,
userId
);
LAGER_QT_READER
(
QString
,
token
);
LAGER_QT_READER
(
QString
,
deviceId
);
Q_INVOKABLE
MatrixRoomList
*
roomList
()
const
;
Q_INVOKABLE
QString
mxcUriToHttp
(
QString
mxcUri
)
const
;
private
:
// Replaces the store with another one
void
emplace
(
std
::
optional
<
Kazv
::
SdkModel
>
model
);
Q_SIGNALS
:
void
trigger
(
Kazv
::
KazvEvent
e
);
void
loginSuccessful
(
Kazv
::
KazvEvent
e
);
void
loginFailed
(
QString
errorCode
,
QString
errorMsg
);
void
discoverFailed
(
QString
errorCode
,
QString
errorMsg
);
void
sessionChanged
();
public
Q_SLOTS
:
void
login
(
const
QString
&
userId
,
const
QString
&
password
);
/**
* Serialize data to <AppDataDir>/sessions/<userid>/<deviceid>/
*
* If not logged in, do nothing.
*/
void
serializeToFile
()
const
;
/**
* Load session at <AppDataDir>/sessions/<sessionName> .
*
* @param sessionName A string in the form of <userid>/<deviceid> .
*
* @return true if successful, false otherwise.
*/
bool
loadSession
(
QString
sessionName
);
/**
* Start an empty session.
*
* The new session is not logged in, and need to call login().
*
* @return true if successful, false otherwise.
*/
bool
startNewSession
();
/**
* Get all saved sessions.
*
* @return A list of session names in the form of <userid>/<deviceid> .
*/
QStringList
allSessions
()
const
;
};
File Metadata
Details
Attached
Mime Type
text/x-c++
Expires
Wed, May 14, 7:19 AM (1 d, 6 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
99839
Default Alt Text
matrix-sdk.hpp (2 KB)
Attached To
Mode
rK kazv
Attached
Detach File
Event Timeline
Log In to Comment