ホーム > 製品情報 > SophiaFramework UNIVERSE > SophiaFramework UNIVERSE リリースノート

SophiaFramework UNIVERSE リリースノート

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 タイトルのあるフレームの機能を提供するクラス
関数名 解説
inet_pton() 文字列を与えられたアドレス ファミリに応じたアドレス構造体に変換します。
inet_ntop() アドレス構造体を与えられたアドレス ファミリに応じた文字列に変換します。
getalscontext() 現在実行中のアプレットのアプリケーション ローカル ストレージ コンテキストを取得します。

主な改善項目 :

詳細情報 : SophiaFramework リファレンス

チュートリアル

BREW 4.0 対応に伴い、スケジューラー のサンプル コードを変更しました。

サンプル アプリ

BREW 4.0 対応に伴い、サンプル アプリのクラス名のプリフィックスを変更しました。

BREW 4.0 対応に伴い、ScreenSaverTemplateApp のサンプル コードを変更しました。

不具合修正

関数宣言に関する不具合を修正しました。

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 部の解説を追加・改善しました。

主な追加項目 :

主な改善項目 :

詳細情報 : SophiaFramework リファレンス

チュートリアル

RssReader サンプル コードを修正しました。

SophiaFramework 4.1.5 リリース ノート

仕様変更

イベントを表す定数 SFEVT_APPLICATION_CLASS_BEGINSFEVT_APPLET_CLASS_BEGIN に変更しました。

イベントを表す定数 SFEVT_APPLICATION_CLASS_ENDSFEVT_APPLET_CLASS_END に変更しました。

SFCApplication::Invoke() 関数のアクセス指定子を public から protected へ変更しました。

SFCErrorEnum のエラー コードを更新しました。

その他

リファレンス

リファレンス II 部、III部、IV 部の解説を追加・改善しました。

主な追加項目 :

主な改善項目 :

詳細情報 : SophiaFramework リファレンス

SophiaFramework 4.1.4 リリース ノート

その他

リファレンス

リファレンス III部の解説を追加・改善しました。

主な追加項目 :

主な改善項目 :

詳細情報 : SophiaFramework リファレンス

不具合修正

SFXSOAPRPC::Invoke() 関数に関して、大きなデータを受信できない不具合を修正しました。

SophiaFramework 4.1.3 リリース ノート

その他

リファレンス

リファレンス II 部、III部、IV 部、V 部の解説を追加・改善しました。

主な追加項目 :

主な改善項目 :

詳細情報 : SophiaFramework リファレンス

最新の BREW 日本拡張パッケージに対応しました。 ( 2007 年 05 月 15 日 現在 )

SophiaFramework 4.1.2 リリース ノート

その他

リファレンス

リファレンスの I 部、II 部、III部、 IV 部、VI 部の解説を追加・改善しました。

主な追加項目 :

主な改善項目 :

詳細情報 : 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 リリース ノート

新機能

テキスト入力コントロールとして 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 クラスに追加しました。

予約語 MemoryAttachMemoryDetach を新しく追加しました。

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_THRESHOLDDEFAULT_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 アプリと同様の感覚で記述できるようになりました。

マクロやクラスを追加しました。

携帯端末上での一般的な浮動小数点演算が利用可能になりました。

メモリの確保や解放を行う手段の改良しました。

旧バージョン: 新バージョン:
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++ 言語では一般的にメモリ割り当て時の自動初期化は不要なため、この最適化により実機での動作速度を向上させることができます。

デバッグ

デバッグ用マクロを追加します。

これらのマクロは携帯端末上でも使用できます。

シミュレータ上での実行時に、メモリ割り当てや解放を追跡する機能を再設計しました。

new[], delete[] の不具合は解消され、機能が強化されました。

ポインタ

スマートポインタ使用時にスマートポインタに null を代入した場合、Microsoft Visual C++ 6.0 コンパイラがコードを抹消してしまう不具合に対応しました。

開発者は null を代入することができなくなりました。

キャスト演算子を追加しました。

スマートポインタのキャストを適切に行えるようになり、操作性が向上しました。

スマートポインタ使用時に RealView Compilation Tools for BREW 1.2 コンパイラのシリアスエラーに遭遇する可能性を軽減しました。

バッファ

単純なヒープ管理クラス (SFXHeap) とブロックアロケーションをサポートしたヒープ管理クラス (SFXClusterHeap) の追加しました。

簡単にメモリの解放忘れの回避やブロックアロケーションの実装ができるようになりました。

バッファクラスの機能を強化しました。

ブロックアロケーションをサポートし、簡単に文字列との相互変換やバッファの演算ができるようになりました。

文字列

char 型文字列と AECHAR 型文字列を扱う文字列クラスを改良しました。

クラスを追加しました。

シェイプ

座標クラス (SFUPoint) を格子点座標クラス (SFXGrid) とピクセル座標クラス (SFXPixel) に分割しました。

多角形クラスと折れ線クラスを改良しました。

設計上の問題点であったスライス現象は、多角形クラスと折れ線クラスを BREW 標準の構造体本来の定義にあわせることで解決されました。

多角形クラスと折れ線クラスでクラスに座標を管理させることはできなくなりました。

全てのシェイプクラスで関数実装方針を変更しました。

コードサイズと速度の面でクラスが最適化されました。

全てのシェイプクラスで POD 構造体が各クラスごとに定義され、純粋な定数構造体を使用可能に

実行時の初期化が必要なくなるため、シェイプの動作速度の向上が期待できます。

コレクション

テンプレートを使用した実装を変更しました。

新しいコレクションクラスでは仮想関数呼び出しが行われないため、以前のコレクションクラスよりも動作速度が向上しました。また、テンプレートを使用しているため、コンパイル時に型に対してより厳密なチェックが行われるようになりました。

数学

乱数クラスを追加しました。

ネットワーク

POP3 / SMTP プロトコルをサポートするメールクラス群を追加しました。

メールの送受信処理を簡単に記述できるようになりました。

汎用

クラスを追加しました。

日付の管理や演算ができるようになりました。

コードサイズを削減できるようになりました。

エンディアン変換クラスに64ビット型整数や浮動小数点用関数を追加しました。

*この他にも非常に数多くの変更点があります。旧バージョンとのクラス名の対応関係などは Deprecated.h.hpp ファイルを参照してください。