SophiaFramework 4.1.7 リリース ノート
新機能
BREW 4.0 新規プロジェクトが作成可能になりました。BREW 4.0 API 用 C++ ラッパーは次回リリース時に提供される予定です。
AtomRec 構造体に関する型変換演算子 atomic_cast を追加しました。
仕様変更
SophiaFramework のヘッダ ファイルとライブラリ ファイルのパスを環境変数を利用して明示的に指定するようにアプリウィザードを改良しました。
SophiaFramework のインストール パスを絶対パスではなく環境変数から取得するように SophiaFramework に付属するアドインを改良しました。
SFXXMLNode::SetNodeValue() / SFXXMLAttribute::SetNodeValue() / SFXXMLEntity::SetNodeValue() 関数の引数の型を変更しました。
その他
リファレンス
リファレンス II 部、III部、IV 部の解説を追加・改善しました。
主な追加項目 :
- 以下のレスポンダ関連クラスの解説を追加しました。
| クラス名 | 解説 |
|---|---|
| SFRPlainMenu | タイトルやフレームのないメニューを表すレスポンダ |
| SFRFrameMenu | フレーム付きのメニューを表すレスポンダ |
| SFRTitleMenu | タイトル付きのメニューを表すレスポンダ |
| SFRPlainFrame | 枠やタイトルのない単純なフレームの機能を提供するクラス |
| SFRFrameFrame | 単純な枠のあるフレームの機能を提供するクラス |
| SFRTitleFrame | タイトルのあるフレームの機能を提供するクラス |
- ヘルパー関数のラッパークラス( SFXHelper )について、以下のそれぞれの関数の解説を追加しました。
| 関数名 | 解説 |
|---|---|
| inet_pton() | 文字列を与えられたアドレス ファミリに応じたアドレス構造体に変換します。 |
| inet_ntop() | アドレス構造体を与えられたアドレス ファミリに応じた文字列に変換します。 |
| getalscontext() | 現在実行中のアプレットのアプリケーション ローカル ストレージ コンテキストを取得します。 |
主な改善項目 :
- レスポンダ クラス : 関数の解説を改善しました。
詳細情報 : SophiaFramework リファレンス
チュートリアル
BREW 4.0 対応に伴い、スケジューラー のサンプル コードを変更しました。
サンプル アプリ
BREW 4.0 対応に伴い、サンプル アプリのクラス名のプリフィックスを変更しました。
BREW 4.0 対応に伴い、ScreenSaver と TemplateApp のサンプル コードを変更しました。
不具合修正
関数宣言に関する不具合を修正しました。
| 旧 | 新 |
|---|---|
| static SFCError SFBGetLine::EOLSize(SInt32 code) | static SInt32 SFBGetLine::EOLSize(SInt32 code) |
| SFCError SFBGetLine::GetLine(GetLine* line, SInt32 type) | SInt32 SFBGetLine::GetLine(::GetLine* line, SInt32 type) |
| SFCError SFBSocket::DbgMark(ACharConstPtr file, UInt32 line) | Void SFBSocket::DbgMark(ACharConstPtr file, UInt32 line) |
| SFCError SFBRscPool::ReleaseRsc(SFBBaseSmpConstRef resource) | UInt32 SFBRscPool::ReleaseRsc(SFBBaseSmpConstRef resource) |
| SFCError SFBQoSList::Find(SFBQuerySmpConstRef query) | SInt32 SFBQoSList::Find(SFBQuerySmpConstRef query) |
| SFCError SFXSMTP::SetSSLMode(Bool isSSL) | Void SFXSMTP::SetSSLMode(Bool isSSL) |
| SFCError SFXSMTPSender::SetSSLMode(Bool isSSL) | Void SFXSMTPSender::SetSSLMode(Bool isSSL) |
| SFCError SFXSMTPSender::SetTrustMode(UInt32 sslTrustMode) | Void SFXSMTPSender::SetTrustMode(UInt32 sslTrustMode) |
| SFCError SFXPOP3::SetSSLMode(Bool isSSL) | Void SFXPOP3::SetSSLMode(Bool isSSL) |
| SFCError SFXPOP3Receiver::SetSSLMode(Bool isSSL) | Void SFXPOP3Receiver::SetSSLMode(Bool isSSL) |
| SFCError SFXPOP3Receiver::SetTrustMode(UInt32 sslTrustMode) | Void SFXPOP3Receiver::SetTrustMode(UInt32 sslTrustMode) |
SophiaFramework 4.1.6 リリース ノート
その他
リファレンス
リファレンス II 部、III部、IV 部の解説を追加・改善しました。
主な追加項目 :
- BREW 3.0 / 3.1 インターフェース ラッパーの解説を追加しました。
- BREW インターフェース ラッパー : 戻り値を追加しました。
- BREW インターフェース ラッパー : コールバック関数の項目を追加しました。
- レスポンダ クラス : 戻り値を追加しました。
- ネットワーク クラス : 戻り値を追加しました。
- ストリーム クラス : 戻り値を追加しました。
- その他ユーティリティ クラス : サンプル コードと戻り値を追加しました。
- マクロ : コールバック用マクロの項目を追加しました。
主な改善項目 :
- レスポンダ クラス : 関数の解説と戻り値を改善しました。
- ネットワーク クラス : 関数の解説と戻り値を改善しました。
- ストリーム クラス :関数の解説と戻り値を改善しました。
- その他ユーティリティ クラス : 関数の解説と戻り値を改善しました。
詳細情報 : SophiaFramework リファレンス
チュートリアル
RssReader サンプル コードを修正しました。
SophiaFramework 4.1.5 リリース ノート
仕様変更
イベントを表す定数 SFEVT_APPLICATION_CLASS_BEGIN を SFEVT_APPLET_CLASS_BEGIN に変更しました。
イベントを表す定数 SFEVT_APPLICATION_CLASS_END を SFEVT_APPLET_CLASS_END に変更しました。
SFCApplication::Invoke() 関数のアクセス指定子を public から protected へ変更しました。
SFCErrorEnum のエラー コードを更新しました。
その他
リファレンス
リファレンス II 部、III部、IV 部の解説を追加・改善しました。
主な追加項目 :
- WSDL / SOAP / XML : RPC による Web サービス呼び出しのレスポンス部分のサンプル コードを追加しました。
- ファイル クラス : サンプル コードを追加しました。
- ネットワーク クラス : サンプル コードと戻り値を追加しました。
- ストレージ クラス : サンプル コードと戻り値を追加しました。
- XML 処理 : サンプル コードと戻り値を追加しました。
主な改善項目 :
- WSDL / SOAP / XML : XML SAX パーサーのサンプル コードを改善しました。
- ファイル クラス : 関数の解説と戻り値を改善しました。
- ネットワーク クラス : 関数の解説と戻り値を改善しました。
- ストレージ クラス : 関数の解説と戻り値を改善しました。
- XML 処理 : 関数の解説と戻り値を改善しました。
- データ型リファレンス( SFCErrorEnum ) : エラー コードを更新しました。
詳細情報 : SophiaFramework リファレンス
SophiaFramework 4.1.4 リリース ノート
その他
リファレンス
リファレンス III部の解説を追加・改善しました。
主な追加項目 :
- 文字列クラス : サンプル コードを追加しました。
- 図形と色クラス : サンプル コードを追加しました。
- コレクション クラス : サンプル コードを追加しました。
- メモリ管理クラス : サンプル コードを追加しました。
- ファイル クラス : サンプル コードを追加しました。
- ネットワーク クラス : サンプル コードを追加しました。
- ストレージ クラス : GetStreamReader / GetStreamWriter 関数の可変長バージョンを追加しました。
主な改善項目 :
- 文字列クラス : 関数の解説と戻り値を改善しました。
- 図形と色クラス : 関数の解説と戻り値を改善しました。
- コレクション クラス : 関数の解説と戻り値を改善しました。
- メモリ管理クラス : 関数の解説と戻り値を改善しました。
- ファイル クラス : 関数の解説と戻り値を改善しました。
- ネットワーク クラス : 関数の解説と戻り値を改善しました。
- ストリーム クラス : 関数の解説を改善しました。
- ストレージ クラス : 関数の解説を改善しました。
詳細情報 : SophiaFramework リファレンス
不具合修正
SFXSOAPRPC::Invoke() 関数に関して、大きなデータを受信できない不具合を修正しました。
SophiaFramework 4.1.3 リリース ノート
その他
リファレンス
リファレンス II 部、III部、IV 部、V 部の解説を追加・改善しました。
主な追加項目 :
- レスポンダ : 「レスポンダの検索」で取得できるタイプ及びアトリビュートの表を追加しました。
- レスポンダ( SFR )クラス : SFRPlainPane / SFRPlainDialog / SFRFrameWindow / SFRFrameDialog / SFRTitleWindow / SFRTitleDialog の一部関数を追加しました。
- マクロ / 型 / デバッグ / その他 : 「GUI フレームワーク用マクロ」にイベント ハンドラ登録用マクロを追加しました。
主な改善項目 :
- レスポンダ( SFR )クラス : ハンドラの解説を改善しました。
- XML処理( SFXXML / SFXSOAP )クラス : 関数の解説を改善しました。
- データ型リファレンス( SFCErrorEnum ) : エラーの解説を改善しました。
詳細情報 : SophiaFramework リファレンス
最新の BREW 日本拡張パッケージに対応しました。 ( 2007 年 05 月 15 日 現在 )
SophiaFramework 4.1.2 リリース ノート
その他
リファレンス
リファレンスの I 部、II 部、III部、 IV 部、VI 部の解説を追加・改善しました。
主な追加項目 :
- トラブル シューティング : 初期導入時のトラブル対応
- SophiaFramework アプリ : SophiaFramework アプリの概要
- イベント処理 : イベントとイベント ハンドラ
- レスポンダ : すべてのレスポンダについての解説
- XML 処理 : SOAP 通信をするサンプルコードの追加
- C 言語用 BREW API を呼び出す方法
- カテゴリー別クラスリファレンス
主な改善項目 :
- マクロ / 型 / デバッグ / その他 : 情報を最新にしました。
- トレーサ : 解説を簡潔にしました。
詳細情報 : SophiaFramework リファレンス
サンプル コード
SFXXMLExplainer サンプル コードのコメントを修正しました。
SophiaFramework 4.1.1 リリース ノート
新機能
SFXMail パッケージのクラスに SSL 機能を追加しました。
SFXSMTP クラス、SFXSMTPSender クラス、SFXPOP3 クラス、SFXPOP3Receiver クラスに以下の関数を追加しました。
| 関数 | 解説 |
|---|---|
| SetSSLMode() | SSL 機能の有効 / 無効の設定 |
| GetSSLMode() | SSL 機能の有効 / 無効の取得 |
| SetTrustMode() | 証明書の検証モードの設定 |
| GetTrustMode() | 証明書の検証モードの取得 |
SFXArray クラス、SFXList クラス、SFXStack クラスに以下の関数を追加しました。
| 関数 | 解説 |
|---|---|
| SetFirst() | 最初の要素の設定 |
| SetLast() | 最後の要素の設定 |
最新の BREW 日本拡張パッケージに対応しました。 ( 2007 年 03 月 20 日 現在 )
仕様変更
SFXTextEncoding クラスのスタック使用量を削減しました。
SFXEvent クラスのイベントタイプ型を SFCEventEnum 型から AEEEvent 型へ変更しました。
ユーザ定義イベントを設定するときに SFCEventEnum 型へキャストしなくてもよくなりました。
SFXConfig::Move() 関数を廃止しました。
HANDLER_DECLARE_BOOLRENDER / HANDLER_IMPLEMENT_BOOLRENDER マクロを廃止しました。
代替マクロとして HANDLER_DECLARE_VOIDRENDER / HANDLER_IMPLEMENT_VOIDRENDER マクロが利用可能です。
アプリウィザード使用時にデフォルトで KDDI 拡張インターフェースを使用しないように変更しました。
SophiaFramework 4.1.0 リリース ノート
新機能
SFXHashmap クラスの設計を改良し、キーイテレータと値イテレータを追加しました。
以下のイテレータクラスが追加されました。
| クラス | 解説 |
|---|---|
| SFXHashmap::KeyIterator | キーイテレータ |
| SFXHashmap::KeyEnumerator | キーイテレータ(列挙のみ) |
| SFXHashmap::ValueIterator | 値イテレータ |
| SFXHashmap::ValueEnumerator | 値イテレータ(列挙のみ) |
以下の関数が SFXHashmap クラスに追加されました。
| 関数 | 解説 |
|---|---|
| GetKeyIterator() | キーイテレータの取得 |
| GetKeyEnumerator() | キーイテレータ(列挙のみ)の取得 |
| GetValueIterator() | 値イテレータの取得 |
| GetValueEnumerator() | 値イテレータ(列挙のみ)の取得 |
SFXHashmap クラスの改良に伴い、文字列キーを用いる場合の文字列のコピー回数の半減、内部エラー発生時の状態保存への対応も行われました。
SFXList クラスと SFXHashmap クラスに EmptyInstace() 関数を追加しました。
SFXArray クラス、SFXList クラス、SFXStack クラスに以下の関数を追加しました。
| 関数 | 解説 |
|---|---|
| GetFirstIterator() | 最初の要素に対するイテレータの取得 |
| GetLastIterator() | 最後の要素に対するイテレータの取得 |
| GetFirstEnumerator() | 最初の要素に対するイテレータ(列挙のみ)の取得 |
| GetLastEnumerator() | 最後の要素に対するイテレータ(列挙のみ)の取得 |
Microsoft Visual C++ 6.0, Microsoft Visual C++ .NET 2003 用のデバッガ定義ファイル (autoexp.dat) に最新のクラス定義を追加しました。
デバッガを使用し変数トレースを行うときに SophiaFramework のクラスを解析しやすくなります。
テンプレートクラスのコンパイル時に型が条件に適うことを審査する SFMCONCEPT マクロを追加しました。
仕様変更
すべてのクラスにおいて IndexOf() 関数を FirstIndexOf() 関数に変更しました。
SFXArray クラス、SFXList クラス、SFXStack クラスの以下の関数のデフォルト引数を廃止しました。
| 旧宣言 | 新宣言 |
|---|---|
| GetIterator(SInt32 index = SINT32_MINIMUM) | GetIterator(SInt32 index) |
| GetEnumerator(SInt32 index = SINT32_MINIMUM) | GetEnumerator(SInt32 index) |
引数を省略した関数呼び出しは、新しく追加された GetFirstIterator() 関数や GetFirstEnumerator() 関数に置換できます。
一部のテンプレートクラスでテンプレート引数に const 型を指定できないように仕様を変更しました。
影響を受けるクラスは SFXBrewPointer, SFXHeap, SFXClusterHeap, SFXArray, SFXHashmap, SFXList, SFXStack です。
SophiaFramework 2.x, SophiaFramework 3.x, SophiaFramework 4.0.x に関連する非推奨クラスと API を廃止しました。
SFXConfig::GetEntry() 関数を廃止しました。
SFRResponder クラスの以下の未使用 API と定数を廃止しました。
GetAppearanceShadow(), GetAppearanceFloating(), APPEARANCE_SHADOW, APPEARANCE_FLOATING
不具合修正
キーの要素が重複する SFXHashmap::Merge() 関数の不具合を修正しました。
W43SA 上でネイティブテキスト入力画面への移行時に端末がフリーズする SFREditboxControl クラスの不具合を修正しました。
コンボボックスメニューの表示中に SFRComboboxControl クラスのインスタンスを解放するとフリーズする、SFRComboboxControl クラスの不具合を修正しました。
SophiaFramework 4.0 から 4.1 への移行方法
SophiaFramework 4.0.4 リリース ノート
新機能
テキスト入力コントロールとして SFREditboxControl クラスを追加しました。
※ BREW 日本拡張パッケージの機能拡張を利用したり、色設定を変更できます。
SFXAnsiString クラスと SFXWideString クラスに以下の関数を追加しました。
| 関数 | 解説 |
|---|---|
| TrimLeft() | 文字列の先頭のトリム |
| TrimRight() | 文字列の終端のトリム |
SFXAnsiString クラスと SFXWideString クラスの以下の関数に sensitive 引数を追加しました。
IndexOf(), LastIndexOf(), StartsWith(), EndsWith(), Replace(), Trim()
※ sensitive 引数に false を設定すると、大文字と小文字の区別を行いません。
SFXBuffer クラスに以下の関数を追加しました。
| 関数 | 解説 |
|---|---|
| SFXBuffer(Byte byte) | バイト値によるクラス作成 |
| operator+=(Byte byte) | バイト値の追加 |
| Set(Byte byte) | バイト値の設定 |
| Add(Byte byte) | バイト値の追加 |
| IndexOf() | 先頭から検索してバイナリ列が一致するインデックス |
| LastIndexOf() | 終端から検索してバイナリ列が一致するインデックス |
| StartsWith() | 先頭のバイナリ列が一致するかの検査 |
| EndsWith() | 終端のバイナリ列が一致するかの検査 |
| Insert(UInt32 index, Byte byte) | バイト値の挿入 |
最新の BREW 日本拡張パッケージに対応しました。( 2006 年 12 月 15 日 現在 )
仕様変更
GETAPPINSTANCE() 関数を使用する BREW エクステンションも利用可能になりました。
※ SophiaFramework から GETAPPINSTANCE() 関数を使用する BREW エクステンションを呼び出すための変換コードが不要になりました。 ( 例 : 一部の KDDI 社提供の BREW エクステンション )
IndexOf() 関数と LastIndexOf() 関数のデフォルト引数の値を変更しました。
| 旧宣言 | 新宣言 |
|---|---|
| IndexOf(..., SInt32 index = -1) | IndexOf(..., SInt32 index = SINT32_MINIMUM) |
| LastIndexOf(..., SInt32 index = -1) | LastIndexOf(..., SInt32 index = SINT32_MAXIMUM) |
LastIndexOf() 関数の定義を JAVA API と一致するように変更しました。
※ index 引数が 0 未満の場合は -1 を返します。
SFXBuffer::Slice() 関数の定義を変更しました。
| 廃止関数 | 代替関数 |
|---|---|
| SFXBuffer Slice(UInt32 begin, UInt32 end) const | Void Slice(UInt32 begin, UInt32 end) |
※ Slice() 関数は値を返していましたが、変更後は自分自身に作用します。
SFRBrewControl クラスとSFRBrewTextControl クラスを廃止しました。
SFREditboxControl クラスは、廃止された SFRBrewTextControl クラスの機能を引き継ぎます。
SFRBrewTextControl クラスに関する以下の名称は SFREditboxControl クラスの別名として利用できます。
SFRBrewTextControl, TYPE_SFRBREWTEXTCONTROL, ATTRIBUTE_SFRBREWTEXTCONTROL, BEHAIVOR_SFRBREWTEXTCONTROL
アプリ起動時に発生したエラー処理を BREW ネイティブに近くなるように変更しました。
すべてのサンプルコードに関して、BREW 日本拡張パッケージを使わないように変更しました。
不具合修正
メモリ確保に失敗したときにフリーズする SFXTextEncoding クラスの不具合を修正しました。
E02SA 上でテキスト入力画面を表示中にサスペンドした時に発生する、SFRBrewTextControl クラスの不具合を修正しました。
※ SFREditboxControl クラスとして採用されています。
携帯端末上で SMTP コマンドが無くなる SFXSMTP::SendCommand() 関数の不具合を修正しました。
本文の無いメッセージの解析に失敗する SFXMailMessage::Parse() 関数の不具合を修正しました。
SetDestination() 関数と ResetDestination() 関数の利用時にトランスレート値とクリッピング領域の情報が失なわれる SFXGraphics クラスの不具合を修正しました。
SophiaFramework 4.0.3 リリースノート
新機能
テキストエンコーディングを相互変換する SFXTextEncoding クラスを追加しました。
UTF-8, UTF-16, UTF-32, EUC-JP, EUC-CN, Shift_JIS のエンコーディングとそれらのエンコーディング変換に対応しています。
リングバッファサイズを意識せずに読み書きできるようにストリームを機能拡張しました.
※ リングバッファサイズを指定せずにストリームを取得すると、リングバッファは自動的に管理されます。
この変更に伴い SFXStorage パッケージの全ストレージクラスに対して GetStreamWriter() 関数と GetStreamReader() 関数のオーバーロード関数が追加されました。
SFXStreamWriter 系クラスと SFXStreamReader 系クラスに以下の関数を追加しました。
| 関数 | 解説 |
|---|---|
| SetTrigger() | サイズやバイナリ一致など、コールバック条件の設定 |
| ResetTrigger() | コールバック条件のリセット |
| Triggers() | 設定された条件によりコールバックされたかの判定 |
SFXStreamWriter 系クラスと SFXStreamReader 系クラスのエラー処理を強化しました。
初期化する前や初期化に失敗した時、ストリームの操作をしてもフリーズしなくなりました。
SFXOutputStream インターフェースクラスと SFXInputStream インターフェースクラスの抽象クラスとして SFXStream インターフェースクラスを追加しました。
コールバック関数を記述する場合に使用するコールバックマクロを追加しました。
| 宣言マクロ | 実装マクロ |
|---|---|
| CALLBACK_DECLARE_SFXSTREAM | CALLBACK_IMPLEMENT_SFXSTREAM |
| CALLBACK_DECLARE_ SFXELASTICSTREAMWRITER | CALLBACK_IMPLEMENT_ SFXELASTICSTREAMWRITER |
| CALLBACK_DECLARE_ SFXELASTICSTREAMREADER | CALLBACK_IMPLEMENT_ SFXELASTICSTREAMREADER |
最新の BREW 日本拡張パッケージに対応しました。( 2006 年 11 月 10 日 現在 )
仕様変更
SFXStreamWriter 系クラスの Flush() 関数の下記のオーバーロード関数を廃止し、SetTrigger() 関数に委譲しました。
| 廃止関数 | 代替関数 |
|---|---|
| Flush(UInt32 size) | SetTrigger(UInt32 size) + Flush(Void) |
| Flush(SFXBufferConstRef buffer) | SetTrigger(SFXBufferConstRef buffer) + Flush(Void) |
| Flush(VoidConstPtr buffer, UInt32 size) | SetTrigger(VoidConstPtr buffer, UInt32 size) + Flush(Void) |
| Flush(UInt32 size, CallbackSPP spp, VoidPtr reference) | SetTrigger(UInt32 size) + Flush(CallbackSPP spp, VoidPtr reference) |
| Flush(SFXBufferConstRef buffer, CallbackSPP spp, VoidPtr reference) | SetTrigger(SFXBufferConstRef buffer) + Flush(CallbackSPP spp, VoidPtr reference) |
| Flush(VoidConstPtr buffer, UInt32 size, CallbackSPP spp, VoidPtr reference) | SetTrigger(VoidConstPtr buffer, UInt32 size) + Flush(CallbackSPP spp, VoidPtr reference) |
SFXStreamReader 系クラスの Fetch() 関数の下記のオーバーロード関数を廃止し、SetTrigger() 関数に委譲しました。
| 廃止関数 | 代替関数 |
|---|---|
| Fetch(UInt32 size) | SetTrigger(UInt32 size) + Fetch(Void) |
| Fetch(SFXBufferConstRef buffer) | SetTrigger(SFXBufferConstRef buffer) + Fetch(Void) |
| Fetch(VoidConstPtr buffer, UInt32 size) | SetTrigger(VoidConstPtr buffer, UInt32 size) + Fetch(Void) |
| Fetch(UInt32 size, CallbackSPP spp, VoidPtr reference) | SetTrigger(UInt32 size) + Fetch(CallbackSPP spp, VoidPtr reference) |
| Fetch(SFXBufferConstRef buffer, CallbackSPP spp, VoidPtr reference) | SetTrigger(SFXBufferConstRef buffer) + Fetch(CallbackSPP spp, VoidPtr reference) |
| Fetch(VoidConstPtr buffer, UInt32 size, CallbackSPP spp, VoidPtr reference) | SetTrigger(VoidConstPtr buffer, UInt32 size) + Fetch(CallbackSPP spp, VoidPtr reference) |
SFXStreamWriter 系クラスと SFXStreamReader 系クラスの IsValid() 関数を廃止しました。
不具合修正
W42SA 上で正常にディレクトリが削除されないことがある SFXDirectory::Remove() 関数の不具合を修正しました。
W42SA 上でファイル終端時に EFILENOEXISTS エラーが返される SFXStreamReader 系クラスの不具合を修正しました。
SophiaFramework 4.0.2 リリースノート
新機能
SOAP-RPC プロトコルを扱うクラス ( SFXSOAPRPC ) と WSDL を利用してプロキシを作成し、ダイナミックバイディングを行うクラス ( SFXSOAPServiceProxy ) が HTTPS に対応しました。
BREW SDK インターフェイスを C++ のクラスでラップする SFBWrapper パッケージのいくつかのクラスで SFBAStreamSmp クラス( IAStream インターフェースのラッパークラス ) や SFBSourceSmp クラス( ISource インターフェイスのラッパークラス ) を引数に取る関数に対して、ストレージを表す抽象クラス( SFXStorage ) を引数に取るオーバーロード関数を追加しました。
新しいファイルパスを自動的に生成する GetUniquePath() 関数を SFXDirectory クラスと SFXFile クラスに追加しました。
SFBImage クラスと SFBViewer クラスに NewInstance() 関数を追加しました。
SFXHTTPConnection クラスを利用する SFXProtocolExplainer サンプルコードを追加しました。
BREW 開発ツール Camulator が BREW 3.1 に対応しました。
最新の BREW 日本拡張パッケージに対応しました。( 2006 年 10 月 6 日 現在 )
仕様変更
SFXDirectory クラスと SFXFile クラスの GetTemporaryPath() 関数から prefix と suffix パラメータを削除しました。
prefix と suffix パラメータを明示的に指定する必要がある場合は、GetUniquePath() 関数を利用してください。
レスポンダの以下のマクロ名を新しい規則に変更しました。
旧名称も互換性維持のため利用できます。
| 旧名称 | 新名称 |
|---|---|
| TYPE_コンポーネント名(例:TYPE_BUTTONCONTROL) | TYPE_クラス名(例:TYPE_SFRBUTTONCONTROL) |
| ATTRIBUTE_コンポーネント名 | ATTRIBUTE_クラス名 |
| BEHAVIOR_コンポーネント名 | BEHAVIOR_クラス名 |
不具合修正
SFXStorage パッケージの全てのクラスで、内部の初期化不良により読み書きできなくなることがある不具合を修正しました。
SFXXML パッケージの幾つかのクラスで、メモリ解放忘れが発生することがある不具合を修正しました。
存在しないファイルパスを設定した場合にエラー値を取得できない、SFXXMLDOMParser クラスの不具合を修正しました。
"/./././" や "a/b/c///../../" などのパスが正常に正規化されない SFXPath::Normalize() 関数の不具合を修正しました。
特定の条件下で不正な描画が行われる SFXGraphics::DrawString() 関数の不具合を修正しました。
SFXXMLExplainer サンプルコードが W31T 上でフリーズする不具合を修正しました。
ステップの途中で操作を完了すると不正なソースコードが出力される、Microsoft Visual C++ 6.0 用アプリウィザードの不具合を修正しました。
SophiaFramework 4.0.1 リリースノート
新機能
SSL 通信を実現する SFXSSLSocket クラスを追加しました。
SFXTCPSocket クラスとほぼ同じ方法で SSL 通信を記述できます。
SFBUnzipAStream クラスをラップした SFXZIPDecoder クラスを追加しました。
ZIP 形式のデータを SFXStreamReader 系クラスを利用して効率良く解凍できます。
SFBSource クラスを設定 / 取得するための関数を SFXHTTPConnection クラスに追加しました。
| 関数 | 解説 |
|---|---|
| SetRequestContent() | 送信データを管理する SFBSource クラスの設定 |
| GetRequestContent() | 送信データを管理する SFBSource クラスの取得 |
| GetResponseContent() | 受信データを管理する SFBSource クラスの取得 |
コールバック関数を記述するためのコールバックマクロを追加しました。
| 宣言マクロ | 実装マクロ |
|---|---|
| CALLBACK_DECLARE_SFXSSLSOCKET | CALLBACK_IMPLEMENT_SFXSSLSOCKET |
| CALLBACK_DECLARE_SFXZIPDECODER | CALLBACK_IMPLEMENT_SFXZIPDECODER |
XML パーサや WSDL を使う SFXXMLExplainer サンプルコードを追加しました。
NTP(Network Time Protocol) を使う NetworkTime サンプルコードを追加しました。
仕様変更
SFXPath::SetName() 関数や SFXPath::SetExtension() 関数などでディレクトリパスに対する挙動を変更しました。
変更後はディレクトリパスもファイルパスと同等に扱われるようになりました。
SFXStorage パッケージに含まれるクラスを利用した場合のコンパイル後のコードを削減しました。
GUI フレームワークを利用する場合に使用するいくつかのハンドラマクロを削除しました。
以下のハンドラマクロは、最新の最適化規約と競合するため削除されました。
これらのかわりに、HANDLER_DECLARE_VOIDEVENT / HANDLER_IMPLEMENT_VOIDEVENT などのマクロを使用してください。
| 宣言マクロ | 実装マクロ |
|---|---|
| HANDLER_DECLARE_VOIDPARAMZERO | HANDLER_IMPLEMENT_VOIDPARAMZERO |
| HANDLER_DECLARE_BOOLPARAMZERO | HANDLER_IMPLEMENT_BOOLPARAMZERO |
| HANDLER_DECLARE_VOIDPARAMONE | HANDLER_IMPLEMENT_VOIDPARAMONE |
| HANDLER_DECLARE_BOOLPARAMONE | HANDLER_IMPLEMENT_BOOLPARAMONE |
| HANDLER_DECLARE_VOIDPARAMTWO | HANDLER_IMPLEMENT_VOIDPARAMTWO |
| HANDLER_DECLARE_BOOLPARAMTWO | HANDLER_IMPLEMENT_BOOLPARAMTWO |
| HANDLER_DECLARE_VOIDPARAMTHREE | HANDLER_IMPLEMENT_VOIDPARAMTHREE |
| HANDLER_DECLARE_BOOLPARAMTHREE | HANDLER_IMPLEMENT_BOOLPARAMTHREE |
不具合修正
携帯端末上でファイル終端の場合に、SFXFile::Write() 関数と SFXFile::Read() 関数が SFERR_FAILED エラーを返していた不具合を修正しました。
修正後は EFILEEOF エラーを返すようにしました。
SFBSSL::NegotiateV() 関数と SFBSSL::RenegotiateV() 関数の関数宣言の不具合を修正しました。
BREW 3.1 で SFXPath::IsRootDirectory() 関数が "/" をルートパスとして解釈していた不具合を修正しました。
SophiaFramework 4.0.0 リリースノート
概要
ファイルやネットワークを扱うユーティリティークラスの設計が見直され、いくつかの新しいクラスが追加されました。また、XML / SOAP を簡単に扱える高機能クラスの搭載や、POP3 / SMTP を扱うクラスの利便性の向上などもおこなわれました。
| クラス | 解説 |
|---|---|
| SFXCallback | AEECallback 構造体が使いやすくラップされました。 |
| SFXTask | ISHELL_Resume() 関数を簡単に利用できます。 |
| SFXTimer | ISHELL_SetTimer() 関数を簡単に利用できるようにします。 |
| SFXStorage | メモリ、ファイルやネットワークなどのストレージを表すインターフェースクラスです。 |
| SFXMemory | メモリを利用したストレージクラスです。メモリの読み書き機能を提供します。 |
| SFXSource | SFBSource クラスをラップしたストレージクラスです。SFBSource クラスからの読み込み機能を提供します。 |
| SFXFile | ファイルを利用したストレージクラスです。ファイルの読み書き機能を提供します。また、ファイルの作成や削除、リネームなどのファイル操作機能を提供します。 |
| SFXDirectory | ディレクトリの作成や削除、ファイルの列挙などのファイル操作機能を提供します。 |
| SFXPath | ファイルパスを表すクラスです。複雑な文字列処理をせずにパスを編集できます。 |
| SFXTCPSocket | TCP/IP ソケットを利用したストレージクラスです。ソケットの読み書き機能を提供します。 |
| SFXUDPSocket | UDP ソケットをもちいた通信機能を提供します。 |
| SFXInetAddress | ホスト名を表すクラスです。ホスト名と IP アドレスの変換を自動的に行えます。 |
| SFXSocketAddress | ホスト名と IP アドレスに加えてポート番号を表すクラスです。ホスト名と IP アドレスの変換を自動的に行えます。 |
| SFXOutputStream | 書き込みストリームを表すインターフェースクラスです。 |
| SFXInputStream | 読み込みストリームを表すインターフェースクラスです。 |
| SFXStreamWriter | 書き込みストリームへのリングバッファをもちいた書き込み機能を提供します。 |
| SFXStreamReader | 読み込みストリームからのリングバッファをもちいた読み込み機能を提供します。 |
| SFXBinaryStream | バイナリストリームを表す抽象クラスです。 |
| SFXBinaryStreamWriter | 書き込みストリームへのエンディアン変換などの高機能な書き込み機能を提供します。 |
| SFXBinaryStreamReader | 読み込みストリームからのエンディアン変換などの高機能な読み込み機能を提供します。 |
| SFXStringStream | 文字列ストリームを表す抽象クラスです。 |
| SFXAnsiStringStreamWriter | 書き込みストリームを ANSI 文字列として処理し、高機能な書き込み機能を提供します。 |
| SFXAnsiStringStreamReader | 読み込みストリームを ANSI 文字列として処理し、高機能な読み込み機能を提供します。 |
| SFXWideStringStreamWriter | 書き込みストリームを WIDE 文字列として処理し、高機能な書き込み機能を提供します。 |
| SFXWideStringStreamReader | 読み込みストリームを WIDE 文字列として処理し、高機能な読み込み機能を提供します。 |
| SFXHTTPConnection | SFBWeb クラスを利用した HTTP / HTTPS 通信を提供します。通信中の各種リソースの管理などは自動的に行われます。 |
| SFXSMTP | SMTP プロトコルを処理するための各種機能を提供します。 |
| SFXSMTPSender | SMTP プロトコルをもちいてメールを送信します。 |
| SFXPOP3 | POP3 プロトコルを処理するための各種機能を提供します。 |
| SFXPOP3Receiver | POP3 プロトコルをもちいてメールを受信します。 |
| SFXMailbox | メールボックス機能を提供します。 |
| SFXMailField | メールのヘッダ部分を処理するための各種機能を提供します。 |
| SFXMailMessage | メールの本文部分を処理するための各種機能を提供します。 |
| SFXMailUtility | ShiftJIS と JIS の変換、Base64, QuotedPrintable, MD5 のエンコードやデコードなどの機能を提供します。 |
| SFXXMLGrammer | DTD や XML スキーマなどのスキーマ言語を表す抽象クラスです。 |
| SFXDTDGrammer | スキーマ言語の一つである DTD を表すクラスです。 |
| SFXSchemaGrammer | スキーマ言語の一つである XML スキーマを表すクラスです。 |
| SFXSOAPWriter | SOAP メッセージの作成機能を提供します。 |
| SFXSOAPParser | SOAP メッセージの解析機能を提供します。 |
| SFXSOAPRPC | RPC をもちいて SOAP メッセージを送受信します。 |
| SFXSOAPServiceProxy | WSDL を読み込み、解釈して実行します。 |
| SFXXSDDOMParser | DOM 方式でスキーマ付き XML 文章を解析します。 |
| SFXXMLDOMParser | DOM 方式で XML 文章を解析します。 |
| SFXXMLSAXParser | SAX 方式で XML 文章を解析します。 |
| SFXXMLDefaultHandler | SAX パーサのイベント通知を処理する抽象クラスです。 |
| SFXXMLNode | DOM の各種ノードを表す抽象クラスです。 |
| SFXXMLAttribute | Attr (属性) ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。 |
| SFXXMLCDATASection | CDATASection ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。 |
| SFXXMLComment | Comment ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。 |
| SFXXMLDocument | Document ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。 |
| SFXXMLDocumentFragment | DocumentFragment ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。 |
| SFXXMLDocumentType | DocumentType ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。 |
| SFXXMLElement | Element ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。 |
| SFXXMLEntity | Entity ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。 |
| SFXXMLEntityReference | EntityReference ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。 |
| SFXXMLNotation | Notation ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。 |
| SFXXMLProcessingInstruction | ProcessingInstruction ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。 |
| SFXXMLText | Text ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。 |
| 廃止クラス | 代替クラス |
|---|---|
| SFUIPEndpoint | SFXInetSocket |
| SFUHostResolver | SFXInetAddress |
| SFUStream | SFXStorage |
| SFUMemoryStream | SFXMemory |
| SFUSourceStream | SFXSource |
| SFUFileStream | SFXFile |
| SFUNetworkStream | SFXTCPSocket, SFXUDPSocket |
| SFUHttpConnection | SFXHTTPConnection |
| SFUSmtp | SFXSMTP |
| SFUSmtpSender | SFXSMTPSender |
| SFUPop3 | SFXPOP3 |
| SFUPop3Receiver | SFXPOP3Receiver |
| SFUMailField | SFXMailField |
| SFUMailMessage | SFXMailMessage |
| SFUMailUtil | SFXMailUtility |
| SFUBase64 | SFXMailUtility |
| SFUQuotedPrintable | SFXMailUtility |
仕様変更
HANDLER_DECLARE_XXX マクロを使用するときのクラス名部分のパラメータを削除しました。
alignof マクロの種類が追加され、align08of, align16of, align32of, align64of マクロに変更しました。
clusterof マクロの種類が追加され、cluster08of, cluster16of, cluster32of, cluster64of マクロに変更しました。
SFXDate クラスの表す秒が 0 の時に Format() 関数や ToJulianType() 関数が "0000/00/00 00:00:00" を表すように動作を変更しました。
大きな値を保持できるように SFXDateDuration クラスの内部変数を SInt64 型に変更しました。
新機能
SophiaFramework 用の ARM メイクファイル生成ツールを追加しました。
BREW の基準時である "1980/01/06 00:00:00" と ANSI の基準時である "1970/01/01 00:00:00" の差を表すOffset19700101() 関数を SFXDateDuration クラスに追加しました。
BREW の基準時である "1980/01/06 00:00:00" と NTP の基準時である "1900/01/01 00:00:00" の差を表すOffset19000101() 関数を SFXDateDuration クラスに追加しました。
日・時・分・秒を用いて値を設定するコンストラクタと Set() 関数を SFXDateDuration クラスに追加しました。
コールバック関数を記述する場合に使用する幾つかのコールバックマクロを追加しました。
| 宣言マクロ | 実装マクロ |
|---|---|
| CALLBACK_DECLARE_SFXCALLBACK | CALLBACK_IMPLEMENT_SFXCALLBACK |
| CALLBACK_DECLARE_SFXTASK | CALLBACK_IMPLEMENT_SFXTASK |
| CALLBACK_DECLARE_SFXTIMER | CALLBACK_IMPLEMENT_SFXTIMER |
| CALLBACK_DECLARE_SFXSTORAGE | CALLBACK_IMPLEMENT_SFXSTORAGE |
| CALLBACK_DECLARE_SFXMEMORY | CALLBACK_IMPLEMENT_SFXMEMORY |
| CALLBACK_DECLARE_SFXSOURCE | CALLBACK_IMPLEMENT_SFXSOURCE |
| CALLBACK_DECLARE_SFXFILE | CALLBACK_IMPLEMENT_SFXFILE |
| CALLBACK_DECLARE_SFXINETADDRESS | CALLBACK_IMPLEMENT_SFXINETADDRESS |
| CALLBACK_DECLARE_SFXSOCKETADDRESS | CALLBACK_IMPLEMENT_SFXSOCKETADDRESS |
| CALLBACK_DECLARE_SFXTCPSOCKET | CALLBACK_IMPLEMENT_SFXTCPSOCKET |
| CALLBACK_DECLARE_SFXUDPSOCKET | CALLBACK_IMPLEMENT_SFXUDPSOCKET |
| CALLBACK_DECLARE_SFXOUTPUTSTREAM | CALLBACK_IMPLEMENT_SFXOUTPUTSTREAM |
| CALLBACK_DECLARE_SFXINPUTSTREAM | CALLBACK_IMPLEMENT_SFXINPUTSTREAM |
| CALLBACK_DECLARE_SFXSTREAMWRITER | CALLBACK_IMPLEMENT_SFXSTREAMWRITER |
| CALLBACK_DECLARE_SFXSTREAMREADER | CALLBACK_IMPLEMENT_SFXSTREAMREADER |
| CALLBACK_DECLARE_ SFXBINARYSTREAMWRITER | CALLBACK_IMPLEMENT_ SFXBINARYSTREAMWRITER |
| CALLBACK_DECLARE_ SFXBINARYSTREAMREADER | CALLBACK_IMPLEMENT_ SFXBINARYSTREAMREADER |
| CALLBACK_DECLARE_ SFXANSISTRINGSTREAMWRITER | CALLBACK_IMPLEMENT_ SFXANSISTRINGSTREAMWRITER |
| CALLBACK_DECLARE_ SFXANSISTRINGSTREAMREADER | CALLBACK_IMPLEMENT_ SFXANSISTRINGSTREAMREADER |
| CALLBACK_DECLARE_ SFXWIDESTRINGSTREAMWRITER | CALLBACK_IMPLEMENT_ SFXWIDESTRINGSTREAMWRITER |
| CALLBACK_DECLARE_ SFXWIDESTRINGSTREAMREADER | CALLBACK_IMPLEMENT_ SFXWIDESTRINGSTREAMREADER |
| CALLBACK_DECLARE_SFXHTTPCONNECTION | CALLBACK_IMPLEMENT_SFXHTTPCONNECTION |
| CALLBACK_DECLARE_SFXSMTP | CALLBACK_IMPLEMENT_SFXSMTP |
| CALLBACK_DECLARE_SFXSMTPSENDER | CALLBACK_IMPLEMENT_SFXSMTPSENDER |
| CALLBACK_DECLARE_SFXPOP3 | CALLBACK_IMPLEMENT_SFXPOP3 |
| CALLBACK_DECLARE_SFXPOP3RECEIVER | CALLBACK_IMPLEMENT_SFXPOP3RECEIVER |
不具合修正
SFXRingBuffer クラスが 0 バイトの読み書きで SFERR_INVALID_PARAM を返していた不具合を修正しました。
SophiaFramework 3.0.8 リリースノート
不具合修正
インライン関数のリンクに失敗する SFBLogger クラスと SFBBTSIOPort クラスの不具合を修正しました。
SFUFileStream::Flush() 関数がリンクできない不具合を修正しました。
関数の戻り値に余分な文字列が含まれる SFBShell::LoadResString() 関数の不具合を修正しました。
"Month", "Mth" などのフォーマット指定文字列を利用したときに、1ヶ月進んで計算される SFXDate::Format() 関数の不具合を修正しました。
送信するデータの末尾が RFC2821 に準拠していなかった SFUSmtp::SendDataText() 関数の不具合を修正しました。
日本語の曜日を出力する 'y' フォーマット指定文字を SFXDate::Format() 関数に追加しました。
フォーマット指定文字以外の文字をそのまま出力する機能を SFXDate::Format() 関数に追加しました。
フォーマット指定文字に予約されている文字を出力したい場合は、'%' エスケープ文字を利用できます。
任意の文字列から日付インスタンスを生成できる Parse() 関数を SFXDate クラスに追加しました。
利用できるフォーマット指定文字列は Format() 関数と同じです。
UTC 時間との差を計算する LocalTimeOffset() 関数を SFXDateDuration クラスに追加しました。
ヌル文字かどうかを判定する IsNull() 関数を SFXAscii クラスに追加しました。
文字列中の文字の種類を判定する以下の関数を SFXAnsiString クラスと SFXWideString クラスに追加しました。
| 関数 | 解説 |
|---|---|
| IsAlpha() | 文字列が英文字であるかを判定 |
| IsDigit() | 文字列が数字であるかを判定 |
| IsAlphaDigit() | 文字列が英数字であるかを判定 |
| IsHexDigit() | 文字列が 16 進数で使用される文字であるかを判定 |
| IsUpper() | 文字列が大文字であるかを判定 |
| IsLower() | 文字列が小文字であるかを判定 |
| IsSpace() | 文字列が空白文字または改行文字であるかを判定 |
| IsPunct() | 文字列が空白文字、英数字以外の印字文字であるかを判定 |
| IsControl() | 文字列が制御文字であるかを判定 |
| IsPrint() | 文字列が印字文字であるかを判定 |
| IsGraph() | 文字列が図形文字であるかを判定 |
| IsAscii() | 文字列が ASCII 文字であるかを判定 |
| IsNull() | 文字列がヌル文字であるかを判定 |
角度、ラジアン、グラジアンを相互に変換する以下の関数を SFXTrigonometric クラスに追加しました。
| 関数 | 解説 |
|---|---|
| RadianToGradian() | ラジアンからグラジアン |
| RadianToDegree() | ラジアンから角度 |
| GradianToRadian() | グラジアンからラジアン |
| GradianToDegree() | グラジアンから角度 |
| DegreeToRadian() | 角度からラジアン |
| DegreeToGradian() | 角度からグラジアン |
予約語 CALLBACK_EXTENDED, CALLBACK_FUNCTION, CALLBACK_NULL を新しく追加しました。
コールバック関数を記述する場合に使用する幾つかのコールバックマクロを予約しました。
これらの名前は SophiaFramework 3.1 以降で予約されています。開発者は同じ名前を使用しないでください。
| 宣言マクロ | 実装マクロ |
|---|---|
| CALLBACK_DECLARE_SFXCALLBACK | CALLBACK_IMPLEMENT_SFXCALLBACK |
| CALLBACK_DECLARE_SFXTASK | CALLBACK_IMPLEMENT_SFXTASK |
| CALLBACK_DECLARE_SFXTIMER | CALLBACK_IMPLEMENT_SFXTIMER |
| CALLBACK_DECLARE_SFXFILE | CALLBACK_IMPLEMENT_SFXFILE |
| CALLBACK_DECLARE_SFXINETADDRESS | CALLBACK_IMPLEMENT_SFXINETADDRESS |
| CALLBACK_DECLARE_SFXSOCKETADDRESS | CALLBACK_IMPLEMENT_SFXSOCKETADDRESS |
| CALLBACK_DECLARE_SFXTCPSOCKET | CALLBACK_IMPLEMENT_SFXTCPSOCKET |
| CALLBACK_DECLARE_SFXUDPSOCKET | CALLBACK_IMPLEMENT_SFXUDPSOCKET |
| CALLBACK_DECLARE_SFXOUTPUTSTREAM | CALLBACK_IMPLEMENT_SFXOUTPUTSTREAM |
| CALLBACK_DECLARE_SFXINPUTSTREAM | CALLBACK_IMPLEMENT_SFXINPUTSTREAM |
最新の BREW 日本拡張パッケージに対応しました。( 2006 年 06 月 30 日 現在 )
SophiaFramework 3.0.7
不具合修正
特定の条件下で同じキーを持つ要素が重複してしまう SFXProperty::Set() 関数の不具合を修正しました。
SFXList クラスの Iterator::Remove() 関数の動作が不安定だった不具合を修正しました。
RealView Compilation Tools for BREW 1.2 コンパイラを利用し、最適化オプションを -Ospace にしてアプリをコンパイルする場合に、SelectHandler() などの一部のハンドラが見つからずにリンクエラーになる不具合を修正しました。
テキスト入力部分の背景色が正確に白色に設定されていなかった SFRBrewTextControl クラスの不具合を修正しました。
初期化不良により動作が不安定だった SFRBrowserControl クラスの不具合を修正しました。
SFXGraphics クラスの MeasureString() 関数の動作速度が向上しました。
BREW やエクステンション内などで確保されたヒープの Reallocate() や Free() 時の安定性が向上しました。
仕様変更
一部の GUI コンポーネントで全てのキーイベントをブロックしていた仕様を、実際に処理するキーイベントのみをブロックするように変更しました。
影響を受けるクラスは SFRMenu, SFRPlainMenu, SFRFrameMenu, SFRTitleMenu, SFRTextMenu, SFRComboboxMenu, SFRDialog, SFRPlainDialog, SFRFrameDialog, SFRTitleDialog, SFRMessageDialog, SFRMultiDialog です。
SREVT_CONTROL イベントを表す定数を 0x7500 から 0x7600 に変更しました。
SFDWatcher クラスの不正メモリ確保 / 解放時の警告表示をデフォルトで有効に変更しました。
RealView Compilation Tools for BREW 1.2 コンパイラを利用して携帯端末向けにコンパイルする場合でも SFDWatcher クラスの記述を利用できるように変更しました。
SFDWatcher クラスに関連する記述は適切に置換、もしくは、無視されるようになりました。
サンプルアプリの携帯端末向けのコンパイルオプションを、-Ospace から -Otime に変更しました。
新機能
SFRMessageDialog クラスと SFRMultiDialog クラスに、ボタンなしのダイアログを表示する機能を追加しました。
AEECLSID_KDDI_SMALL_FONT などの拡張フォントを利用し易くするための RegisterFont() 関数と UnregisterFont() 関数を SFXGraphics クラスに追加しました。
エミュレータ上でのメモリ確保時に、割り当てられたメモリ領域を乱数で初期化する機能を追加しました。
この機能を利用すると、変数の初期化忘れを携帯端末上での動作により近い形でデバッグすることができます。この機能の追加に伴い SFDWatcher クラスに setrandomize() 関数が追加されました。
SREVT_PANE( = 0x7500) イベントを新しく追加しました。
SREVT_APPLICATION, SREVT_WINDOW, SREVT_PANE イベントに対応するトレーサをそれぞれ SFRApplication, SFRWindow, SFRPane クラスに追加しました。
予約語 MemoryAttach と MemoryDetach を新しく追加しました。
SophiaFramework 3.0.6
不具合修正
SFRTextMenu クラス生成後に SetBaseBound() 関数を利用して大きさを再設定した場合に、タイトル部分の描画が崩れる不具合を修正しました。
SFRControl パッケージと SFRMenu パッケージの一部のクラスにおいて、SetBaseBound() 関数を利用して大きさを再設定した場合に、仮想領域の大きさが正確に再設定されていなかった不具合を修正しました。
この修正により、影響を受けるクラスは SFRButtonControl, SFRCheckboxControl, SFRRadiobuttonControl, SFRComboboxControl, SFRTabControl, SFRLabelControl, SFRBrewTextControl, SFRTextMenu です。
メニューをクリアキーでエスケープしたときに、コントロールハンドラが起動されていなかった SFRComboboxControl クラスの不具合を修正しました。
SFXConfig クラスがヘッダ部分を 5 バイトで処理していた不具合を修正しました。
ヘッダ部分は 4 バイトで処理されるようになりました。この修正によりファイルの互換性が失われましたので、以前に書き出したファイルは一旦削除してください。
ハッシュテーブルが永久に拡張されなかった SFXHashmap クラスの不具合を修正しました。
初期化処理の失敗により SFUPop3Receiver クラスが携帯端末上でフリーズすることがある不具合を修正しました。
RealView Compilation Tools for BREW 1.2 コンパイラを利用する場合に、SFBWrapper パッケージの子クラスから親クラスへの暗黙の変換が見つからないことがある不具合を修正しました。
以下のコードを正常にコンパイルできるようになりました。
SFBSocketSmp socket; SFBAStreamSmp stream = socket;
仕様変更
ハッシュテーブルのスレッショルド値の扱い方を "要素数 / ハッシュテーブル数" から "ハッシュテーブル数 / 要素数" に変更しました。
この変更に伴い、デフォルトのスレッショルド値が 5 から 10 に変更されました。
新機能
GUI フレームワークを利用する場合に使用する幾つかのハンドラマクロを追加しました。
| 宣言マクロ: | 実装マクロ: |
|---|---|
| HANDLER_DECLARE_VOIDDIALOG | HANDLER_IMPLEMENT_VOIDDIALOG |
| HANDLER_DECLARE_BOOLDIALOG | HANDLER_IMPLEMENT_BOOLDIALOG |
| HANDLER_DECLARE_VOIDMENU | HANDLER_IMPLEMENT_VOIDMENU |
| HANDLER_DECLARE_BOOLMENU | HANDLER_IMPLEMENT_BOOLMENU |
| HANDLER_DECLARE_VOIDCONTROL | HANDLER_IMPLEMENT_VOIDCONTROL |
| HANDLER_DECLARE_BOOLCONTROL | HANDLER_IMPLEMENT_BOOLCONTROL |
SFXDate クラスに、日付を任意のフォーマットの文字列に変換できる Format() 関数を追加しました。
SFXHashmap クラスに 、DEFAULT_THRESHOLD と DEFAULT_RATIO 定数を追加しました。
サンプルアプリに TemplateApp と ScreenSaver を追加しました。
リファレンスの GUI フレームワーク部分の記述を大幅に強化しました。
最新の BREW 日本拡張パッケージに対応しました。( 2006 年 03 月 13 日 現在 )
SophiaFramework 3.0.5
不具合修正
SFRBrewTextControl クラスを利用したテキスト入力を行う場合に、W32SA 端末上でマルチ入力モードでの入力ができなかった不具合を修正しました。
SophiaFramework 3.0.4
不具合修正
SFXDate クラスの CurrentUTCDate() 関数が、BREW 3.1 端末上で JST 時間を返していた不具合を修正しました。
SFXConfig クラスが BREW 3.1 上で正常に動作しない不具合を修正しました。
仕様変更
SFCCondition.h.hpp ファイルで errno.h ファイルをインクルードするように変更しました。
SophiaFramework 3.0.3
不具合修正
特定の条件下で SFAStreamManipulator クラスの一部の関数がリンクエラーになる不具合を修正しました。
コンストラクタの配列引数部分に null ポインタを渡したときに、メニューの表示がおかしくなる SFRTextMenu クラスの不具合を修正しました。
SFRTextMenu クラスのメニュー項目の描画時の不具合を修正しました。
アプリウィザードが生成するテンプレートコードのコンストラクタに explicit 修飾子を追加しました。
仕様変更
static_exception クラスの static_throw() 関数を const な関数に変更しました。
この変更により、開発者は const な関数の内部から例外を設定できるようになりました。
SFRComboboxControl のメニューの色を SFRTextMenu と同色に変更しました。
新機能
ユーザエラー番号の範囲を新しく定義しました。
最新の BREW 日本拡張パッケージに対応しました。( 2006 年 01 月 05 日 現在 )
SophiaFramework 3.0.2
不具合修正
シミュレータ上でデバッグ起動を行う場合に、ヒープ解放時にフリーズすることがある SFDWatcher クラスの不具合を修正しました。
BREW 3.1 端末上で、SFRBrewTextControl クラスの描画が正常に行われない不具合を修正しました。
携帯端末上で、SFRBrewTextControl クラスの SetInputMode() 関数でセットした値が有効にならない不具合を修正しました。
Microsoft Visual C++ .NET 2003 用アプリウィザードが生成するプロジェクトファイルのデバッグモード時の設定で、最適化が有効になっていた不具合を修正しました。
新機能
最新の BREW 日本拡張パッケージに対応しました。( 2005 年 11 月 25 日 現在 )
SophiaFramework 3.0.1
不具合修正
インストーラが Microsoft Visual C++ .NET 2003 のファイルパスやライブラリパスの環境設定を破壊することがある不具合を修正しました。
SophiaFramework 内部で AEECallback 構造体を使用したコールバック部分が、携帯端末上でフリーズする不具合を修正しました。
この修正により、影響を受けるクラスは SFUHttpConnection, SFUSourceStream, SFUHostResolver, SFRBrowserControl です。
SFRComboboxControl のメニュー表示位置を修正しました。
メニューを表示させたときにメニュー項目が最大限表示されるようになりました。
SFXAscii::IsPrintable() を SFXAscii::IsPrint() に修正しました。
CamulatorSetup ツールのウィンドウクローズボタンの挙動を修正しました。
新機能
SFXAscii クラスに IsSpace(), IsPunct() 関数を追加しました。
SophiaFramework 3.0.0
ライセンスの変更
ライセンスシステムを変更しました。
ライセンスコードをソースコードの中に埋め込む方式、または、任意のリソースファイルに格納する方式を選択できるようになりました。
詳細情報 : SophiaFramework リファレンス
開発環境への対応
BREW SDK 3.1 に対応しました。
RealView Compilation Tools for BREW 1.2 に対応しました。
Microsoft Visual C++ .NET 2003 に対応しました。
全般的な変更
クラス分類方法を変更しました。
詳細情報 : SophiaFramework リファレンス
クラス名とメソッド名を変更しました。
SFX... クラスは再設計され、メソッド名や役割が変更されたクラスです。
詳細情報 : Deprecated.h.hpp ファイル / SophiaFramework リファレンス
ヘッダファイル構成を変更しました。
前方宣言・クラス宣言・インライン実装の3つのファイルに分割され、ヘッダファイルの競合を回避できるようになりました。
ヘッダファイルを改良しました。
使用する BREW SDK のバージョンを自動的に判別してコンパイルを行うようになり、コンパイル時に BREW SDK のバージョンを指定する必要がなくなりました。
警告を追加しました。
RealView Compilation Tools for BREW 1.2 コンパイラでのコンパイル時に、BREW で使用禁止の API ( ANSI の malloc() 関数など)を使用した場合、リンク時に警告が出るようになりました。
コア
GUI フレームワーク(レスポンダ)を使用しない SophiaFramework アプリ開発を正式にサポートしました。
SFCApplication クラスを利用することで、イベントや描画の処理の流れを標準的な BREW アプリと同様の感覚で記述できるようになりました。
マクロやクラスを追加しました。
- SFMTYPEDEFCLASS・・・開発者が必要とする型情報を自動的に生成
- SFMSEALCOPY・・・クラスのPOD 型コピー(ビットコピー)を禁止するマクロ
- lengthof・・・配列の長さを静的に計算
- alignof・・・8バイト境界にアラインされたサイズを計算
- unused・・・未使用変数のワーニング回避
- va_ref・・・可変個引数関数に参照を渡すためのリファレンスラッパー
- static_exception・・・静的にエラー情報を管理するためのクラス
- ctwg_is_size_eq・・・コンパイル時に特定の型のサイズを検査
携帯端末上での一般的な浮動小数点演算が利用可能になりました。
メモリの確保や解放を行う手段の改良しました。
| 旧バージョン: | 新バージョン: |
|---|---|
| MALLOC | MemoryAllocate |
| REALLOC | MemoryReallocate |
| FREE | MemoryFree |
| new | new |
| delete | delete |
| new [] | new [] |
| delete[] | delete[] |
新バージョンではBREW API の MALLOC, REALLOC, FREE, STRDUP, WSTRDUP, ERR_MALLOC, ERR_REALLOC, ERR_STRDUP を利用できなくなりました。これらはSophiaFramework の API を利用するスタイルに変更されました。
また、new[], delete[] の不具合は解消されました。
携帯端末上でのメモリ割り当て時の初期化処理を廃止しました。
C++ 言語では一般的にメモリ割り当て時の自動初期化は不要なため、この最適化により実機での動作速度を向上させることができます。
デバッグ
デバッグ用マクロを追加します。
- TRACE
- ASSERT
- VERIFY
これらのマクロは携帯端末上でも使用できます。
シミュレータ上での実行時に、メモリ割り当てや解放を追跡する機能を再設計しました。
- デストラクタを含むクラスの配列 new 使用時にフリーズする不具合を修正
- プレースメント new をより正確に扱えるように改良
- 最大使用メモリサイズを記録・表示できるように改良
- 最大メモリサイズを設定できるように改良
- サイズゼロのメモリ確保や、null ポインタ解放時の警告の追加
- SophiaFramework 内部で確保されたヒープを正確に追跡できるように改良
new[], delete[] の不具合は解消され、機能が強化されました。
ポインタ
スマートポインタ使用時にスマートポインタに null を代入した場合、Microsoft Visual C++ 6.0 コンパイラがコードを抹消してしまう不具合に対応しました。
開発者は null を代入することができなくなりました。
キャスト演算子を追加しました。
- static_pointer_cast
- const_pointer_cast
- dynamic_pointer_cast
- reinterpret_pointer_cast
スマートポインタのキャストを適切に行えるようになり、操作性が向上しました。
スマートポインタ使用時に RealView Compilation Tools for BREW 1.2 コンパイラのシリアスエラーに遭遇する可能性を軽減しました。
バッファ
単純なヒープ管理クラス (SFXHeap) とブロックアロケーションをサポートしたヒープ管理クラス (SFXClusterHeap) の追加しました。
簡単にメモリの解放忘れの回避やブロックアロケーションの実装ができるようになりました。
バッファクラスの機能を強化しました。
ブロックアロケーションをサポートし、簡単に文字列との相互変換やバッファの演算ができるようになりました。
文字列
char 型文字列と AECHAR 型文字列を扱う文字列クラスを改良しました。
- 文字列クラス同士の演算が高速化
- 文字列クラスと定数文字列との演算が高速化
- バッファクラスとの相互変換
- 演算子の再設計によるコンパイル時の警告の軽減
- C文字列以外にバイナリデータが管理可能に
クラスを追加しました。
- SFXAscii・・・文字属性判定クラス
シェイプ
座標クラス (SFUPoint) を格子点座標クラス (SFXGrid) とピクセル座標クラス (SFXPixel) に分割しました。
多角形クラスと折れ線クラスを改良しました。
設計上の問題点であったスライス現象は、多角形クラスと折れ線クラスを BREW 標準の構造体本来の定義にあわせることで解決されました。
多角形クラスと折れ線クラスでクラスに座標を管理させることはできなくなりました。
全てのシェイプクラスで関数実装方針を変更しました。
コードサイズと速度の面でクラスが最適化されました。
全てのシェイプクラスで POD 構造体が各クラスごとに定義され、純粋な定数構造体を使用可能に
実行時の初期化が必要なくなるため、シェイプの動作速度の向上が期待できます。
コレクション
テンプレートを使用した実装を変更しました。
新しいコレクションクラスでは仮想関数呼び出しが行われないため、以前のコレクションクラスよりも動作速度が向上しました。また、テンプレートを使用しているため、コンパイル時に型に対してより厳密なチェックが行われるようになりました。
数学
乱数クラスを追加しました。
- SFXBrewRandom・・・BREW ヘルパ関数をラップしたクラス
- SFXLCGRandom・・・48 ビット線形合同法により乱数を生成するクラス
- SFXMTRandom・・・メルセンヌ・ツイスター法により乱数を生成するクラス
ネットワーク
POP3 / SMTP プロトコルをサポートするメールクラス群を追加しました。
メールの送受信処理を簡単に記述できるようになりました。
汎用
クラスを追加しました。
- SFXDate・・・日付クラス
- SFXDateDuration・・・日付差クラス
日付の管理や演算ができるようになりました。
- SFXHelper・・・BREW ヘルパ関数をラップするクラス
コードサイズを削減できるようになりました。
- SFXProperty・・・文字列のペアを管理するためのクラス
エンディアン変換クラスに64ビット型整数や浮動小数点用関数を追加しました。
*この他にも非常に数多くの変更点があります。旧バージョンとのクラス名の対応関係などは Deprecated.h.hpp ファイルを参照してください。












