SecKeychainItemRequestData.h [plain text]
#ifndef SecKeychainItemRequestData_h
#define SecKeychainItemRequestData_h
#include "DataReference.h"
#include "KeychainAttribute.h"
#include <Security/Security.h>
#include <wtf/OwnArrayPtr.h>
#include <wtf/RetainPtr.h>
#include <wtf/Vector.h>
namespace CoreIPC {
class ArgumentDecoder;
class ArgumentEncoder;
}
namespace WebKit {
class SecKeychainItemRequestData {
public:
SecKeychainItemRequestData();
SecKeychainItemRequestData(SecKeychainItemRef, SecKeychainAttributeList*);
SecKeychainItemRequestData(SecKeychainItemRef, SecKeychainAttributeList*, UInt32 length, const void* data);
SecKeychainItemRequestData(SecItemClass, SecKeychainAttributeList*, UInt32 length, const void* data);
~SecKeychainItemRequestData();
void encode(CoreIPC::ArgumentEncoder*) const;
static bool decode(CoreIPC::ArgumentDecoder*, SecKeychainItemRequestData&);
SecKeychainItemRef keychainItem() const { return m_keychainItem.get(); }
SecItemClass itemClass() const { return m_itemClass; }
UInt32 length() const { return m_dataReference.size(); }
const void* data() const { return m_dataReference.data(); }
SecKeychainAttributeList* attributeList() const;
private:
void initializeWithAttributeList(SecKeychainAttributeList*);
RetainPtr<SecKeychainItemRef> m_keychainItem;
SecItemClass m_itemClass;
CoreIPC::DataReference m_dataReference;
Vector<KeychainAttribute> m_keychainAttributes;
mutable OwnPtr<SecKeychainAttributeList> m_attributeList;
mutable OwnArrayPtr<SecKeychainAttribute> m_attributes;
};
}
#endif // SecKeychainItemRequestData_h