2011-01-01から1ヶ月間の記事一覧

Managed Memory Segmentsで動的多態する場合の留意事項

boost.ipcのManaged Memory Segmentsで動的多態を演じたい場合、destroy(_ptr)を呼び出す際、作成時の型を指定する必要があります。つまり抽象クラスの型を指定して、抽象クラスのポインタを渡して、削除することはできません。 namespace ipc = boost::inte…

destroy_ptrでハマる

いや、まさかこうなるとは思ってなかったのでメモ。Managed Memory Segmentsはconstructしたオブジェクトをdestroyする必要があります。これはconstruct方法によっていろいろ選べます。例えばnamed instanceとして作成した場合、destroyを使って名前を指定し…

Managed Memory Segments 小ネタ幾つか

今日は特にネタがなかったので、Managed Memory Segmentsが提供してる機能をいくつか書いておきます。とりあえずManaged Memory Segments上のお話なので前提条件を書きます。変数名はmm_segmentsで、オブジェクトは自動で削除されます。ちなみに、ドキュメン…

Boost.interprocess 解説&備忘録

ただの記事リストです。01:boost.interprocessさん凄いです - krustf の雑記 02:しばらくboost.interprocessネタで書いていこう。 - krustf の雑記 03: 04:vectorstreamの話 - krustf の雑記 05:bufferstreamの話 - krustf の雑記 06:STLもmanaged上な…

いやいやManaged Heap Memoryの方が

Managed Heap MemoryがBoost.interprocess Document P.90に書いてあります。これはstatic buffer領域を必要とせず、予めヒープ上のメモリを確保して利用する形だそうです。使い方はManaged Heap Memoryと同じで構築方法が異なります。 例えば、自前でヒープ…

Managed External Bufferは便利かも?

久しぶりに更新。Boost.interprocessの話です。またもやドキュメントパラパラ見てたら結構使えそうなやつが出てきたのでメモ。 Managed External Buffer "様々な状況でSimpleなオブジェクト、STLと同じようなコンテナや文字列、 あとは何かしらのバッファが…

XAPOFXで出来合いのエフェクトを使う

たまにはXAudio2とその関係のお話でもします。 XAPO? XAPOFX? というか今までXAPOが何か、という話を真面目にしてなかったような気がするのでそこから話します。XAPOとはXAudio2と連携して利用するオーディオ処理オブジェクトを作成する手段を提供するAPI…

multi_indexなども使えて便利

ついつい見落としてましたが、interprocessはmulti_indexなどのinterprocess外ですがBoostのライブラリとして提供している一部のコンテナもmanaged memory segmentsを使って作成できるようです。ドキュメントに書いてあるのはmulti_indexとunordered_mapの2…

wxWidgetsインストールメモ(Windows, MSVC)

wxWidgetsというクロスプラットフォームなウィジェット・ツールキットを前に聞いてインストールすらしてなかったのでインストールのメモ。といってもまだ調べて切れてないのですが…。 公式はwxWidgetsここで、Downloadsから肝心なソースは引っ張ってこれます…

プロセス間共有用のnamed mutex

interprocessには"named mutex"という名前付きMutex Objectを作成して複数のプロセス間で排他制御を行える機構があります。recursiveなMutexなどありますが、多分interprocessとして特徴的な機能だと思いますので紹介。作り方と最終的な削除方法が面倒ですが…

STLもmanaged上ならば使用可能

[注意] この記事は間違っている可能性が高いですできるのかなーと思っていたんですが、managed上であればsegment_managerを使用したアロケータを作成すればSTLコンテナをそのまま利用できるようです。(じゃあなんで同じようなコンテナがboost.interprocess内…

ライブラリの名前を変更してauto_link.hppを使う

Boost.Buildで名前を変更する方法がよくわからなかったのでいろいろ調べてたらなんとなく理解できたのでメモ。プロジェクトの設定でtagプロパティに名前を設定するruleを与えて、そのrule上で名前を返却すれば良いようです。commonモジュールを使って生成し…