]>
git.saurik.com Git - apple/syslog.git/blob - libsystem_asl.tproj/include/asl_object.h
1 #ifndef __ASL_OBJECT_H__
2 #define __ASL_OBJECT_H__
5 * Copyright (c) 2007-2012 Apple Inc. All rights reserved.
7 * @APPLE_LICENSE_HEADER_START@
9 * This file contains Original Code and/or Modifications of Original Code
10 * as defined in and that are subject to the Apple Public Source License
11 * Version 2.0 (the 'License'). You may not use this file except in
12 * compliance with the License. Please obtain a copy of the License at
13 * http://www.opensource.apple.com/apsl/ and read it before using this
16 * The Original Code and all software distributed under the License are
17 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
18 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
19 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
20 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
21 * Please see the License for the specific language governing rights and
22 * limitations under the License.
24 * @APPLE_LICENSE_HEADER_END@
30 /* generic object pointer */
31 typedef struct _asl_object_s
33 uint32_t asl_type
; //ASL OBJECT HEADER
34 int32_t refcount
; //ASL OBJECT HEADER
36 } asl_object_private_t
;
38 #define ASL_OBJECT_HEADER_SIZE 8
40 typedef struct asl_jump_table_s
42 asl_object_private_t
* (*alloc
)(uint32_t type
);
43 void (*dealloc
)(asl_object_private_t
*obj
);
44 int (*set_key_val_op
)(asl_object_private_t
*obj
, const char *key
, const char *val
, uint16_t op
);
45 void (*unset_key
)(asl_object_private_t
*obj
, const char *key
);
46 int (*get_val_op_for_key
)(asl_object_private_t
*obj
, const char *key
, const char **val
, uint16_t *op
);
47 int (*get_key_val_op_at_index
)(asl_object_private_t
*obj
, size_t n
, const char **key
, const char **val
, uint16_t *op
);
48 size_t (*count
)(asl_object_private_t
*obj
);
49 asl_object_private_t
*(*next
)(asl_object_private_t
*obj
);
50 asl_object_private_t
*(*prev
)(asl_object_private_t
*obj
);
51 asl_object_private_t
*(*get_object_at_index
)(asl_object_private_t
*obj
, size_t n
);
52 void (*set_iteration_index
)(asl_object_private_t
*obj
, size_t n
);
53 void (*remove_object_at_index
)(asl_object_private_t
*obj
, size_t n
);
54 void (*append
)(asl_object_private_t
*obj
, asl_object_private_t
*newobj
);
55 void (*prepend
)(asl_object_private_t
*obj
, asl_object_private_t
*newobj
);
56 asl_object_private_t
*(*search
)(asl_object_private_t
*obj
, asl_object_private_t
*query
);
57 asl_object_private_t
*(*match
)(asl_object_private_t
*obj
, asl_object_private_t
*querylist
, size_t *last
, size_t start
, size_t count
, uint32_t duration
, int32_t dir
);
62 int asl_object_set_key_val_op(asl_object_private_t
*obj
, const char *key
, const char *val
, uint16_t op
);
63 void asl_object_unset_key(asl_object_private_t
*obj
, const char *key
);
64 int asl_object_get_key_value_op(asl_object_private_t
*obj
, const char *key
, const char **val
, uint16_t *op
);
65 size_t asl_object_count(asl_object_private_t
*obj
);
66 asl_object_private_t
*asl_object_next(asl_object_private_t
*obj
);
67 asl_object_private_t
*asl_object_prev(asl_object_private_t
*obj
);
68 asl_object_private_t
*asl_object_get_object_at_index(asl_object_private_t
*obj
, size_t n
);
69 void asl_object_set_iteration_index(asl_object_private_t
*obj
, size_t n
);
70 void asl_object_remove_object_at_index(asl_object_private_t
*obj
, size_t n
);
71 void asl_object_append(asl_object_private_t
*obj
, asl_object_private_t
*newobj
);
72 void asl_object_prepend(asl_object_private_t
*obj
, asl_object_private_t
*newobj
);
73 asl_object_private_t
*asl_object_search(asl_object_private_t
*obj
, asl_object_private_t
*query
);
74 asl_object_private_t
*asl_object_match(asl_object_private_t
*obj
, asl_object_private_t
*querylist
, size_t *last
, size_t start
, size_t count
, uint32_t duration
, int32_t dir
);
78 #endif /* __ASL_OBJECT_H__ */