基於leveldb,levigo做二次開發

2022-09-18 03:15:26 字數 1225 閱讀 2350

leveldb是乙個c++庫,它有提供標準的c介面,標頭檔案在include/leveldb/c.h中

開發過程,以新增乙個簡單的計算功能為例:

修改leveldb原始碼

在include/leveldb/c.h中新增以下宣告:

extern

int andre_add(const

int a,const

int b);

在db/c.cc中新增andre_add對應的實現:

int andre_add(const

int a,const

intb)

重新編譯安裝leveldb原始碼:

fun@fun:~/workspace/study/leveldb/leveldb$ make clean && make

fun@fun:~/workspace/study/leveldb/leveldb$ sudo cp libleveldb.a libleveldb.so.1.12 /usr/lib/

fun@fun:~/workspace/study/leveldb/leveldb$ sudo cp -r include/leveldb /usr/include/

至此,leveldb庫安裝完畢。

levigo二次開發:

為了方便開發,我將 fork了乙份到自己的帳號下

執行以下操作將levigo安裝到本地:

在$goroot下找到對應的原始碼,這裡以修改options.go為例,在其中新增以下function以呼叫andre_add:

func andre_add(a,b int) int

儲存後,重新編譯該**:

編譯通過,向github提交修改檔案

至此,在go中便可呼叫levigo.andre_add()了。

AspectJ基於xml和基於註解

一 基於xml 執行的切入點中具體方法有返回值,則方法結束會立即執行後置通知,然後再執行環繞通知的放行之後的 2 連線點即所有可能的方法,切入點是正真被切的方法,連線點方法名 其中,只有環繞通知的切入點引數不一樣,是可以放行的切入點 3 異常通知是處理異常 切面類中的異常通知的方法引數列表中異常引數...

拓撲排序(基於dfs 基於佇列)

dfs函式的返回值表示是否成環,若存在有向環,則不存在拓撲排序。不包含有向環的有向圖稱為有向無環圖 dag 可以借助dfs完成拓撲排序,在訪問完乙個結點時把他加入當前拓撲序的首部。舉個栗子 比如乙個 1,2 1,3 2,3 的有向無環圖,就先搜尋1,再遞迴搜尋2,再搜尋3,3沒有出度了,於是放進拓撲...

基於insert update delete的注入

inset注入原理 所謂inset注入就是指我們前端註冊的資訊會被後台通過insert操作插入到資料庫裡邊去,若此時後台沒有做出相應的處理就會構成insert注入。insert注入方法 insert用法例如 insert into member username,pw,phonenum,email,...