]>
git.saurik.com Git - apple/syslog.git/blob - libsystem_asl.tproj/include/asl_object.h
3e78284913ea2526e49da2835dcecb9034ae6ccb
   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__ */