topical media & game development

talk show tell print

lib-of-vs-libs-QTDevWin-CIncludes-CFURLAccess.h / h



  /*
       File:       CFURLAccess.h
   
       Contains:   CoreFoundation url access
   
       Version:    Technology: Mac OS X
                   Release:    QuickTime 6.0.2
   
       Copyright:  (c) 1999-2001 by Apple Computer, Inc., all rights reserved
   
       Bugs?:      For bug reports, consult the following page on
                   the World Wide Web:
   
                       http://developer.apple.com/bugreporter/
   
  */
  ifndef __CFURLACCESS__
  define __CFURLACCESS__
  
  ifndef __CFURL__
  include <CFURL.h>
  endif
  
  ifndef __CFARRAY__
  include <CFArray.h>
  endif
  
  ifndef __CFDATA__
  include <CFData.h>
  endif
  
  ifndef __CFDICTIONARY__
  include <CFDictionary.h>
  endif
  
  ifndef __CFSTRING__
  include <CFString.h>
  endif
  
  /* Fills buffer with the file system's native representation of url's */
  /* path. No more than bufLen bytes are written to buffer.  If resolveAgainstBase */
  /* is true, the url's relative portion is resolved against its base before */
  /* the path is computed.  usedBufLen is set to the number of bytes actually */
  /* written; returns success or failure. */
  
  if PRAGMA_ONCE
  #pragma once
  endif
  
  ifdef __cplusplus
  extern "C" {
  endif
  
  if PRAGMA_IMPORT
  #pragma import on
  endif
  
  if PRAGMA_STRUCT_ALIGN
      #pragma options align=mac68k
  #elif PRAGMA_STRUCT_PACKPUSH
      #pragma pack(push, 2)
  #elif PRAGMA_STRUCT_PACK
      #pragma pack(2)
  endif
  
  if PRAGMA_ENUM_ALWAYSINT
      #if defined(__fourbyteints__) && !__fourbyteints__ 
          #define __CFURLACCESS__RESTORE_TWOBYTEINTS
          #pragma fourbyteints on
      #endif
      #pragma enumsalwaysint on
  #elif PRAGMA_ENUM_OPTIONS
      #pragma option enum=int
  #elif PRAGMA_ENUM_PACK
      #if __option(pack_enums)
          #define __CFURLACCESS__RESTORE_PACKED_ENUMS
          #pragma options(!pack_enums)
      #endif
  endif
  
  EXTERN_API_C( Boolean )
  CFURLGetFileSystemRepresentation (CFURLRef              url,
                                   Boolean                resolveAgainstBase,
                                   char *                 buffer,
                                   CFIndex                bufLen);
  
  EXTERN_API_C( CFURLRef )
  CFURLCreateFromFileSystemRepresentation (CFAllocatorRef  allocator,
                                   const char *           buffer,
                                   CFIndex                bufLen,
                                   Boolean                isDirectory);
  
  /* Attempts to read the data and properties for the given URL. */
  /* If only interested in one of the resourceData and properties, pass */
  /* NULL for the other.  If properties is non-NULL and desiredProperties */
  /* is NULL, then all properties are fetched.  Returns success or failure; */
  /* note that as much work as possible is done even if FALSE is returned. */
  /* So for instance if one property is not available, the others are fetched */
  /* anyway. errorCode is set to 0 on success, and some other value on failure. */
  /* If non-NULL, it is the caller 's responsibility to release resourceData */
  /* and properties. */
  /* Apple reserves for its use all negative error code values; these values */
  /* represent errors common to any scheme.  Scheme-specific error codes */
  /* should be positive, non-zero, and should be used only if one of the */
  /* predefined Apple error codes does not apply.  Error codes should be */
  /* publicized and documented with the scheme-specific properties. */
  EXTERN_API_C( Boolean )
  CFURLCreateDataAndPropertiesFromResource (CFAllocatorRef  alloc,
                                   CFURLRef               url,
                                   CFDataRef *            resourceData,
                                   CFDictionaryRef *      properties,
                                   CFArrayRef             desiredProperties,
                                   SInt32 *               errorCode);
  
  /* Attempts to write the given data and properties to the given URL. */
  /* If dataToWrite is NULL, only properties are written out (use */
  /* CFURLDestroyResource() to delete a resource).  Properties not present */
  /* in propertiesToWrite are left unchanged, hence if propertiesToWrite */
  /* is NULL or empty, the URL's properties are not changed at all. */
  /* Returns success or failure; errorCode is set as for */
  /* CFURLCreateDataAndPropertiesFromResource(), above. */
  EXTERN_API_C( Boolean )
  CFURLWriteDataAndPropertiesToResource (CFURLRef         url,
                                   CFDataRef              dataToWrite,
                                   CFDictionaryRef        propertiesToWrite,
                                   SInt32 *               errorCode);
  
  /* Destroys the resource indicated by url. */
  /* Returns success or failure; errorCode set as above. */
  EXTERN_API_C( Boolean )
  CFURLDestroyResource            (CFURLRef               url,
                                   SInt32 *               errorCode);
  
  /* Convenience method which calls through to CFURLCreateDataAndPropertiesFromResource(). */
  /* Returns NULL on error and sets errorCode accordingly. */
  EXTERN_API_C( CFTypeRef )
  CFURLCreatePropertyFromResource (CFAllocatorRef         alloc,
                                   CFURLRef               url,
                                   CFStringRef            property,
                                   SInt32 *               errorCode);
  
  /* Common error codes; this list is expected to grow */
  enum {
      kCFURLUnknownError          = -10,
      kCFURLUnknownSchemeError    = -11,
      kCFURLResourceNotFoundError = -12,
      kCFURLResourceAccessViolationError = -13,
      kCFURLRemoteHostUnavailableError = -14,
      kCFURLImproperArgumentsError = -15,
      kCFURLUnknownPropertyKeyError = -16,
      kCFURLPropertyKeyUnavailableError = -17,
      kCFURLTimeoutError          = -18
  };
  
  /* Properties and error codes for the file: scheme.  These are ad hoc and expected to change */
  extern const CFStringRef kCFFileURLExists;
  extern const CFStringRef kCFFileURLPOSIXMode;
  extern const CFStringRef kCFFileURLDirectoryContents;
  extern const CFStringRef kCFFileURLSize;
  extern const CFStringRef kCFFileURLLastModificationTime;
  extern const CFStringRef kCFHTTPURLStatusCode;
  extern const CFStringRef kCFHTTPURLStatusLine;
  /* kCFFileURLExists is set to kCFFileURLExists if the file exists; any other value if not */
  /* kCFFileURLPOSIXMode encompasses permissions and file type; use the POSIX masks in stat.h */
  /* to get specifics.  Value is a CFData wrapped around a mode_t */
  /* kCFFileURLDirectoryContents value is a CFArray with containing URLs for the directory's contents. */
  /* Empty array means the directory exists, but is empty. */
  /* NULL value (but no failure) means the URL exists but is not a directory. */
  /* Not settable */
  /* kCFHTTPURLStatusCode and kCFHTTPURLStatusLine are properties for the cheme. */
/* Except for the common error */
/* codes, above, errorCode will be set to the HTTP response status */
/* code upon failure.  The status code is a CFNumber, the status line is a CFString.  */

if PRAGMA_ENUM_ALWAYSINT
    #pragma enumsalwaysint reset
    #ifdef __CFURLACCESS__RESTORE_TWOBYTEINTS
        #pragma fourbyteints off
    #endif
#elif PRAGMA_ENUM_OPTIONS
    #pragma option enum=reset
#elif defined(__CFURLACCESS__RESTORE_PACKED_ENUMS)
    #pragma options(pack_enums)
endif

if PRAGMA_STRUCT_ALIGN
    #pragma options align=reset
#elif PRAGMA_STRUCT_PACKPUSH
    #pragma pack(pop)
#elif PRAGMA_STRUCT_PACK
    #pragma pack()
endif

ifdef PRAGMA_IMPORT_OFF
#pragma import off
#elif PRAGMA_IMPORT
#pragma import reset
endif

ifdef __cplusplus
 scheme. */
  /* Except for the common error */
  /* codes, above, errorCode will be set to the HTTP response status */
  /* code upon failure.  The status code is a CFNumber, the status line is a CFString.  */
  
  if PRAGMA_ENUM_ALWAYSINT
      #pragma enumsalwaysint reset
      #ifdef __CFURLACCESS__RESTORE_TWOBYTEINTS
          #pragma fourbyteints off
      #endif
  #elif PRAGMA_ENUM_OPTIONS
      #pragma option enum=reset
  #elif defined(__CFURLACCESS__RESTORE_PACKED_ENUMS)
      #pragma options(pack_enums)
  endif
  
  if PRAGMA_STRUCT_ALIGN
      #pragma options align=reset
  #elif PRAGMA_STRUCT_PACKPUSH
      #pragma pack(pop)
  #elif PRAGMA_STRUCT_PACK
      #pragma pack()
  endif
  
  ifdef PRAGMA_IMPORT_OFF
  #pragma import off
  #elif PRAGMA_IMPORT
  #pragma import reset
  endif
  
  ifdef __cplusplus
  }
  endif
  
  endif /* __CFURLACCESS__ */
  
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.