diff -r 000000000000 -r 715d6147ba3a src/Base.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Base.cpp	Thu Sep 24 10:36:08 2009 -0700
@@ -0,0 +1,66 @@
+/*
+ *  Base.cpp
+ *  Ottoman
+ *
+ *  Created by Jens Alfke on 8/18/09.
+ *  Copyright 2009 Jens Alfke. All rights reserved.
+ *  BSD-Licensed: See the file "LICENSE.txt" for details.
+ */
+
+#include "Base.h"
+#include "File.h"
+#include <assert.h>
+#include <errno.h>
+#include <CoreFoundation/CFUUID.h>
+
+namespace Mooseyard {
+    
+#pragma mark -
+#pragma mark BLOB:
+    
+    Blob::Blob (const char *str)
+        :bytes(str),
+         length(str ?strlen(str) :0)
+    { }
+    
+    /*
+     struct MutableBlob :public Blob {
+         MutableBlob(void *b, size_t len)                        :Blob(b,len) { }
+         void* mutableBytes()                                    {return (void*)bytes;}
+         void freeBytes()                                        {::free(mutableBytes()); bytes=NULL; length=0;}
+     };
+     MutableBlob Blob::copyBytes() const {
+        MutableBlob copy( malloc(length), length);
+        memcpy(copy.mutableBytes(), bytes, length);
+        return copy;
+    }
+    */
+        
+#pragma mark -
+#pragma mark UUID:
+  
+#if 0
+    /** Typical 128-bit universally-unique identifier. */
+    class UUID {
+    public:
+        UUID();
+        const void *bytes() const                           {return _bytes;}
+        bool operator== (const UUID&) const;
+    private:
+        uint8_t _bytes[16];
+    };
+    
+    
+    UUID::UUID() {
+        CFUUIDRef u = CFUUIDCreate(NULL);
+        CFUUIDBytes bytes = CFUUIDGetUUIDBytes(u);
+        memcpy(&_bytes, &bytes, sizeof(_bytes));
+        CFRelease(u);
+    }
+
+    bool UUID::operator== (const UUID& u) const {
+        return memcmp(_bytes, u._bytes, sizeof(_bytes)) == 0;
+    }
+#endif
+    
+}