SHARP Zaurus
ザウルスサポートステーション
クラス SlZDtm::SlZDataManager の解説
メインページ   クラス階層   アルファベット順リスト   データ構造リスト   ファイルリスト   データ構造メンバ  
クラス SlZDtm::SlZDataManager の解説

Zaurusデータマネージャを利用するためのクラス. より詳しく...  適合機種情報はこちら

#include <slzdtm.h>

SlZDtm::SlZDataManagerに対するクラス階層図

Inheritance graph
[凡例]
SlZDtm::SlZDataManagerのコラボレーション図

Collaboration graph
[凡例]
すべてのメンバリスト

公開型

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;

    // 項目情報の設定

    // CLASという項目識別名(項目を区別するための4バイト文字列)、title
    // という項目タイトル(データベース処理には影響しない)のテキスト項
    // 目情報を作成
    itemInfo.addTextItem("CLAS",tr("title"));
    // MEM1という項目識別名(項目を区別するための4バイト文字列)、contents
    // という項目タイトル(データベース処理には影響しない)のテキスト項
    // 目情報を作成
    itemInfo.addTextItem("MEM1",tr("contents"));
    // 分類機能を使う場合は、カテゴリ項目が必要
    itemInfo.addCategoryItem();
    // デフォルトでMDTMという修正時刻(UTC)を保持する項目がある

    // マスタインデックスファイルのソート条件式
    // CLASという項目をキーに、昇順辞書ソートするという意味
    sortInfo.addSortKey("CLAS",true,true);
    // データベースを実際に作成する(すでに存在する場合はチェックする)
    // 第3引数には4バイトの識別子をつける
    SlZDataManager::createFile(boxFName,
                               idxFName,
                               'TEDT',false,
                               itemInfo,sortInfo,indexInfo);

例:データベースを使い始める。

    // BOXファイル名を指定してSlZDataManagerのインスタンス生成
    zdtm = new SlZDataManager(boxFName);

例:データベースを使い終る。

    // SlZDataManagerのインスタンス破棄
    delete zdtm;

例:データを書き込む

    // 指定カードを編集開始(cardIdが0の場合は新規カード)
    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 ( )
 

現在のBOXファイルのガベージサイズを返す

void SlZDtm::SlZDataManager::getAttrValues ( uchar * mask,
uchar * cond,
uchar * flag ) [static]
 

現在のシークレットモードに適した、アトリビュートフラグを得る。将来的に PIMレベルのシークレットモードがサポートされた時のためのもの。

bool SlZDtm::SlZDataManager::isFiltered ( ) const
 

絞り込み中かどうかを返す

カテゴリ絞り込み中の場合はfalseを返す

const SlZDataManagerItemInfo SlZDtm::SlZDataManager::items ( ) const
 

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 )
 

TIME項目に現時刻を書き込む

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()でカードを編集状態にしておかなけ ればならない。

 
▲このページのトップへ
関連サイト   修理/ご相談窓口   利用上のご注意
COPYRIGHT