[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