1 //===-- CFData.cpp ----------------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // Created by Greg Clayton on 1/16/08.
12 //===----------------------------------------------------------------------===//
16 //----------------------------------------------------------------------
18 //----------------------------------------------------------------------
19 CFData::CFData(CFDataRef data) :
20 CFReleaser<CFDataRef>(data)
25 //----------------------------------------------------------------------
26 // CFData copy constructor
27 //----------------------------------------------------------------------
28 CFData::CFData(const CFData& rhs) :
29 CFReleaser<CFDataRef>(rhs)
34 //----------------------------------------------------------------------
35 // CFData copy constructor
36 //----------------------------------------------------------------------
38 CFData::operator=(const CFData& rhs)
45 //----------------------------------------------------------------------
47 //----------------------------------------------------------------------
54 CFData::GetLength() const
56 CFDataRef data = get();
58 return CFDataGetLength (data);
64 CFData::GetBytePtr() const
66 CFDataRef data = get();
68 return CFDataGetBytePtr (data);
73 CFData::Serialize(CFPropertyListRef plist, CFPropertyListFormat format)
75 CFAllocatorRef alloc = kCFAllocatorDefault;
77 CFReleaser<CFWriteStreamRef> stream (::CFWriteStreamCreateWithAllocatedBuffers (alloc, alloc));
78 ::CFWriteStreamOpen (stream.get());
79 CFIndex len = ::CFPropertyListWriteToStream (plist, stream.get(), format, NULL);
81 reset((CFDataRef)::CFWriteStreamCopyProperty (stream.get(), kCFStreamPropertyDataWritten));
82 ::CFWriteStreamClose (stream.get());