Public bug reported:
Item is currently defined in ProviderBase.h:
namespace unity
{
namespace storage
{
namespace provider
{
...
struct UNITY_STORAGE_EXPORT Item
{
std::string item_id;
std::vector<std::string> parent_ids;
std::string name;
std::string etag;
unity::storage::ItemType type;
std::map<std::string, MetadataValue> metadata;
};
...
And, in UploadJob.h, we have a forward declaration:
namespace unity
{
namespace storage
{
namespace provider
{
struct Item;
...
That's inconvenient if I want to implement an uploader in its own
compilation unit because I can't return a unique_ptr<Item> from finish()
without having the definition of Item available:
// LocalUploadJob.cpp
#include "LocalUploadJob.h" // (which includes UploadJob.h)
using namespace unity::storage::provider;
boost::future<Item> LocalUploadJob::finish() <=== Error here because
Item is not defined.
That's a bit inconvenient. I can fix it by including ProviderBase.h, but
I shouldn't have to drag that in just so the code will compile.
I think it would be better to have Item defined in its own header and to
include that header in both ProviderBase.h and UploadJob.h, so the
definition is always available.
** Affects: storage-framework (Ubuntu)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1668872
Title:
provider::Item should have its own header file
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/storage-framework/+bug/1668872/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs