Skip to content

Commit 0db28d2

Browse files
Merge pull request #4 from FIBOSIO/dev
Dev
2 parents d5ec8df + c0d5394 commit 0db28d2

File tree

15 files changed

+1949
-62
lines changed

15 files changed

+1949
-62
lines changed

CMakeLists.txt

Lines changed: 48 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ include(tools/arch.cmake)
44
include(tools/os.cmake)
55
include(tools/subdirs.cmake)
66

7-
project(fibos)
7+
set(appname fibos)
8+
project(${appname})
89

910
find_program(CCACHE_FOUND ccache)
1011
if(CCACHE_FOUND)
@@ -13,10 +14,11 @@ if(CCACHE_FOUND)
1314
endif(CCACHE_FOUND)
1415

1516
file(GLOB_RECURSE src_list "src/*.c*")
16-
add_executable(fibos ${src_list})
17+
add_executable(${appname} ${src_list})
1718

1819
set(BIN_DIR ${PROJECT_SOURCE_DIR}/bin/${OS}_${ARCH}_${BUILD_TYPE})
1920
set(FIBJS_DIR ${PROJECT_SOURCE_DIR}/fibjs/bin/${OS}_${ARCH}_${BUILD_TYPE})
21+
set(EOS_DIR ${PROJECT_SOURCE_DIR}/eos)
2022
set(EXECUTABLE_OUTPUT_PATH ${BIN_DIR})
2123

2224
include(CheckIncludeFiles)
@@ -33,23 +35,23 @@ check_c_source_compiles("void posix_spawnp();
3335
__asm__(\".symver posix_spawnp,posix_spawnp@GLIBC_2.2\");
3436
void main(void){posix_spawnp();}" HAVE_GLIB_C_22_H)
3537

36-
set(flags "-fsigned-char -fmessage-length=0 -fdata-sections -ffunction-sections -fno-exceptions -D_FILE_OFFSET_BITS=64")
37-
set(ccflags "-std=c++11")
38+
set(flags "-fsigned-char -fmessage-length=0 -fdata-sections -ffunction-sections -D_FILE_OFFSET_BITS=64")
39+
set(ccflags "-std=c++14")
3840
set(link_flags " ")
3941

4042
if(${OS} STREQUAL "Darwin")
4143
set(link_flags "${link_flags} -mmacosx-version-min=10.9 -framework Carbon -framework IOKit")
4244
set(flags "${flags} -mmacosx-version-min=10.9")
43-
target_link_libraries(fibos dl iconv stdc++)
45+
target_link_libraries(${appname} dl iconv stdc++)
4446
endif()
4547

4648
if(${OS} STREQUAL "Linux")
47-
target_link_libraries(fibos dl rt)
49+
target_link_libraries(${appname} dl rt)
4850
endif()
4951

5052
if(${OS} STREQUAL "FreeBSD")
5153
find_library(execinfo execinfo "/usr/local/lib" "/usr/lib")
52-
target_link_libraries(fibos ${execinfo})
54+
target_link_libraries(${appname} ${execinfo})
5355
endif()
5456

5557
if(${BUILD_TYPE} STREQUAL "release")
@@ -84,12 +86,48 @@ set(CMAKE_CXX_FLAGS "${flags} ${ccflags}")
8486

8587
include_directories("${PROJECT_SOURCE_DIR}/include" "${PROJECT_SOURCE_DIR}/fibjs/fibjs/include" "${PROJECT_SOURCE_DIR}/fibjs/vender" "${PROJECT_SOURCE_DIR}/fibjs/vender/v8" "${PROJECT_SOURCE_DIR}/fibjs/vender/v8/include" "${PROJECT_SOURCE_DIR}/fibjs/vender/mbedtls" "${PROJECT_SOURCE_DIR}/fibjs/vender/zlib/include" "${CMAKE_CURRENT_BINARY_DIR}")
8688

89+
MACRO(EOSLIBS dir)
90+
file(GLOB eos_libs "${dir}/*")
91+
foreach(eos_lib ${eos_libs})
92+
if(IS_DIRECTORY "${eos_lib}/include")
93+
include_directories("${eos_lib}/include")
94+
endif()
95+
endforeach()
96+
ENDMACRO()
97+
98+
EOSLIBS("${EOS_DIR}/plugins")
99+
EOSLIBS("${EOS_DIR}/libraries")
100+
EOSLIBS("${EOS_DIR}/build/libraries")
101+
include_directories("${EOS_DIR}/libraries/softfloat/source/include")
102+
103+
if (APPLE)
104+
set(OPENSSL_ROOT_DIR "/usr/local/opt/openssl")
105+
elseif(UNIX AND NOT APPLE)
106+
set(OPENSSL_ROOT_DIR "/usr/include/openssl")
107+
else()
108+
message(FATAL_ERROR "openssl not found and don't know where to look, please specify OPENSSL_ROOT_DIR")
109+
endif()
110+
111+
include_directories("${OPENSSL_ROOT_DIR}/include")
112+
113+
file(GLOB_RECURSE eos_alist "eos/*.a")
114+
target_link_libraries(${appname} ${eos_alist})
115+
116+
find_package(LLVM 4.0 REQUIRED CONFIG)
117+
llvm_map_components_to_libnames(LLVM_LIBS support core passes mcjit native DebugInfoDWARF)
118+
target_link_libraries(${appname} ${LLVM_LIBS})
119+
120+
file(GLOB openssl_alist "${OPENSSL_ROOT_DIR}/lib/*.a")
121+
target_link_libraries(${appname} ${openssl_alist})
122+
123+
target_link_libraries(${appname} boost_iostreams boost_date_time boost_chrono boost_program_options boost_filesystem boost_system secp256k1)
124+
87125
set(libs fibjs expat gumbo gd tiff jpeg png webp zlib leveldb snappy ev pcre sqlite mongo umysql uuid exif mbedtls v8 zmq unzip editline exlib)
88126

89127
foreach(lib ${libs})
90-
target_link_libraries(fibos "${FIBJS_DIR}/lib${lib}.a")
128+
target_link_libraries(${appname} "${FIBJS_DIR}/lib${lib}.a")
91129
endforeach()
92130

93-
target_link_libraries(fibos pthread)
131+
target_link_libraries(${appname} pthread boost_system)
94132

95-
set_target_properties(fibos PROPERTIES LINK_FLAGS ${link_flags})
133+
set_target_properties(${appname} PROPERTIES LINK_FLAGS ${link_flags})

eos

Submodule eos updated 642 files

fibos_build

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -100,18 +100,23 @@ if [ ${BUILD_TYPE} = 'clean' ]; then
100100
fi
101101

102102
cd eos
103-
104103
sed "s/\.git/docs/g;" eosio_build.sh | sh
105104
# sed "s/\.git/docs/g;s/=Release/=Debug/g" eosio_build.sh | sh
106-
105+
if [ $? != 0 ]; then
106+
exit 1
107+
fi
107108
cd ..
108-
cd fibjs
109109

110+
cd fibjs
110111
if [ ! "$BUILD_JOBS" = "" ]; then
111112
sh build -j${BUILD_JOBS}
112113
else
113114
sh build -j
114115
fi
116+
if [ $? != 0 ]; then
117+
exit 1
118+
fi
119+
cd ..
115120

116121
if [ ! -e "${OUT_PATH}" ]; then
117122
mkdir "${OUT_PATH}"
@@ -170,8 +175,6 @@ bldred=${txtbld}$(tput setaf 1)
170175
txtrst=$(tput sgr0)
171176

172177
printf "\n\n${bldred}"
173-
174-
175178
printf "\t _______ _________ ______ _______ _______\n"
176179
printf "\t( ____ \\\\\\__ __/( ___ \\ ( ___ )( ____ \\\\\n"
177180
printf "\t| ( \\/ ) ( | ( ) )| ( ) || ( \\/\n"

idl/zh-cn/DBIterator.idl

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
/*! @brief
2+
multi index DBIterator 对象
3+
*/
4+
5+
interface DBIterator : object
6+
{
7+
/*! @brief 判断数据是否为首数据
8+
实例:
9+
```JavaScript
10+
exports.hi1 = v => {
11+
var players = db.players(action.account, action.account);
12+
var itr = players.find(v);
13+
console.log(itr.is_begin());
14+
};
15+
```
16+
*/
17+
Boolean is_begin();
18+
19+
/*! @brief 判断数据是否为尾数据
20+
实例:
21+
```JavaScript
22+
exports.hi1 = v => {
23+
var players = db.players(action.account, action.account);
24+
var itr = players.find(v);
25+
console.log(itr.is_end());
26+
};
27+
```
28+
*/
29+
Boolean is_end();
30+
31+
/*! @brief 获取下一个数据
32+
实例:
33+
```JavaScript
34+
exports.hi1 = v => {
35+
var players = db.players(action.account, action.account);
36+
var itr = players.find(v);
37+
var itr1 = itr.next();
38+
console.log(itr1.toJSON());
39+
};
40+
```
41+
*/
42+
DBIterator next();
43+
44+
/*! @brief 获取上一个数据
45+
实例:
46+
```JavaScript
47+
exports.hi1 = v => {
48+
var players = db.players(action.account, action.account);
49+
var itr = players.find(v);
50+
var itr1 = itr.next();
51+
var itr2 = itr1.previous();
52+
console.log(itr2.toJSON());
53+
};
54+
```
55+
*/
56+
DBIterator previous();
57+
58+
/*! @brief 删除数据
59+
实例:
60+
```JavaScript
61+
exports.hi1 = v => {
62+
var players = db.players(action.account, action.account);
63+
var itr = players.find(v);
64+
itr.remove();
65+
};
66+
```
67+
*/
68+
remove();
69+
70+
/*! @brief 更新数据
71+
实例:
72+
```JavaScript
73+
exports.hi1 = v => {
74+
var players = db.players(action.account, action.account);
75+
var itr = players.find(v);
76+
itr.data.age = 18;
77+
itr.update(action.account);
78+
};
79+
```
80+
@param payer 为此次操作支付 RAM 的账户
81+
*/
82+
update(String payer);
83+
84+
/*! @brief 查询当前数据,返回所有数据对象,每个数据是一个新的 DBIterator 对象 */
85+
readonly Object data;
86+
};

idl/zh-cn/Table.idl

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
/*! @brief
2+
multi index table 对象
3+
*/
4+
5+
interface Table : object
6+
{
7+
/*! @brief table 名
8+
*/
9+
readonly String name;
10+
11+
/*! @brief 指向合约发布者的名称
12+
*/
13+
readonly String code;
14+
15+
/*! @brief table 中数据所属的 account_name
16+
*/
17+
readonly String scope;
18+
19+
/*! @brief 向 table 存入新数据
20+
实例:
21+
```JavaScript
22+
exports.hi = v => {
23+
var players = db.players(action.account, action.account);
24+
players.emplace(action.account, {
25+
title: "ceo",
26+
age:48,
27+
nickname:"lion1",
28+
id:123
29+
});
30+
};
31+
```
32+
@param payer 为此次操作付费的账户
33+
@param val 将要存入到 table 的值
34+
*/
35+
emplace(String payer, Object val);
36+
37+
/*! @brief 从 table 查找数据
38+
实例:
39+
```JavaScript
40+
exports.hi = v => {
41+
var players = db.players(action.account, action.account);
42+
console.log(players.find(v).data)
43+
};
44+
```
45+
@param id 查询的参数
46+
*/
47+
DBIterator find(Value id);
48+
49+
/*! @brief 生成自增主键
50+
实例:
51+
```JavaScript
52+
exports.hi = v => {
53+
var players = db.players(action.account, action.account);
54+
console.log(players.get_primary_key())
55+
};
56+
```
57+
*/
58+
Value get_primary_key();
59+
60+
/*! @brief 获取 Table 的 begin
61+
实例:
62+
```JavaScript
63+
exports.hi = v => {
64+
var players = db.players(action.account, action.account);
65+
console.log(players.begin())
66+
};
67+
```
68+
*/
69+
DBIterator begin();
70+
71+
/*! @brief 获取 Table 的 end
72+
实例:
73+
```JavaScript
74+
exports.hi = v => {
75+
var players = db.players(action.account, action.account);
76+
console.log(players.end().is_end(), players.end().previous().data);
77+
};
78+
```
79+
*/
80+
DBIterator end();
81+
82+
/*! @brief 从 table 查找小于参数结果
83+
实例:
84+
```JavaScript
85+
exports.hi1 = v => {
86+
var players = db.players1(action.account, action.account);
87+
var data = players.lowerbound(123);
88+
console.log(data.data, data1.data);
89+
};
90+
```
91+
@param id 查询的参数
92+
*/
93+
DBIterator lowerbound(Value id);
94+
95+
/*! @brief 从 table 查找大于参数结果
96+
实例:
97+
```JavaScript
98+
exports.hi1 = v => {
99+
var players = db.players1(action.account, action.account);
100+
var data1 = players.upperbound(123);
101+
console.log(data.data, data1.data);
102+
};
103+
```
104+
@param id 查询的参数
105+
*/
106+
DBIterator upperbound(Value id);
107+
108+
/*! @brief 查询当前索引,返回所有索引对象,每个索引是一个新的 Table 对象 */
109+
readonly Object indexes;
110+
};

0 commit comments

Comments
 (0)