Skip to content
This repository has been archived by the owner on Jun 10, 2024. It is now read-only.

Commit

Permalink
fixed conn.getusername and connstring
Browse files Browse the repository at this point in the history
  • Loading branch information
loveridge committed Aug 17, 2015
1 parent 09d4422 commit c7ddaca
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 3 deletions.
21 changes: 21 additions & 0 deletions lib/src/connection.cc
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

namespace occi = oracle::occi;


void OracleConnection_finalizer(void* isolate_callback_data,
Dart_WeakPersistentHandle handle,
void* peer) {
Expand Down Expand Up @@ -60,3 +61,23 @@ void OracleConnection_rollback(Dart_NativeArguments args) {

Dart_ExitScope();
}


void OracleConnection_getUsername(Dart_NativeArguments args){
Dart_EnterScope();

std::string s = getThis<std::shared_ptr<Connection>>(args)->get()->username;
Dart_Handle dh = HandleError(Dart_NewStringFromCString(s.c_str()));
Dart_SetReturnValue(args, dh);

Dart_ExitScope();
}
void OracleConnection_getConnectionString(Dart_NativeArguments args){
Dart_EnterScope();

std::string s = getThis<std::shared_ptr<Connection>>(args)->get()->connstr;
Dart_Handle dh = HandleError(Dart_NewStringFromCString(s.c_str()));
Dart_SetReturnValue(args, dh);

Dart_ExitScope();
}
6 changes: 5 additions & 1 deletion lib/src/connection.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,13 @@
struct Connection {
std::shared_ptr<Environment> env;
occi::Connection *conn;
std::string username;
std::string connstr;

Connection(std::shared_ptr<Environment> env,
std::string username,
std::string password,
std::string connStr) : env(env) {
std::string connStr) : env(env), username{username}, connstr{connStr} {
conn = env.get()->env->createConnection(username, password, connStr);
}

Expand All @@ -33,3 +35,5 @@ void OracleConnection_init(Dart_NativeArguments arguments);
void OracleConnection_commit(Dart_NativeArguments arguments);
void OracleConnection_createStatement(Dart_NativeArguments arguments);
void OracleConnection_rollback(Dart_NativeArguments arguments);
void OracleConnection_getUsername(Dart_NativeArguments arguments);
void OracleConnection_getConnectionString(Dart_NativeArguments arguments);
3 changes: 1 addition & 2 deletions lib/src/environment.cc
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,7 @@ void OracleEnvironment_createConnection(Dart_NativeArguments args) {
std::string connStrg = getDartArg<std::string>(args, 3);

try {
auto conn = new std::shared_ptr<Connection>(
new Connection(*env, username, password, connStrg));
auto conn = new std::shared_ptr<Connection>(new Connection(*env, username, password, connStrg));

Dart_Handle dh = NewInstanceWithPeer("Connection", (void *)conn);
Dart_NewWeakPersistentHandle(dh, conn, sizeof(conn), OracleConnection_finalizer);
Expand Down
2 changes: 2 additions & 0 deletions lib/src/occi_extension.cc
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ FunctionLookup function_list[] = {
{"OracleConnection_commit", OracleConnection_commit},
{"OracleConnection_createStatement", OracleConnection_createStatement},
{"OracleConnection_rollback", OracleConnection_rollback},
{"OracleConnection_getUsername", OracleConnection_getUsername},
{"OracleConnection_getConnectionString", OracleConnection_getConnectionString},
{"OracleStatement_getSql", OracleStatement_getSql},
{"OracleStatement_setSql", OracleStatement_setSql},
{"OracleStatement_setPrefetchRowCount", OracleStatement_setPrefetchRowCount},
Expand Down
3 changes: 3 additions & 0 deletions lib/src/occi_extension.dart
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,9 @@ class Connection {
}
}

String getUsername() native 'OracleConnection_getUsername';
String getConnectionString() native 'OracleConnection_getConnectionString';

void execute(String sql, [List<Object> args]) {
var stmt = createStatement(sql);
_bindArgs(stmt, args);
Expand Down
4 changes: 4 additions & 0 deletions test/complete_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ main() {
stmt.execute();
con.commit();
});
test('get connection properties', (){
expect(con.getConnectionString(), equals(connString));
expect(con.getUsername(), equals(username));
});
test('test blob', () {
List<int> bloblist = [2, 4, 6, 8, 10];
var stmt = con.createStatement("SELECT test_blob FROM test_table FOR UPDATE");
Expand Down

0 comments on commit c7ddaca

Please sign in to comment.