DeeVersionedModel

DeeVersionedModel — Abstract base class for easing implementations of DeeModels providing a unique version number for each row

Synopsis

#include <dee.h>

enum                DeeSeqnumState;
struct              DeeVersionedModel;
struct              DeeVersionedModelClass;
DeeSeqnumState      dee_versioned_model_check_seqnums   (DeeModel *self,
                                                         GArray *seqnums);
DeeSeqnumState      dee_versioned_model_check_seqnum    (DeeModel *self,
                                                         guint64 seqnum);
guint64             dee_versioned_model_inc_seqnum      (DeeModel *self,
                                                         guint pos);
void                dee_versioned_model_set_seqnum      (DeeModel *self,
                                                         guint pos,
                                                         guint64 seqnum);
guint64             dee_versioned_model_append_next_seqnum
                                                        (DeeModel *self);
guint64             dee_versioned_model_prepend_next_seqnum
                                                        (DeeModel *self);
guint64             dee_versioned_model_insert_next_seqnum
                                                        (DeeModel *self,
                                                         guint pos);
guint64             dee_versioned_model_get_seqnum      (DeeModel *self,
                                                         guint pos);
guint64             dee_versioned_model_get_last_seqnum (DeeModel *self);
void                dee_versioned_model_set_last_seqnum (DeeModel *self,
                                                         guint64 seqnum);
void                dee_versioned_model_remove_seqnum   (DeeModel *self,
                                                         guint pos);
                    DeeVersionedModelPrivate;

Object Hierarchy

  GObject
   +----DeeVersionedModel
         +----DeeProxyModel
         +----DeeSequenceModel

Implemented Interfaces

DeeVersionedModel implements DeeModel.

Description

DeeVersionedModel is an abstract base class to ease implementation of DeeModels providing rows versioned by a sequence number.

Details

enum DeeSeqnumState

typedef enum
{
  DEE_SEQNUM_STATE_NOT_CONSECUTIVE,
  DEE_SEQNUM_STATE_IN_THE_FUTURE,
  DEE_SEQNUM_STATE_IN_THE_PAST,
  DEE_SEQNUM_STATE_OK,
} DeeSeqnumState;

struct DeeVersionedModel

struct DeeVersionedModel;

All fields in the DeeVersionedModel structure are private and should never be accessed directly


struct DeeVersionedModelClass

struct DeeVersionedModelClass {
};


dee_versioned_model_check_seqnums ()

DeeSeqnumState      dee_versioned_model_check_seqnums   (DeeModel *self,
                                                         GArray *seqnums);

Assert that seqnums are consecutive and that the beggining sequence number in seqnums is exactly one higher than the last seen seqnum of this model.


dee_versioned_model_check_seqnum ()

DeeSeqnumState      dee_versioned_model_check_seqnum    (DeeModel *self,
                                                         guint64 seqnum);


dee_versioned_model_inc_seqnum ()

guint64             dee_versioned_model_inc_seqnum      (DeeModel *self,
                                                         guint pos);


dee_versioned_model_set_seqnum ()

void                dee_versioned_model_set_seqnum      (DeeModel *self,
                                                         guint pos,
                                                         guint64 seqnum);


dee_versioned_model_append_next_seqnum ()

guint64             dee_versioned_model_append_next_seqnum
                                                        (DeeModel *self);


dee_versioned_model_prepend_next_seqnum ()

guint64             dee_versioned_model_prepend_next_seqnum
                                                        (DeeModel *self);


dee_versioned_model_insert_next_seqnum ()

guint64             dee_versioned_model_insert_next_seqnum
                                                        (DeeModel *self,
                                                         guint pos);


dee_versioned_model_get_seqnum ()

guint64             dee_versioned_model_get_seqnum      (DeeModel *self,
                                                         guint pos);


dee_versioned_model_get_last_seqnum ()

guint64             dee_versioned_model_get_last_seqnum (DeeModel *self);


dee_versioned_model_set_last_seqnum ()

void                dee_versioned_model_set_last_seqnum (DeeModel *self,
                                                         guint64 seqnum);


dee_versioned_model_remove_seqnum ()

void                dee_versioned_model_remove_seqnum   (DeeModel *self,
                                                         guint pos);


DeeVersionedModelPrivate

typedef struct _DeeVersionedModelPrivate DeeVersionedModelPrivate;

Ignore this structure.