メインページ クラス階層 アルファベット順リスト データ構造リスト ファイルリスト データ構造メンバ
クラス SlZDtm::SlZDataManager の解説
Zaurusデータマネージャを利用するためのクラス.
より詳しく... 適合機種情報はこちら
#include <slzdtm.h>
SlZDtm::SlZDataManagerに対するクラス階層図
[凡例]SlZDtm::SlZDataManagerのコラボレーション図
[凡例]すべてのメンバリスト
公開型
|
| enum | DeleteMode { OneCard,
CurrentIndex,
AllCard
} |
| enum | FilterFor { ForCurrentIndex,
ForMasterIndex,
ForSuspendedIndex
} |
公開メンバ
|
|
| SlZDataManager (const char *boxFName, QWidget *parent=NULL, bool isReadOnly=false) |
|
| ~SlZDataManager () |
|
bool | open (bool isReadOnly=false) |
|
bool | close () |
|
bool | isOpened () |
|
int | count (const char *idxName=NULL) |
| QString | readItem (const char *itemName, CardId cardId=0) |
| QDateTime | readTimeItem (const char *itemName, CardId cardId=0, bool isUtc=false) |
| QDate | readDateItem (const char *itemName, CardId cardId=0) |
| int | readUcharItem (const char *itemName, CardId cardId=0) |
| int | readUshortItem (const char *itemName, CardId cardId=0) |
| bool | readUlongItem (const char *itemName, ulong *data, CardId cardId=0) |
|
QArray<int> | readCategories (CardId cardId=0) |
| bool | first (const char *idxName=NULL) |
| bool | last (const char *idxName=NULL) |
| bool | next (CardId cardId=0, const char *idxName=NULL) |
| bool | prev (CardId cardId=0, const char *idxName=NULL) |
| CardId | firstCard (const char *idxName=NULL) |
| CardId | lastCard (const char *idxName=NULL) |
| CardId | nextCard (CardId cardId=0, const char *idxName=NULL) |
| CardId | prevCard (CardId cardId=0, const char *idxName=NULL) |
|
CardId | cardId () const |
|
CardId | cardIdFromNumber (IndexNo number) |
|
IndexNo | numberFromCardId (CardId cardId=0) |
|
bool | writeItem (const char *itemName, const char *data, ulong len) |
| bool | writeItem (const char *itemName, const QDateTime &time) |
| bool | writeItem (const char *itemName, const QDate &time) |
|
bool | writeItem (const char *itemName, const QString &data) |
|
bool | writeItem (const char *itemName, uchar value) |
|
bool | writeItem (const char *itemName, ushort value) |
|
bool | writeItem (const char *itemName, ulong value) |
| bool | writeCurrentTime (const char *itemName, bool isUtc) |
|
bool | clearItem (const char *itemName) |
| bool | writeAttribute (CardId cardId, uchar bitData, bool isSet) |
|
bool | startEditCard (CardId cardId) |
|
bool | cancelEditCard () |
|
bool | finishEditCard (CardId *cardId) |
|
bool | editNewCard () |
| bool | deleteCard (CardId *cardId, DeleteMode mode=OneCard) |
|
bool | sort (const char *itemName, bool isAscendent) |
|
bool | sort (int keyItemNo, bool isAscendent) |
|
bool | sort (const char *sortExp, int sortExpLen, bool isAscendent) |
| void | sort (bool isAscendent) |
|
bool | search (CardId *cardId, const char *serCond, bool isNext, uchar attrMask, uchar attrCond, uchar attrFlag, const char *idxName=NULL) |
|
bool | search (CardId *cardId, const char *serCond, bool isNext, const char *idxName=NULL) |
|
bool | search (CardId *cardId, const QString &string, const char *item, uchar searchMode, bool isNext=true) |
| bool | filter (const char *searchExp, ulong searchExpLen, const char *sortExp, ulong sortExpLen, FilterFor mode, bool isSuspendIndex=false) |
| bool | unfilter (bool isResumeIndex=true) |
| void | killIdxResume () |
| bool | isFiltered () const |
|
bool | enableFilter (CategoryId categoryId) |
|
bool | disableFilter (bool isIdxDelete) |
|
bool | addCardToCtgr (CardId cardId, CategoryId categoryId, DeleteMode mode=OneCard, bool isAlert=false) |
|
bool | removeCardFromCtgr (CardId cardId, CategoryId categoryId, DeleteMode mode=OneCard, bool isAlert=false) |
| bool | updateCategories (CardId cardId, QArray< int > ids, DeleteMode mode=OneCard, bool isAlert=false) |
| DataType | readItemType (const char *itemName) const |
| int | nameToItemId (const char *itemName) const |
| int | sortItem () const |
| bool | ascendent () const |
| bool | setCurrentIndex (const char *indexFName, bool isMasterIdx=false) |
|
bool | count (int *countNo, const char *serCond, CardId cardId, uchar attrMask, uchar attrCond, uchar attrFlag, const char *idxName=NULL) |
|
bool | count (int *countNo, const char *serCond, CardId cardId, const char *idxName=NULL) |
| ulong | garbageSize () |
| CardId | expectedCardId () |
|
CardId | resumeCardId () const |
| bool | setInternalUtc (const char *itemName) |
| bool | categoryRemoved (CategoryId id) |
| QString | current1stSortKey () const |
|
BoxHandle | boxHandle () const |
| const SlZDataManagerItemInfo | items () const |
|
void | dumpIndexStatus () const |
静的公開メンバ
|
|
bool | createFile (const char *boxFName, const char *masterIdxFName, APLID aplId, bool isEasyMode, const SlZDataManagerItemInfo &items, const SlZDataManagerSortKey &keys, const SlZDataManagerIndexInfo &indexes) |
| bool | createFile (const char *boxFName, const char *masterIdxFName, APLID aplId, bool isEasyMode, const SlZDataManagerItemInfo &items, const char *sortExp, int sortLen, const SlZDataManagerIndexInfo &indexes) |
| bool | createZTime (void *zTime, const QDateTime &date) |
| bool | createZTime (void *zTime, int y, int mon, int d, int h=0, int m=0, int sec=0) |
| void | getAttrValues (uchar *mask, uchar *cond, uchar *flag) |
|
bool | deleteFile (const char *boxFName) |
| bool | checkGarbageAlert (const char *boxFName, QWidget *parent=NULL) |
|
bool | checkFile (const char *fName) |
|
void | checkDtmGlobal () |
|
void | updateForCategoryRemoved (CategoryId id) |
解説
Zaurusデータマネージャを利用するためのクラス.
SlZDataManagerはZaurusデータマネージャ(libzdtm)を利用するためのクラ スである。SlZDataManagerは一つのデータベース(BOXファイル/IDXファイル のセット)に対する処理を行う。データベースはcreateFile()を使って予め作 成しておく必要がある。
例:データベースを作成する。 createFileは、データベースがすでに存在していればチェックだけを行う。 SlZDataManagerItemInfo itemInfo;
SlZDataManagerSortKey sortInfo;
SlZDataManagerIndexInfo indexInfo;
itemInfo.addTextItem("CLAS",tr("title"));
itemInfo.addTextItem("MEM1",tr("contents"));
itemInfo.addCategoryItem();
sortInfo.addSortKey("CLAS",true,true);
SlZDataManager::createFile(boxFName,
idxFName,
'TEDT',false,
itemInfo,sortInfo,indexInfo);
例:データベースを使い始める。
zdtm = new SlZDataManager(boxFName);
例:データベースを使い終る。
例:データを書き込む
if(!zdtm->startEditCard(cardId)){
return false;
}
if(!zdtm->writeItem("CLAS",title) ||
!zdtm->writeItem("MEM1",contents)){
zdtm->cancelEditCard();
return false;
}
if(!zdtm->finishEditCard(&cardId)){
return false;
}
例:データを読みだす QString contents = zdtm->readItem("MEM1",cardId);
メンバ関数の解説
|
bool SlZDtm::SlZDataManager::ascendent (
|
) const
|
|
|
bool SlZDtm::SlZDataManager::categoryRemoved (
|
CategoryId id )
|
|
|
|
idで指定されたカテゴリーが削除されたので、そのための処理を行う |
|
bool SlZDtm::SlZDataManager::checkGarbageAlert (
|
const char * boxFName,
|
|
QWidget * parent = NULL ) [static]
|
|
|
|
ガベージサイズをチェックして、必要ならばアラートを表示してガベージコレ クトを実行する。戻り値がtrueの場合はガベージコレクトが行われたというこ と |
|
bool SlZDtm::SlZDataManager::createFile (
|
const char * boxFName,
|
|
const char * masterIdxFName,
|
|
APLID aplId,
|
|
bool isEasyMode,
|
|
const SlZDataManagerItemInfo & items,
|
|
const char * sortExp,
|
|
int sortLen,
|
|
const SlZDataManagerIndexInfo & indexes ) [static]
|
|
|
bool SlZDtm::SlZDataManager::createZTime (
|
void * zTime,
|
|
int y,
|
|
int mon,
|
|
int d,
|
|
int h = 0,
|
|
int m = 0,
|
|
int sec = 0 ) [static]
|
|
|
|
年月日/時分秒からデータマネージャ内部時刻表現(5バイト)を生成する。 |
|
bool SlZDtm::SlZDataManager::createZTime (
|
void * zTime,
|
|
const QDateTime & date ) [static]
|
|
|
|
QDateTimeからデータマネージャ内部時刻表現(5バイト)を生成する。 |
|
QString SlZDtm::SlZDataManager::current1stSortKey (
|
) const
|
|
|
|
現在のインデックスの第1ソートキーになっている項目の名前を返す
ソートされていなければQString::nullを返す |
|
bool SlZDtm::SlZDataManager::deleteCard (
|
CardId * cardId,
|
|
DeleteMode mode = OneCard )
|
|
|
|
指定カードを削除する。
modeの値による動作の違いは以下のとおり。
-
OneCard cardIdで指定したカードだけを削除する。cardIdには次に注 目すべきカードのIDが返される。これが0の場合は現在のインデックス状態に 含まれるカードがなくなったことを示す。 -
CurrentIndex 現在の注目インデックスに含まれるカードだけをすべて 削除する。マスタインデックス状態のときでも動作はするが、速度の面から AllCardで削除すべきである。 -
AllCard BOXファイルに含まれるすべてのカードを削除する。
|
|
CardId SlZDtm::SlZDataManager::expectedCardId (
|
)
|
|
|
|
公開はしないこと。次にカードを作った時に割り当てられるカードIDを返す |
|
bool SlZDtm::SlZDataManager::filter (
|
const char * searchExp,
|
|
ulong searchExpLen,
|
|
const char * sortExp,
|
|
ulong sortExpLen,
|
|
FilterFor mode,
|
|
bool isSuspendIndex = false )
|
|
|
|
指定検索、ソート条件式で絞り込みを行う。
ソート条件式は省略可能で(NULLポインタ&長さ0)、その場合は元になるイン デックスのソート条件式が使われる。
modeの指定は以下のとおり
-
ForCurrentIndex 現在のインデックスから -
ForMasterIndex マスタインデックスから -
ForSuspendedIndex 前回サスペンドしたインデックスから
isSuspendIndexをtrueにすると現状のインデックス状態を保存し、次の unfilter呼び出し時に復帰する |
|
bool SlZDtm::SlZDataManager::first (
|
const char * idxName = NULL )
|
|
|
CardId SlZDtm::SlZDataManager::firstCard (
|
const char * idxName = NULL )
|
|
|
ulong SlZDtm::SlZDataManager::garbageSize (
|
)
|
|
|
void SlZDtm::SlZDataManager::getAttrValues (
|
uchar * mask,
|
|
uchar * cond,
|
|
uchar * flag ) [static]
|
|
|
|
現在のシークレットモードに適した、アトリビュートフラグを得る。将来的に PIMレベルのシークレットモードがサポートされた時のためのもの。 |
|
bool SlZDtm::SlZDataManager::isFiltered (
|
) const
|
|
|
|
絞り込み中かどうかを返す
カテゴリ絞り込み中の場合はfalseを返す |
|
|
BOXファイルに含まれる項目情報を生成する(システム項目も含む) |
|
void SlZDtm::SlZDataManager::killIdxResume (
|
)
|
|
|
bool SlZDtm::SlZDataManager::last (
|
const char * idxName = NULL )
|
|
|
CardId SlZDtm::SlZDataManager::lastCard (
|
const char * idxName = NULL )
|
|
|
int SlZDtm::SlZDataManager::nameToItemId (
|
const char * itemName ) const
|
|
|
bool SlZDtm::SlZDataManager::next (
|
CardId cardId = 0,
|
|
const char * idxName = NULL )
|
|
|
CardId SlZDtm::SlZDataManager::nextCard (
|
CardId cardId = 0,
|
|
const char * idxName = NULL )
|
|
|
bool SlZDtm::SlZDataManager::prev (
|
CardId cardId = 0,
|
|
const char * idxName = NULL )
|
|
|
CardId SlZDtm::SlZDataManager::prevCard (
|
CardId cardId = 0,
|
|
const char * idxName = NULL )
|
|
|
QDate SlZDtm::SlZDataManager::readDateItem (
|
const char * itemName,
|
|
CardId cardId = 0 )
|
|
|
|
cardIdで指定したカードのitemNameという項目を読みだす。TIME項目に対して 使う。 ただし、読み出す項目はワイルドカードであり、戻り値はQDate
読めなかった場合は無効なQDateを返す。 |
|
QString SlZDtm::SlZDataManager::readItem (
|
const char * itemName,
|
|
CardId cardId = 0 )
|
|
|
|
cardIdで指定したカードのitemNameという項目を読みだす。TEXT項目に対して 使う。
読めなかった場合はQString::nullを返す。項目が空だった場合は空のQString を返す。 |
|
DataType SlZDtm::SlZDataManager::readItemType (
|
const char * itemName ) const
|
|
|
|
指定した項目の項目情報を読みだす。
アプリケーションが直接使う必要はない。 |
|
QDateTime SlZDtm::SlZDataManager::readTimeItem (
|
const char * itemName,
|
|
CardId cardId = 0,
|
|
bool isUtc = false )
|
|
|
|
cardIdで指定したカードのitemNameという項目を読みだす。TIME項目に対して 使う。
読めなかった場合は無効なQDateTimeを返す。 |
|
int SlZDtm::SlZDataManager::readUcharItem (
|
const char * itemName,
|
|
CardId cardId = 0 )
|
|
|
|
cardIdで指定したカードのitemNameという項目を読みだす。UCHAR項目に対して 使う。
読めなかった場合や項目が空だった場合は-1はを返す。 |
|
bool SlZDtm::SlZDataManager::readUlongItem (
|
const char * itemName,
|
|
ulong * data,
|
|
CardId cardId = 0 )
|
|
|
|
cardIdで指定したカードのitemNameという項目を読みだす。ULONG項目に対して 使う。読み出した値はdataにセットされる。
読めなかった場合や項目が空だった場合はfalseを返す。 |
|
int SlZDtm::SlZDataManager::readUshortItem (
|
const char * itemName,
|
|
CardId cardId = 0 )
|
|
|
|
cardIdで指定したカードのitemNameという項目を読みだす。WORD項目に対して 使う。
読めなかった場合や項目が空だった場合は-1はを返す。 |
|
bool SlZDtm::SlZDataManager::setCurrentIndex (
|
const char * indexFName,
|
|
bool isMasterIdx = false )
|
|
|
|
注目インデックスを指定した名前のインデックスファイルに切替える ソートは保持するが、絞り込み状態(カテゴリ含む)は保持しないので注意!
indexFNameはパスを含まない名前にすること。 |
|
bool SlZDtm::SlZDataManager::setInternalUtc (
|
const char * itemName )
|
|
|
|
TIME項目の属性をセットする 本来なら拡張データベース情報にいれておくべきところだが、しがらみがあっ てそれができないなどに使う |
|
void SlZDtm::SlZDataManager::sort (
|
bool isAscendent )
|
|
|
|
マスタインデックスのソートに戻す。絞り込み状態は変わらない。 |
|
int SlZDtm::SlZDataManager::sortItem (
|
) const
|
|
|
bool SlZDtm::SlZDataManager::unfilter (
|
bool isResumeIndex = true )
|
|
|
bool SlZDtm::SlZDataManager::updateCategories (
|
CardId cardId,
|
|
QArray< int > ids,
|
|
DeleteMode mode = OneCard,
|
|
bool isAlert = false )
|
|
|
|
指定カードのカテゴリー(分類)状態を変更する
-
cardId 変更するカードのID -
ids 新しいカテゴリー状態。未分類の場合は空のリストにする。 -
mode 動作モード -
isAlert アラートを表示するかどうか
|
|
bool SlZDtm::SlZDataManager::writeAttribute (
|
CardId cardId,
|
|
uchar bitData,
|
|
bool isSet )
|
|
|
bool SlZDtm::SlZDataManager::writeCurrentTime (
|
const char * itemName,
|
|
bool isUtc )
|
|
|
bool SlZDtm::SlZDataManager::writeItem (
|
const char * itemName,
|
|
const QDate & time )
|
|
|
|
itemNameで指定した項目に、dateで指定した日付をワイルドカードで書き込む。 trueなら成功。
予めstartEditCard()かeditNewCard()でカードを編集状態にしておかなけ ればならない。 |
|
bool SlZDtm::SlZDataManager::writeItem (
|
const char * itemName,
|
|
const QDateTime & time )
|
|
|
|
itemNameで指定した項目に、timeで指定した日付時刻を書き込む。trueなら成功。
予めstartEditCard()かeditNewCard()でカードを編集状態にしておかなけ ればならない。 |
|