[darwinbuild-changes] [688] branches/PR-7489777/darwinup
source_changes at macosforge.org
source_changes at macosforge.org
Wed Feb 3 11:28:04 PST 2010
Revision: 688
http://trac.macosforge.org/projects/darwinbuild/changeset/688
Author: wsiegrist at apple.com
Date: 2010-02-03 11:28:01 -0800 (Wed, 03 Feb 2010)
Log Message:
-----------
Implemented DarwinupDatabase::insert_archive()
Modified Paths:
--------------
branches/PR-7489777/darwinup/DB.cpp
branches/PR-7489777/darwinup/DB.h
branches/PR-7489777/darwinup/main.cpp
Modified: branches/PR-7489777/darwinup/DB.cpp
===================================================================
--- branches/PR-7489777/darwinup/DB.cpp 2010-02-03 18:38:57 UTC (rev 687)
+++ branches/PR-7489777/darwinup/DB.cpp 2010-02-03 19:28:01 UTC (rev 688)
@@ -70,15 +70,31 @@
assert(this->add_table(this->m_files_table));
}
+uint64_t DarwinupDatabase::insert_archive(uuid_t uuid, uint32_t info, const char* name, time_t date_added) {
+ bool res = this->insert(this->m_archives_table,
+ (uint8_t*)uuid,
+ (uint32_t)sizeof(uuid),
+ name,
+ (uint64_t)date_added,
+ (uint64_t)0,
+ (uint64_t)info);
+ if (!res) {
+ fprintf(stderr, "Error: unable to insert archive %s: %s \n",
+ name, this->error());
+ return 0;
+ }
+
+ return this->last_insert_id();
+}
+
+
+
uint64_t DarwinupDatabase::insert_file(uint32_t info, mode_t mode, uid_t uid, gid_t gid,
Digest* digest, Archive* archive, const char* path) {
- // must provide arguments in the same order as calls to add_column
- // blobs need 2 args, the data and the size
- // Database::insert() requires uint64_t integers
bool res = this->insert(this->m_files_table,
- archive->serial(),
+ (uint64_t)archive->serial(),
(uint64_t)info,
(uint64_t)mode,
(uint64_t)uid,
Modified: branches/PR-7489777/darwinup/DB.h
===================================================================
--- branches/PR-7489777/darwinup/DB.h 2010-02-03 18:38:57 UTC (rev 687)
+++ branches/PR-7489777/darwinup/DB.h 2010-02-03 19:28:01 UTC (rev 688)
@@ -35,6 +35,8 @@
#include <stdint.h>
#include <assert.h>
+#include <uuid/uuid.h>
+#include <time.h>
#include "Database.h"
#include "Table.h"
#include "Archive.h"
@@ -55,7 +57,8 @@
virtual ~DarwinupDatabase();
void init_schema();
- // inserts into file table, returns serial from primary key
+ // inserts into tables, returns serial from primary key
+ uint64_t insert_archive(uuid_t uuid, uint32_t info, const char* name, time_t date);
uint64_t insert_file(uint32_t info, mode_t mode, uid_t uid, gid_t gid,
Digest* digest, Archive* archive, const char* path);
Modified: branches/PR-7489777/darwinup/main.cpp
===================================================================
--- branches/PR-7489777/darwinup/main.cpp 2010-02-03 18:38:57 UTC (rev 687)
+++ branches/PR-7489777/darwinup/main.cpp 2010-02-03 19:28:01 UTC (rev 688)
@@ -145,9 +145,12 @@
// XXX: test area for new database... remove me
DarwinupDatabase* testdb = new DarwinupDatabase("/.DarwinDepot/Database-V200");
- File* f = FileFactory("/etc/services");
+
Archive* a = new Archive("/.DarwinDepot/Archives/56E93DEE-E6BB-44B2-80A4-32E961751DD8.tar.bz2");
- const char* mypath = "/path/to/file";
+ uint64_t s = testdb->insert_archive(a->uuid(), a->info(), a->name(), a->date_installed());
+
+ const char* mypath = "/etc/services";
+ File* f = FileFactory(mypath);
testdb->insert_file(1, 2, 3, 4, f->digest(), a, mypath);
exit(0);
// XXX
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/darwinbuild-changes/attachments/20100203/cdd42e22/attachment.html>
More information about the darwinbuild-changes
mailing list