X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;ds=sidebyside;f=localdb.cc;h=e946d18935894f5d19c5e4b0be88d8c8f18402e2;hb=1048a6510710acb5bef352d0acb2dd13ecce0e01;hp=8a5e1f1382b5c8c0e44eb10a3ca11a53e284f561;hpb=893aa36d4dee18cc85843c441219c8e177282e79;p=cumulus.git diff --git a/localdb.cc b/localdb.cc index 8a5e1f1..e946d18 100644 --- a/localdb.cc +++ b/localdb.cc @@ -325,3 +325,43 @@ void LocalDb::SetSegmentChecksum(const std::string &segment, sqlite3_finalize(stmt); } + +bool LocalDb::GetSegmentChecksum(const string &segment, + string *seg_path, + string *seg_checksum) +{ + int rc; + sqlite3_stmt *stmt; + ObjectReference ref; + int found = false; + + stmt = Prepare("select path, checksum from segments where segment = ?"); + sqlite3_bind_text(stmt, 1, segment.c_str(), segment.size(), + SQLITE_TRANSIENT); + + rc = sqlite3_step(stmt); + if (rc == SQLITE_DONE) { + } else if (rc == SQLITE_ROW) { + found = true; + const char *val; + + val = (const char *)sqlite3_column_text(stmt, 0); + if (val == NULL) + found = false; + else + *seg_path = val; + + val = (const char *)sqlite3_column_text(stmt, 1); + if (val == NULL) + found = false; + else + *seg_checksum = val; + } else { + fprintf(stderr, "Could not execute SELECT statement!\n"); + ReportError(rc); + } + + sqlite3_finalize(stmt); + + return found; +}