C++  1.4.6
CloudBackend Software Development Kit - SDK API for C++
Container.h
1 /*
2  Copyright © CloudBackend AB 2020 - 2022..
3 */
4 
5 #ifndef INCLUDE_CBE_CONTAINER_H_
6 #define INCLUDE_CBE_CONTAINER_H_
7 
8 #include <string>
9 #include "CBE/Item.h"
10 #include "CBE/Object.h"
11 #include "CBE/Protocols/ItemEventProtocol.h"
12 #include "CBE/Types.h"
13 
14 namespace CBE
15 {
16 
17 class Container : virtual public CBE::Item
18 {
19  class ObjectUpdater;
20 
21 public:
28  virtual ContainerPtr create(const std::string &name, CBE::ItemDelegatePtr delegate);
29 
36  virtual void move(CBE::container_id_t destinationId, CBE::ItemDelegatePtr delegate);
37 
44  virtual void rename(const std::string &name, CBE::ItemDelegatePtr delegate);
45 
51  virtual void remove(CBE::ItemDelegatePtr delegate);
52 
61  virtual CBE::ObjectPtr createObject(std::string name, CBE::ItemDelegatePtr delegate, metadata_type metadata = metadata_type());
62 
72  virtual CBE::ObjectPtr upload(const std::string &name, const std::string &path, CBE::TransferUploadDelegatePtr delegate);
73 
82  virtual CBE::ObjectPtr upload(const std::string &name, uint64_t length, char *byteData, CBE::TransferUploadDelegatePtr delegate);
83 
90  virtual QueryChainPtr query(CBE::ItemDelegatePtr delegate);
91 
99  virtual QueryChainPtr query(CBE::Filter filter, CBE::ItemDelegatePtr delegate);
100 
109  virtual CBE::QueryChainPtr queryWithPath(std::string relativePath, CBE::ItemDelegatePtr delegate);
110 
121  virtual QueryResultPtr search(std::string tags, CBE::ItemDelegatePtr delegate);
122 
134  virtual QueryResultPtr search(CBE::Filter filter, CBE::ItemDelegatePtr delegate);
135 
147  virtual void setACL(std::map<CBE::user_id_t, CBE::permission_status_t> toUserPermissions, CBE::ShareDelegatePtr delegate);
148 
155  virtual void getACL(CBE::ShareDelegatePtr delegate);
156 
170  virtual void share(user_id_t toUserGroup, std::string description, CBE::ShareDelegatePtr delegate);
171 
180  virtual void unShare(uint64_t shareId, CBE::ShareDelegatePtr delegate);
181 
182  protected:
186  typedef std::map<std::string, std::pair<std::string, bool>> metadata_type;
188  Container() : CBE::Item() {}
189 };
190 } // namespace CBE
191 
192 #endif // INCLUDE_CBE_CONTAINER_H_
CBE::Container::rename
virtual void rename(const std::string &name, CBE::ItemDelegatePtr delegate)
CBE::Container::metadata_type
std::map< std::string, std::pair< std::string, bool > > metadata_type
Type definition of the metadata map holding key/values.
Definition: Container.h:186
CBE::Container::queryWithPath
virtual CBE::QueryChainPtr queryWithPath(std::string relativePath, CBE::ItemDelegatePtr delegate)
CBE::Container::Container
Container()
This function should not be called directly.
Definition: Container.h:188
CBE::Container::remove
virtual void remove(CBE::ItemDelegatePtr delegate)
CBE::Container::share
virtual void share(user_id_t toUserGroup, std::string description, CBE::ShareDelegatePtr delegate)
CBE::Item::path
virtual std::string path() const
Returns the path if it is available.
CBE::Container::setACL
virtual void setACL(std::map< CBE::user_id_t, CBE::permission_status_t > toUserPermissions, CBE::ShareDelegatePtr delegate)
CBE::Container
Definition: Container.h:17
CBE::Container::unShare
virtual void unShare(uint64_t shareId, CBE::ShareDelegatePtr delegate)
CBE::Container::upload
virtual CBE::ObjectPtr upload(const std::string &name, const std::string &path, CBE::TransferUploadDelegatePtr delegate)
CBE::Container::move
virtual void move(CBE::container_id_t destinationId, CBE::ItemDelegatePtr delegate)
CBE::Container::search
virtual QueryResultPtr search(std::string tags, CBE::ItemDelegatePtr delegate)
CBE::Container::getACL
virtual void getACL(CBE::ShareDelegatePtr delegate)
CBE::Item::name
virtual std::string name() const
Returns the name (title) of the item.
CBE::Filter
Definition: Filter.h:28
CBE::Container::create
virtual ContainerPtr create(const std::string &name, CBE::ItemDelegatePtr delegate)
CBE::Container::query
virtual QueryChainPtr query(CBE::ItemDelegatePtr delegate)
CBE::Item
Definition: Item.h:23
CBE::Item::description
virtual std::string description() const
Get a description of the item if it is available.
CBE::Container::createObject
virtual CBE::ObjectPtr createObject(std::string name, CBE::ItemDelegatePtr delegate, metadata_type metadata=metadata_type())