struct CCL::Persistence::IPersistentStore

Overview

#include <ipersistentstore.h>

struct IPersistentStore: public CCL::IUnknown
{
    // methods

    virtual tresult CCL_API registerClass (
        const ITypeInfo* typeInfo,
        TableMapping mapping = kDefaultMapping
    ) = 0;

    virtual tresult CCL_API setMemberFlags (
        const ITypeInfo* typeInfo,
        const char* memberName,
        int flags
    ) = 0;

    virtual tresult CCL_API setLocation (UrlRef url) = 0;
    virtual tbool CCL_API beginTransaction () = 0;
    virtual tbool CCL_API commitTransaction () = 0;
    virtual tresult CCL_API storeObject (IPersistentObject* object) = 0;
    virtual tresult CCL_API updateObject (IPersistentObject* object) = 0;
    virtual tresult CCL_API removeObject (IPersistentObject* object) = 0;

    virtual IUnknownIterator*CCL_API query (
        const ITypeInfo& typeInfo,
        IExpression* condition
    ) = 0;

    virtual tresult CCL_API collectValues (
        IMutableArray& values,
        const ITypeInfo& typeInfo,
        const char* memberName,
        IExpression* condition
    ) = 0;
};

Inherited Members

public:
    // methods

    virtual tresult CCL_API queryInterface (UIDRef iid, void** ptr) = 0;
    virtual unsigned int CCL_API retain () = 0;
    virtual unsigned int CCL_API release () = 0;

Detailed Documentation

Methods

virtual tresult CCL_API registerClass (
    const ITypeInfo* typeInfo,
    TableMapping mapping = kDefaultMapping
) = 0

Register a class to be stored.

virtual tresult CCL_API setMemberFlags (
    const ITypeInfo* typeInfo,
    const char* memberName,
    int flags
) = 0

Define additional properties for a member of a registered class.

virtual tresult CCL_API setLocation (UrlRef url) = 0

Set file location.

virtual tbool CCL_API beginTransaction () = 0

Begin a transaction.

virtual tbool CCL_API commitTransaction () = 0

Commit a transaction.

virtual tresult CCL_API storeObject (IPersistentObject* object) = 0

Store an object in the store.

virtual tresult CCL_API updateObject (IPersistentObject* object) = 0

Update the objects representation in the store.

virtual tresult CCL_API removeObject (IPersistentObject* object) = 0

Remove object from the store.

virtual IUnknownIterator*CCL_API query (
    const ITypeInfo& typeInfo,
    IExpression* condition
) = 0

Create a query result iterator for given class and (optional) condition.

virtual tresult CCL_API collectValues (
    IMutableArray& values,
    const ITypeInfo& typeInfo,
    const char* memberName,
    IExpression* condition
) = 0

Collect all (distinct) value occurances of given class member with (optional) condition.