]> git.saurik.com Git - apple/xnu.git/blob - libkern/libkern/c++/OSUnserialize.h
xnu-6153.141.1.tar.gz
[apple/xnu.git] / libkern / libkern / c++ / OSUnserialize.h
1 /*
2 * Copyright (c) 2000-2016 Apple Inc. All rights reserved.
3 *
4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. The rights granted to you under the License
10 * may not be used to create, or enable the creation or redistribution of,
11 * unlawful or unlicensed copies of an Apple operating system, or to
12 * circumvent, violate, or enable the circumvention or violation of, any
13 * terms of an Apple operating system software license agreement.
14 *
15 * Please obtain a copy of the License at
16 * http://www.opensource.apple.com/apsl/ and read it before using this file.
17 *
18 * The Original Code and all software distributed under the License are
19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23 * Please see the License for the specific language governing rights and
24 * limitations under the License.
25 *
26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
27 */
28 /* OSUnserialize.h created by rsulack on Mon 23-Nov-1998 */
29
30 #ifndef _OS_OSUNSERIALIZE_H
31 #define _OS_OSUNSERIALIZE_H
32
33 #include <libkern/c++/OSMetaClass.h>
34 #include <libkern/c++/OSString.h>
35
36 #include <sys/appleapiopts.h>
37 #include <sys/types.h>
38
39 class OSObject;
40 class OSString;
41
42 /*!
43 * @header
44 *
45 * @abstract
46 * This header declares the <code>OSUnserializeXML</code> function.
47 */
48
49
50 /*!
51 * @function OSUnserializeXML
52 *
53 * @abstract
54 * Recreates an OSContainer object
55 * from its previously serialized OSContainer class instance data.
56 *
57 * @param buffer A buffer containing nul-terminated XML data
58 * representing the object to be recreated.
59 * @param errorString If non-<code>NULL</code>, and the XML parser
60 * finds an error in <code>buffer</code>,
61 * <code>*errorString</code> indicates the line number
62 * and type of error encountered.
63 *
64 * @result
65 * The recreated object, or <code>NULL</code> on failure.
66 *
67 * @discussion
68 * <b>Not safe</b> to call in a primary interrupt handler.
69 */
70 extern "C++" OSObjectPtr OSUnserializeXML(
71 const char * buffer,
72 OSStringPtr * errorString = NULL);
73
74 /*!
75 * @function OSUnserializeXML
76 *
77 * @abstract
78 * Recreates an OSContainer object
79 * from its previously serialized OSContainer class instance data.
80 *
81 * @param buffer A buffer containing nul-terminated XML data
82 * representing the object to be recreated.
83 * @param bufferSize The size of the block of memory. The function
84 * never scans beyond the first bufferSize bytes.
85 * @param errorString If non-<code>NULL</code>, and the XML parser
86 * finds an error in <code>buffer</code>,
87 * <code>*errorString</code> indicates the line number
88 * and type of error encountered.
89 *
90 * @result
91 * The recreated object, or <code>NULL</code> on failure.
92 *
93 * @discussion
94 * <b>Not safe</b> to call in a primary interrupt handler.
95 */
96 extern "C++" OSObjectPtr OSUnserializeXML(
97 const char * buffer,
98 size_t bufferSize,
99 OSStringPtr *errorString = NULL);
100
101 extern "C++" OSObjectPtr
102 OSUnserializeBinary(const char *buffer, size_t bufferSize, OSStringPtr *errorString);
103
104 #ifdef __APPLE_API_OBSOLETE
105 extern OSObjectPtr OSUnserialize(const char *buffer, OSStringPtr *errorString = NULL);
106 #endif /* __APPLE_API_OBSOLETE */
107
108 #endif /* _OS_OSUNSERIALIZE_H */