]> git.saurik.com Git - apple/security.git/blobdiff - libsecurity_filedb/lib/MetaRecord.h
Security-57031.1.35.tar.gz
[apple/security.git] / libsecurity_filedb / lib / MetaRecord.h
diff --git a/libsecurity_filedb/lib/MetaRecord.h b/libsecurity_filedb/lib/MetaRecord.h
deleted file mode 100644 (file)
index b71a77d..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Copyright (c) 2000-2001 Apple Computer, Inc. All Rights Reserved.
- * 
- * The contents of this file constitute Original Code as defined in and are
- * subject to the Apple Public Source License Version 1.2 (the 'License').
- * You may not use this file except in compliance with the License. Please obtain
- * a copy of the License at http://www.apple.com/publicsource and read it before
- * using this file.
- * 
- * This Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS
- * OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
- * LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- * PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. Please see the License for the
- * specific language governing rights and limitations under the License.
- */
-
-
-//
-// MetaRecord.h
-//
-
-#ifndef _H_APPLEDL_METARECORD
-#define _H_APPLEDL_METARECORD
-
-#include "MetaAttribute.h"
-
-namespace Security
-{
-
-//
-// Part of the Unique record identifier needed to identify the actual record.
-//
-class RecordId
-{
-public:
-       RecordId() : mRecordNumber(~(uint32)0), mCreateVersion(~(uint32)0), mRecordVersion(~(uint32)0) {}
-    RecordId(uint32 inRecordNumber, uint32 inCreateVersion, uint32 inRecordVersion = 0)
-         : mRecordNumber(inRecordNumber),
-        mCreateVersion(inCreateVersion),
-               mRecordVersion(inRecordVersion) {}
-    bool operator <(const RecordId &inRecordId) const
-    {
-        return (mRecordNumber < inRecordId.mRecordNumber
-                || (mRecordNumber == inRecordId.mRecordNumber
-                    && (mCreateVersion < inRecordId.mCreateVersion
-                                               || (mCreateVersion == inRecordId.mCreateVersion
-                                                       && mRecordVersion < inRecordId.mRecordVersion))));
-    }
-    uint32 mRecordNumber;
-    uint32 mCreateVersion;
-       uint32 mRecordVersion;
-};
-
-//
-// Meta (or Schema) representation of an a Record.  Used for packing and unpacking objects.
-//
-
-class MetaRecord
-{
-       NOCOPY(MetaRecord)
-       
-public:
-    MetaRecord(CSSM_DB_RECORDTYPE inRecordType);
-       MetaRecord(const CSSM_DB_RECORD_ATTRIBUTE_INFO &inInfo);
-    MetaRecord(CSSM_DB_RECORDTYPE inRelationID,
-               uint32 inNumberOfAttributes,
-                          const CSSM_DB_SCHEMA_ATTRIBUTE_INFO *inAttributeInfo);
-       ~MetaRecord();
-
-    void setRecordAttributeInfo(const CSSM_DB_RECORD_ATTRIBUTE_INFO &inInfo);
-       
-    void createAttribute(const string *inAttributeName,
-                                                const CssmOid *inAttributeOID,
-                         uint32 inAttributeID,
-                                                CSSM_DB_ATTRIBUTE_FORMAT inAttributeFormat);
-
-    // Create a packed record from the given inputs.
-    void packRecord(WriteSection &inWriteSection,
-                    const CSSM_DB_RECORD_ATTRIBUTE_DATA *inAttributes,
-                    const CssmData *inData) const;
-
-       // Unpack a record from the given inputs and return the RecordId of the record.
-    void unpackRecord(const ReadSection &inReadSection,
-                                         Allocator &inAllocator,
-                                         CSSM_DB_RECORD_ATTRIBUTE_DATA_PTR inoutAttributes,
-                                         CssmData *inoutData,
-                                         CSSM_QUERY_FLAGS inQueryFlags) const;
-
-       const MetaAttribute &metaAttribute(const CSSM_DB_ATTRIBUTE_INFO &inAttributeInfo) const;
-
-       void updateRecord(const ReadSection &inReadSection,
-                                         WriteSection &inWriteSection,
-                                         const CssmDbRecordAttributeData *inAttributes,
-                                         const CssmData *inData,
-                                         CSSM_DB_MODIFY_MODE inModifyMode) const;
-
-    CSSM_DB_RECORDTYPE dataRecordType() const { return mRecordType; }
-
-       Range dataRange(const ReadSection &inReadSection) const
-       {
-        return Range((uint32)(OffsetAttributeOffsets + mAttributeVector.size() * AtomSize),
-                                        inReadSection[OffsetDataSize]);
-       }
-
-       // Currently this is not a real attribute.  We should probably fix this.
-       uint32 semanticInformation(const ReadSection &inReadSection) const
-       {
-               return inReadSection[OffsetSemanticInformation];
-       }
-
-    // Return the ReadSection for record at offset
-       static const ReadSection readSection(const ReadSection &inTableSection, uint32 inOffset)
-       {
-               return inTableSection.subsection(inOffset,
-                                                                                inTableSection[inOffset + OffsetRecordSize]);
-       }
-
-       // Set the RecordId of the record in inWriteSection
-       static void packRecordId(const RecordId &inRecordId,
-                                                        WriteSection &inWriteSection)
-       {
-               inWriteSection.put(OffsetRecordNumber, inRecordId.mRecordNumber);
-               inWriteSection.put(OffsetCreateVersion, inRecordId.mCreateVersion);
-               inWriteSection.put(OffsetRecordVersion, inRecordId.mRecordVersion);
-       }
-
-       // Return the RecordId for the record inRecordSection
-       static const uint32 unpackRecordNumber(const ReadSection &inRecordSection)
-       {
-               return inRecordSection[OffsetRecordNumber];
-       }
-
-       // Return the RecordId for the record inRecordSection
-       static const RecordId unpackRecordId(const ReadSection &inRecordSection)
-       {
-               return RecordId(inRecordSection[OffsetRecordNumber],
-                                               inRecordSection[OffsetCreateVersion],
-                                               inRecordSection[OffsetRecordVersion]);
-       }
-
-private:
-    // Return the index (0 though NumAttributes - 1) of the attribute
-    // represented by inAttributeInfo
-    uint32 attributeIndex(const CSSM_DB_ATTRIBUTE_INFO &inAttributeInfo) const;
-
-    void unpackAttribute(const ReadSection &inReadSection, Allocator &inAllocator,
-                         CSSM_DB_ATTRIBUTE_DATA &inoutAttribute) const;
-
-    friend class MetaAttribute;
-       enum
-       {
-               OffsetRecordSize                        = AtomSize * 0,
-               OffsetRecordNumber                      = AtomSize * 1,
-               OffsetCreateVersion                     = AtomSize * 2,
-               OffsetRecordVersion                     = AtomSize * 3,
-               OffsetDataSize                          = AtomSize * 4,
-               OffsetSemanticInformation       = AtomSize * 5,
-               OffsetAttributeOffsets          = AtomSize * 6
-       };
-
-       CSSM_DB_RECORDTYPE mRecordType;
-       typedef std::map<string, uint32> NameStringMap;
-       typedef std::map<CssmBuffer<CssmOidContainer>, uint32> NameOIDMap;
-       typedef std::map<uint32, uint32> NameIntMap;
-       typedef std::vector<MetaAttribute *> AttributeVector;
-       NameStringMap mNameStringMap;
-       NameOIDMap mNameOIDMap;
-       NameIntMap mNameIntMap;
-       AttributeVector mAttributeVector;
-};
-
-} // end namespace Security
-
-#endif // _H_APPLEDL_METARECORD
-