Update photo/wire/wiki interfaces to support Blocking Group API.

Add blocking API Group Interfaces for photo,wire and wiki services.
Add service blocking API calls for createGroup/updateGroup/getGroupData.
Update GUI classes to match new GxsGroupDialog Interfaces.
This commit is contained in:
drbob 2020-04-05 15:04:39 +10:00
parent 3402aa861f
commit 1c20d75a03
18 changed files with 347 additions and 136 deletions

View file

@ -62,13 +62,10 @@ public:
#define RSPHOTO_SHAREMODE_DUP_200K (4)
#define RSPHOTO_SHAREMODE_DUP_1M (5)
class RsPhotoAlbum
struct RsPhotoAlbum: RsGxsGenericGroupData
{
public:
RsPhotoAlbum();
RsGroupMetaData mMeta;
// V2 Album - keep it simple.
// mMeta.mTitle.
uint32_t mShareMode;
@ -221,7 +218,29 @@ public:
*/
virtual bool acknowledgeGrp(const uint32_t& token, RsGxsGroupId& grpId) = 0;
// Blocking versions.
/*!
* request to create a new album. Blocks until process completes.
* @param album album to be submitted
* @return true if created false otherwise
*/
virtual bool createAlbum(RsPhotoAlbum &album) = 0;
/*!
* request to update an existing album. Blocks until process completes.
* @param album album to be submitted
* @return true if created false otherwise
*/
virtual bool updateAlbum(const RsPhotoAlbum &album) = 0;
/*!
* retrieve albums based in groupIds.
* @param groupIds the ids to fetch.
* @param albums vector to be filled by request.
* @return true is successful, false otherwise.
*/
virtual bool getAlbums(const std::list<RsGxsGroupId> &groupIds,
std::vector<RsPhotoAlbum> &albums) = 0;
};

View file

@ -69,22 +69,17 @@ class CollectionRef
std::string CollectionId;
};
class RsWikiCollection
struct RsWikiCollection: RsGxsGenericGroupData
{
public:
RsGroupMetaData mMeta;
std::string mDescription;
std::string mCategory;
std::string mHashTags;
//std::map<std::string, CollectionRef> linkReferences;
// std::map<std::string, CollectionRef> linkReferences;
};
class RsWikiSnapshot
{
public:
@ -129,6 +124,11 @@ virtual bool submitComment(uint32_t &token, RsWikiComment &comment) = 0;
virtual bool updateCollection(uint32_t &token, RsWikiCollection &collection) = 0;
// Blocking Interfaces.
virtual bool createCollection(RsWikiCollection &collection) = 0;
virtual bool updateCollection(const RsWikiCollection &collection) = 0;
virtual bool getCollections(const std::list<RsGxsGroupId> groupIds, std::vector<RsWikiCollection> &groups) = 0;
};
#endif

View file

@ -34,16 +34,13 @@
class RsWire;
extern RsWire *rsWire;
class RsWireGroup
struct RsWireGroup: RsGxsGenericGroupData
{
public:
RsGroupMetaData mMeta;
std::string mDescription;
};
/***********************************************************************
* RsWire - is intended to be a Twitter clone - but fully decentralised.
*
@ -154,6 +151,11 @@ virtual bool getPulseData(const uint32_t &token, std::vector<RsWirePulse> &pulse
virtual bool createGroup(uint32_t &token, RsWireGroup &group) = 0;
virtual bool createPulse(uint32_t &token, RsWirePulse &pulse) = 0;
// Blocking Interfaces.
virtual bool createGroup(RsWireGroup &group) = 0;
virtual bool updateGroup(const RsWireGroup &group) = 0;
virtual bool getGroups(const std::list<RsGxsGroupId> grpIds, std::vector<RsWireGroup> &groups) = 0;
};
#endif