libQtCassandra: Todo List

libQtCassandra  0.4.7
Todo List
page Main Page

The one thing still missing is a clean way of handling the exception. At this time the libQtCassandra library generate runtime_error and logic_error when you missuse a function. It also captures some Thrift exception in a few cases (although we try to avoid doing so, the connect() is the main one that we capture so you can attempt to connect and instead of throwing you get a return value of false when the connect failed.) But... at this time, if you get a Cassandra Thrift exception, you cannot do anything with it unless you include the Cassandra Thrift header files (otherwise you don't get the declaration of these exceptions.) Thus, we should overload all the exceptions and have try/catch around all the calls to the Cassandra Thrift interface and convert those exception in a libQtCassandra exception.

In regard to QObject's, we want to make use of the QObject name field to save smaller, QString names in objects. That way you could look for an object in memory with the find<>() algorithm.

The QObject is capable of managing parent/children. We want to make use of that capability for the cluster's contexts, the context's tables, the table's rows, the row's cells. That way the data is managed 100% like a Qt tree which would allow some algorithms to work on the tree without having to know anything of the libQtCassandra library.

Member QtCassandra::QCassandra::findContext (const QString &context_name) const
Add a way to distinguish in memory only contexts and Cassandra contexts. This is important to know whether a synchronization is necessary when creating, updating, and dropping tables or know whether a context can be dropped.
Member QtCassandra::QCassandraCell::setValue (const QCassandraValue &value)
If setting a counter, "value" is save in the cache as is. This means the value may be an integer of any size instead of being a 64 bit integer.
Member QtCassandra::QCassandraPrivate::connect (const QString &host, int port, const QString &password)
Add means for users to be able to define SSL parameters such as the ciphers accepted, certificates, public/private keys, etc.
Member QtCassandra::QCassandraRow::exists (const QString &column_name) const
Look into why a cell is created when just checking for its existance.
Member QtCassandra::QCassandraRow::exists (const wchar_t *column_name) const
Look into why a cell is created when just checking for its existance.
Member QtCassandra::QCassandraRow::exists (const char *column_name) const
Look into why a cell is created when just checking for its existance.
Member QtCassandra::QCassandraRow::exists (const QUuid &column_name) const
Look into why a cell is created when just checking for its existance.
Member QtCassandra::QCassandraRow::exists (const QByteArray &column_key) const
Look into why a cell is created when just checking for its existance.
Member QtCassandra::QCassandraTable::exists (const QByteArray &row_key) const
At this time there isn't a way to specify the consistency level of the calls used by this function. The QCassandra default is used.

This document is part of the Snap! Websites Project.

Copyright © 2011-2013 by Made to Order Software Corp.

Syndicate content

Snap! Websites
An Open Source CMS System in C++

Contact Us Directly