2011-02-26 26 views
7

我正在尋找一個OO sqlite C++包裝器,它允許準透明序列化和類的反序列化。C++/sqlite包裝器,用於簡易類序列化?

的工作流程我已經記如下:

  1. 定義一個類記錄與數據成員
  2. 供應這個類來包裝它創建了一個合適的表

通過< <和>>爲整個課程簡單的序列化和反序列化。

這是現實還是我必須自己寫操作員?理想情況下,我不想擔心數據如何進入數據庫以及如何存儲數據......易於使用是我的主要關注點,而不是靈活性或性能。

我正在尋找沿GAE datastore python interface行的東西。

非常感謝, 阿里克

回答

3

有沒有簡單的C++的ORM(對象關係映射)工具。這兩個庫,我知道那緩和的過程是:

SOCI是簡單,是推動樣的理念,而debea是更加註重ORM。

順便說一句,如果SQLite/SQL /請求不是強制性的,你可以使用Boost serialization framework

只是我的兩分錢

編輯:

好,給出的幾乎不存在C++反射的可能性,我的愚見是,做你想要做什麼的唯一方式是使用一個代碼生成器。鑑於沒有像樣的,易於使用的C++解析器/詞法分析器/ ...,我知道沒有這樣的廣泛工具。

我認識的人幾年來都有同樣的問題。他終於找到了一個解決方案:他告訴我clang現在可用(它編譯提升),並且他使用它來生成基於代碼中標記的序列化代碼(他告訴我TR1中有標記支持,但是我不是專家)。這是寶貴的反饋,而我在這個領域的嘗試讓我對解決方案表示贊同。

+0

我意識到了SOCI以及讓我忽略它的原因是ORM必須被明確地編程。我發現這給了很大的靈活性,但對於具有簡單數據類型的類我覺得這應該是真正的自動化。儘管Debea不完全透明,但它非常有趣。我會將這個問題再打開一段時間,看看是否有其他內容出現 - – ARF 2011-06-29 13:54:54

+0

查看我的編輯。永遠找不到一個體面的解代碼生成似乎是你的最佳途徑...祝你好運! – neuro 2011-06-29 15:14:24

+0

@neuro永遠不要說永遠! quince-lib.com表明,你可以走得比你想象的更遠,沒有反思,也沒有代碼生成。 – slyqualin 2014-08-18 00:51:37

3

Quince是一個圖書館,幾乎完全符合提問者的要求。見quince-lib.com

(完全披露:我寫了。)

0

剛纔提過這個問題。從那時起,Hiberlite已經開發完成,並且聲稱幾乎完全符合你的要求。

它不支持與< <和>>(Boost。序列化的確如其他人所提到的那樣,但它不會存儲在SQL DB中);然而,使用它似乎很容易。