OpenDNSSEC-signer 1.3.0rc3
|
00001 /* 00002 * $Id: adapter.h 5227 2011-06-12 08:51:24Z jakob $ 00003 * 00004 * Copyright (c) 2009 NLNet Labs. All rights reserved. 00005 * 00006 * Redistribution and use in source and binary forms, with or without 00007 * modification, are permitted provided that the following conditions 00008 * are met: 00009 * 1. Redistributions of source code must retain the above copyright 00010 * notice, this list of conditions and the following disclaimer. 00011 * 2. Redistributions in binary form must reproduce the above copyright 00012 * notice, this list of conditions and the following disclaimer in the 00013 * documentation and/or other materials provided with the distribution. 00014 * 00015 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 00016 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 00017 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 00018 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 00019 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00020 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 00021 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 00022 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 00023 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 00024 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 00025 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00026 * 00027 */ 00028 00034 #ifndef ADAPTER_ADAPTER_H 00035 #define ADAPTER_ADAPTER_H 00036 00037 #include "config.h" 00038 #include "adapter/adfile.h" 00039 #include "shared/status.h" 00040 00041 #include <stdio.h> 00042 00043 struct zone_struct; 00044 00046 enum adapter_mode_enum 00047 { 00048 ADAPTER_FILE = 1 00049 }; 00050 typedef enum adapter_mode_enum adapter_mode; 00051 00053 union adapter_data_union 00054 { 00055 void* file; 00056 }; 00057 typedef union adapter_data_union adapter_data; 00058 00063 typedef struct adapter_struct adapter_type; 00064 struct adapter_struct { 00065 const char* configstr; 00066 adapter_mode type; 00067 int inbound; 00068 allocator_type* allocator; 00069 adapter_data* data; 00070 }; 00071 00078 ods_status adapter_init(adapter_type* adapter); 00079 00088 adapter_type* adapter_create(const char* str, adapter_mode type, int inbound); 00089 00097 int adapter_compare(adapter_type* a1, adapter_type* a2); 00098 00105 ods_status adapter_read(struct zone_struct* zone); 00106 00113 ods_status adapter_write(struct zone_struct* zone); 00114 00120 void adapter_cleanup(adapter_type* adapter); 00121 00122 #endif /* ADAPTER_ADAPTER_H */