Types.h

Introduction

Use the links in the table of contents to the left to access the documentation.



Typedefs

CBEContainerId

Unique Id of a cbe::Container

CBEDate

time-stamp in the unix epoch format.

CBEDriveId

The id of a drive.

CBEErrorCode

Default constructor marker. * * To default construct objects from most of the %CloudBackend classes, this * marker type is required. * \par Example use * \code {.cpp} ~~~ // Conceptually, a default construction of an instance of cbe::Container cbe::Container myContainer{ cbe::DefaultCtor{} }; // Ditto cbe::Object myObject{ cbe::DefaultCtor{} }; ~~~ * \endcode *

CBEFilterOrder
CBEGroupId

Uniquely identifies the Group.

CBEItemId

Id of a cbe::Container or cbe::Object

CBEItemType
CBEMemberId

Represents the cbe::Group membership.

CBEObjectId

Unique Id of a cbe::Object

CBEObjectType
CBEPublishAccess
CBEPublishId

Id of a subscribed cbe::Container or cbe::Object.

CBEPublishVisibility
CBEShareId

Uniquely identifies a sharing of a cbe::Container or cbe::Object

CBEStreamId

Uniquely identifies a cbe::Stream.

CBESubscribeId

Id of a cbe::Container or cbe::Object

CBEUserId

Uniquely identifies the CBE user.

CBEVisibility
NS_ENUM

Represents the access permission that can be set for any cbe::Object or cbe::Container. Forms the the possible different combinations of:

  • 1: Read

  • 2: Write

  • 4: Delete

  • 8: ChangeACL

combinations give access for users to use different API calls.


CBEContainerId


Unique Id of a cbe::Container

 typedef uint64_t CBEContainerId;  

CBEDate


time-stamp in the unix epoch format.

typedef uint64_t CBEDate;  
Discussion

A.k.a. POSIX time or time-stamp. \n The equivalent in Linux shell can be found typedef e.g., \code {.sh} date +%s --utc --date='now' date +%s --utc --date='today 17:30:00' \endcode To convert a time-stamp to human readable format use e.g., \code {.sh} date --utc --date=@1678902345 \endcode


CBEDriveId


The id of a drive.

typedef uint64_t CBEDriveId;  

CBEErrorCode


Default constructor marker. * * To default construct objects from most of the %CloudBackend classes, this * marker type is required. * \par Example use * \code {.cpp} ~~~ // Conceptually, a default construction of an instance of cbe::Container cbe::Container myContainer{ cbe::DefaultCtor{} }; // Ditto cbe::Object myObject{ cbe::DefaultCtor{} }; ~~~ * \endcode *

   typedef uint64_t CBEErrorCode;  
Fields
CBEErrorCode

*


CBEFilterOrder


typedef enum cbefilterorder:uint32_t{ 
    CBEFilterOrderTitle = 1, 
    CBEFilterOrderRelevance = 2, //Note* group Searches does not use Relevance as order. 
    CBEFilterOrderPublished = 3, 
    CBEFilterOrderUpdated = 4, 
    CBEFilterOrderLength = 5, 
    CBEFilterOrderS1 = 6, 
    CBEFilterOrderS2 = 7, 
    CBEFilterOrderS3 = 8, 
    CBEFilterOrderS4 = 9 
}CBEFilterOrder;  
Discussion

Set the filter order in which the search or query will be sorted after.


CBEGroupId


Uniquely identifies the Group.

typedef uint64_t CBEGroupId;  

CBEItemId


Id of a cbe::Container or cbe::Object

typedef uint64_t CBEItemId;  

CBEItemType


typedef enum cbeitemtype : cbeitem_t{ 
    CBEItemTypeUnapplicable = 1, 
    CBEItemTypeUnknown = 2, 
    CBEItemTypeObject = 4, 
    CBEItemTypeContainer = 8, 
    CBEItemTypeTag = 16, 
    CBEItemTypeGroup = 32 
} CBEItemType;  
Discussion

ItemType can be used to sort out cbe objects if the user would like to create a container to put all different kinds of cbe objects in.


CBEMemberId


Represents the cbe::Group membership.

typedef uint64_t CBEMemberId;  

CBEObjectId


Unique Id of a cbe::Object

typedef uint64_t CBEObjectId;  

CBEObjectType


 typedef enum cbeObjectType : cbeobject_t { 
    Other = 1, 
    GroupInvites = 2, 
    ShareInvite = 3 
}CBEObjectType;  
Discussion

ApplicationType is not used in this version of groups but will be added later.


CBEPublishAccess


typedef enum cbePublishAccess : cbepublish_access_t { 
    CBEPublishAccessRead = 1, 
    CBEPublishAccessUpdate = 2, 
    CBEPublishAccessCreate = 3 
}CBEPublishAccess;  
Discussion

Access permission for publish


CBEPublishId


Id of a subscribed cbe::Container or cbe::Object.

typedef uint64_t CBEPublishId;  

CBEPublishVisibility


typedef enum cbePublishVisibility : cbepublish_visibility_t { 
    CBEPublishVisibilityPublic = 1, 
    CBEPublishVisibilityFriends = 2, 
    CBEPublishVisibilityPrivate = 3, 
    CBEPublishVisibilityInvited = 4 
}CBEPublishVisibility;  
Discussion

Visibility for publish


CBEShareId


Uniquely identifies a sharing of a cbe::Container or cbe::Object

typedef uint64_t CBEShareId;  

CBEStreamId


Uniquely identifies a cbe::Stream.

typedef uint64_t CBEStreamId;  

CBESubscribeId


Id of a cbe::Container or cbe::Object

typedef uint64_t CBESubscribeId;  

CBEUserId


Uniquely identifies the CBE user.

typedef uint64_t CBEUserId;  

CBEVisibility


typedef enum cbe_visibility:cbevisibility{ 
    Public = 1, 
    Private = 2 
}CBEVisibility;  
Discussion

Visibility is used for both groups and members, in this version the member visibility will be Public for all members who join a group.

Members will in the future also have the option of visibility friends.


NS_ENUM


Represents the access permission that can be set for any cbe::Object or cbe::Container. Forms the the possible different combinations of:

  • 1: Read

  • 2: Write

  • 4: Delete

  • 8: ChangeACL

combinations give access for users to use different API calls.

typedef NS_ENUM(cbepermission_status_t, CBEPermissions) { 
    CBEPermissionsRead = 1, CBEPermissionsWrite = 2, CBEPermissionsReadWrite = 
    3, CBEPermissionsDelete = 4, CBEPermissionsReadDelete = 5, CBEPermissionsWriteDelete = 
    6, CBEPermissionsReadWriteDelete = 7, CBEPermissionsChangeACL = 
    8, CBEPermissionsReadChangeACL = 9, CBEPermissionsWriteChangeACL = 
    10, CBEPermissionsReadWriteChangeACL = 11, CBEPermissionsDeleteChangeACL = 
    12, CBEPermissionsReadDeleteChangeACL = 13, CBEPermissionsWriteDeleteChangeACL = 
    14, CBEPermissionsAllPermissions = 15, CBEPermissionsNoPermissions = 
    0 
};  
Discussion

E.g.: 6 = ReadDelete gives the ability to call Move on a Container or an Object.


Structs and Unions

ShareData

Collection of cbe::Item "items".


ShareData


Collection of cbe::Item "items".

       struct ShareData;  

Enumerated Types

cbe_visibility
cbefilterorder
cbeitemtype
cbeObjectType
cbePublishAccess
cbePublishVisibility

cbe_visibility


typedef enum cbe_visibility:cbevisibility{ 
    Public = 1, 
    Private = 2 
}CBEVisibility;  
Discussion

Visibility is used for both groups and members, in this version the member visibility will be Public for all members who join a group.

Members will in the future also have the option of visibility friends.


cbefilterorder


typedef enum cbefilterorder:uint32_t{ 
    CBEFilterOrderTitle = 1, 
    CBEFilterOrderRelevance = 2, //Note* group Searches does not use Relevance as order. 
    CBEFilterOrderPublished = 3, 
    CBEFilterOrderUpdated = 4, 
    CBEFilterOrderLength = 5, 
    CBEFilterOrderS1 = 6, 
    CBEFilterOrderS2 = 7, 
    CBEFilterOrderS3 = 8, 
    CBEFilterOrderS4 = 9 
}CBEFilterOrder;  
Discussion

Set the filter order in which the search or query will be sorted after.


cbeitemtype


typedef enum cbeitemtype : cbeitem_t{ 
    CBEItemTypeUnapplicable = 1, 
    CBEItemTypeUnknown = 2, 
    CBEItemTypeObject = 4, 
    CBEItemTypeContainer = 8, 
    CBEItemTypeTag = 16, 
    CBEItemTypeGroup = 32 
} CBEItemType;  
Discussion

ItemType can be used to sort out cbe objects if the user would like to create a container to put all different kinds of cbe objects in.


cbeObjectType


 typedef enum cbeObjectType : cbeobject_t { 
    Other = 1, 
    GroupInvites = 2, 
    ShareInvite = 3 
}CBEObjectType;  
Discussion

ApplicationType is not used in this version of groups but will be added later.


cbePublishAccess


typedef enum cbePublishAccess : cbepublish_access_t { 
    CBEPublishAccessRead = 1, 
    CBEPublishAccessUpdate = 2, 
    CBEPublishAccessCreate = 3 
}CBEPublishAccess;  
Discussion

Access permission for publish


cbePublishVisibility


typedef enum cbePublishVisibility : cbepublish_visibility_t { 
    CBEPublishVisibilityPublic = 1, 
    CBEPublishVisibilityFriends = 2, 
    CBEPublishVisibilityPrivate = 3, 
    CBEPublishVisibilityInvited = 4 
}CBEPublishVisibility;  
Discussion

Visibility for publish