qTox  Version: nightly | Commit: bc751c8e1cac455f9690654fcfe0f560d2d7dfdd
Classes | Public Slots | Signals | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
CoreExt Class Reference

#include <coreext.h>

Inheritance diagram for CoreExt:
Inheritance graph
Collaboration diagram for CoreExt:
Collaboration graph

Classes

class  Packet
 
struct  PacketPassKey
 

Public Slots

void onFriendStatusChanged (uint32_t friendId, Status::Status status)
 

Signals

void extendedMessageReceived (uint32_t friendId, const QString &message)
 
void extendedReceiptReceived (uint32_t friendId, uint64_t receiptId)
 
void extendedMessageSupport (uint32_t friendId, bool supported)
 

Public Member Functions

 CoreExt (CoreExt const &other)=delete
 
 CoreExt (CoreExt &&other)=delete
 
CoreExtoperator= (CoreExt const &other)=delete
 
CoreExtoperator= (CoreExt &&other)=delete
 
void process ()
 Periodic service function. More...
 
void onLosslessPacket (uint32_t friendId, const uint8_t *data, size_t length)
 Handles extension related lossless packets. More...
 
std::unique_ptr< ICoreExtPacketgetPacket (uint32_t friendId) override
 Gets a new packet builder for friend with core friend id friendId. More...
 
uint64_t getMaxExtendedMessageSize ()
 
- Public Member Functions inherited from ICoreExtPacketAllocator
virtual ~ICoreExtPacketAllocator ()
 

Static Public Member Functions

static std::unique_ptr< CoreExtmakeCoreExt (Tox *core)
 Creates a CoreExt instance. Using a pointer here makes our registrations with extensions significantly easier to manage. More...
 

Private Types

template<class T >
using ExtensionPtr = std::unique_ptr< T, void(*)(T *)>
 

Private Member Functions

 CoreExt (ExtensionPtr< ToxExt > toxExt)
 

Static Private Member Functions

static void onExtendedMessageReceived (uint32_t friendId, const uint8_t *data, size_t size, void *userData)
 
static void onExtendedMessageReceipt (uint32_t friendId, uint64_t receiptId, void *userData)
 
static void onExtendedMessageNegotiation (uint32_t friendId, bool compatible, uint64_t maxMessageSize, void *userData)
 

Private Attributes

std::mutex toxext_mutex
 
std::unordered_map< uint32_t, Status::StatuscurrentStatuses
 
ExtensionPtr< ToxExt > toxExt
 
ExtensionPtr< ToxExtensionMessages > toxExtMessages
 

Detailed Description

Bridge between the toxext library and the rest of qTox.

Definition at line 41 of file coreext.h.

Member Typedef Documentation

◆ ExtensionPtr

template<class T >
using CoreExt::ExtensionPtr = std::unique_ptr<T, void(*)(T*)>
private

Definition at line 145 of file coreext.h.

Constructor & Destructor Documentation

◆ CoreExt() [1/3]

CoreExt::CoreExt ( CoreExt const &  other)
delete
Here is the caller graph for this function:

◆ CoreExt() [2/3]

CoreExt::CoreExt ( CoreExt &&  other)
delete

◆ CoreExt() [3/3]

CoreExt::CoreExt ( ExtensionPtr< ToxExt >  toxExt)
private

Definition at line 45 of file coreext.cpp.

Here is the call graph for this function:

Member Function Documentation

◆ extendedMessageReceived

void CoreExt::extendedMessageReceived ( uint32_t  friendId,
const QString &  message 
)
signal
Here is the caller graph for this function:

◆ extendedMessageSupport

void CoreExt::extendedMessageSupport ( uint32_t  friendId,
bool  supported 
)
signal
Here is the caller graph for this function:

◆ extendedReceiptReceived

void CoreExt::extendedReceiptReceived ( uint32_t  friendId,
uint64_t  receiptId 
)
signal
Here is the caller graph for this function:

◆ getMaxExtendedMessageSize()

uint64_t CoreExt::getMaxExtendedMessageSize ( )

Definition at line 152 of file coreext.cpp.

Here is the caller graph for this function:

◆ getPacket()

std::unique_ptr< ICoreExtPacket > CoreExt::getPacket ( uint32_t  friendId)
overridevirtual

Gets a new packet builder for friend with core friend id friendId.

Implements ICoreExtPacketAllocator.

Definition at line 88 of file coreext.cpp.

◆ makeCoreExt()

std::unique_ptr< CoreExt > CoreExt::makeCoreExt ( Tox *  core)
static

Creates a CoreExt instance. Using a pointer here makes our registrations with extensions significantly easier to manage.

Parameters
[in]pointerto core tox instance
Returns
CoreExt on success, nullptr on failure

Definition at line 35 of file coreext.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ onExtendedMessageNegotiation()

void CoreExt::onExtendedMessageNegotiation ( uint32_t  friendId,
bool  compatible,
uint64_t  maxMessageSize,
void *  userData 
)
staticprivate

Definition at line 186 of file coreext.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ onExtendedMessageReceipt()

void CoreExt::onExtendedMessageReceipt ( uint32_t  friendId,
uint64_t  receiptId,
void *  userData 
)
staticprivate

Definition at line 181 of file coreext.cpp.

Here is the caller graph for this function:

◆ onExtendedMessageReceived()

void CoreExt::onExtendedMessageReceived ( uint32_t  friendId,
const uint8_t *  data,
size_t  size,
void *  userData 
)
staticprivate

Definition at line 175 of file coreext.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ onFriendStatusChanged

void CoreExt::onFriendStatusChanged ( uint32_t  friendId,
Status::Status  status 
)
slot

Definition at line 157 of file coreext.cpp.

Here is the caller graph for this function:

◆ onLosslessPacket()

void CoreExt::onLosslessPacket ( uint32_t  friendId,
const uint8_t *  data,
size_t  length 
)

Handles extension related lossless packets.

Parameters
[in]friendIdCore id of friend
[in]dataPacket data
[in]lengthLength of packet data

Definition at line 66 of file coreext.cpp.

◆ operator=() [1/2]

CoreExt& CoreExt::operator= ( CoreExt &&  other)
delete

◆ operator=() [2/2]

CoreExt& CoreExt::operator= ( CoreExt const &  other)
delete

◆ process()

void CoreExt::process ( )

Periodic service function.

Definition at line 60 of file coreext.cpp.

Member Data Documentation

◆ currentStatuses

std::unordered_map<uint32_t, Status::Status> CoreExt::currentStatuses
private

Definition at line 150 of file coreext.h.

◆ toxExt

ExtensionPtr<ToxExt> CoreExt::toxExt
private

Definition at line 151 of file coreext.h.

◆ toxext_mutex

std::mutex CoreExt::toxext_mutex
private

Definition at line 149 of file coreext.h.

◆ toxExtMessages

ExtensionPtr<ToxExtensionMessages> CoreExt::toxExtMessages
private

Definition at line 152 of file coreext.h.


The documentation for this class was generated from the following files: