dhcpctl/dhcpctl.h

Go to the documentation of this file.
00001 /* $Id: dhcpctl.h,v 1.18 2009/11/24 02:06:56 sar Exp $
00002 
00003    Subroutines providing general support for objects. */
00004 
00005 /*
00006  * Copyright (c) 2004,2009,2014 by Internet Systems Consortium, Inc. ("ISC")
00007  * Copyright (c) 1999-2003 by Internet Software Consortium
00008  *
00009  * Permission to use, copy, modify, and distribute this software for any
00010  * purpose with or without fee is hereby granted, provided that the above
00011  * copyright notice and this permission notice appear in all copies.
00012  *
00013  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
00014  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
00015  * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
00016  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
00017  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
00018  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
00019  * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
00020  *
00021  *   Internet Systems Consortium, Inc.
00022  *   950 Charter Street
00023  *   Redwood City, CA 94063
00024  *   <info@isc.org>
00025  *   https://www.isc.org/
00026  *
00027  */
00028 
00029 #ifndef _DHCPCTL_H_
00030 #define _DHCPCTL_H_
00031 
00032 #include <omapip/omapip.h>
00033 
00034 typedef isc_result_t dhcpctl_status;
00035 typedef omapi_object_t *dhcpctl_handle;
00036 typedef omapi_data_string_t *dhcpctl_data_string;
00037 
00038 #define dhcpctl_null_handle ((dhcpctl_handle) 0)
00039 
00040 #define DHCPCTL_CREATE          OMAPI_CREATE
00041 #define DHCPCTL_UPDATE          OMAPI_UPDATE
00042 #define DHCPCTL_EXCL            OMAPI_EXCL
00043 
00044 typedef struct {
00045         OMAPI_OBJECT_PREAMBLE;
00046         omapi_object_t *object;
00047         void *data;
00048         void (*callback) (dhcpctl_handle, dhcpctl_status, void *);
00049 } dhcpctl_callback_object_t;
00050 
00051 typedef struct {
00052         OMAPI_OBJECT_PREAMBLE;
00053         omapi_typed_data_t *rtype;
00054         isc_result_t waitstatus;
00055         omapi_typed_data_t *message;
00056         omapi_handle_t remote_handle;
00057 } dhcpctl_remote_object_t;
00058 
00059 extern omapi_object_type_t *dhcpctl_callback_type;
00060 extern omapi_object_type_t *dhcpctl_remote_type;
00061 
00062 dhcpctl_status dhcpctl_initialize (void);
00063 dhcpctl_status dhcpctl_connect (dhcpctl_handle *,
00064                                 const char *, int, dhcpctl_handle);
00065 dhcpctl_status dhcpctl_wait_for_completion (dhcpctl_handle, dhcpctl_status *);
00066 dhcpctl_status dhcpctl_get_value (dhcpctl_data_string *,
00067                                   dhcpctl_handle, const char *);
00068 dhcpctl_status dhcpctl_get_boolean (int *, dhcpctl_handle, const char *);
00069 dhcpctl_status dhcpctl_set_value (dhcpctl_handle,
00070                                   dhcpctl_data_string, const char *);
00071 dhcpctl_status dhcpctl_set_string_value (dhcpctl_handle, const char *,
00072                                          const char *);
00073 dhcpctl_status dhcpctl_set_data_value (dhcpctl_handle,
00074                                        const char *, unsigned, const char *);
00075 dhcpctl_status dhcpctl_set_null_value (dhcpctl_handle, const char *);
00076 dhcpctl_status dhcpctl_set_boolean_value (dhcpctl_handle, int, const char *);
00077 dhcpctl_status dhcpctl_set_int_value (dhcpctl_handle, int, const char *);
00078 dhcpctl_status dhcpctl_object_update (dhcpctl_handle, dhcpctl_handle);
00079 dhcpctl_status dhcpctl_object_refresh (dhcpctl_handle, dhcpctl_handle);
00080 dhcpctl_status dhcpctl_object_remove (dhcpctl_handle, dhcpctl_handle);
00081 
00082 dhcpctl_status dhcpctl_set_callback (dhcpctl_handle, void *,
00083                                      void (*) (dhcpctl_handle,
00084                                                dhcpctl_status, void *));
00085 isc_result_t dhcpctl_callback_set_value  (omapi_object_t *, omapi_object_t *,
00086                                           omapi_data_string_t *,
00087                                           omapi_typed_data_t *);
00088 isc_result_t dhcpctl_callback_get_value (omapi_object_t *, omapi_object_t *,
00089                                          omapi_data_string_t *,
00090                                          omapi_value_t **); 
00091 isc_result_t dhcpctl_callback_destroy (omapi_object_t *, const char *, int);
00092 isc_result_t dhcpctl_callback_signal_handler (omapi_object_t *,
00093                                               const char *, va_list);
00094 isc_result_t dhcpctl_callback_stuff_values (omapi_object_t *,
00095                                             omapi_object_t *,
00096                                             omapi_object_t *);
00097 
00098 dhcpctl_status dhcpctl_new_authenticator (dhcpctl_handle *,
00099                                           const char *, const char *,
00100                                           const unsigned char *, unsigned);
00101 
00102 dhcpctl_status dhcpctl_open_object (dhcpctl_handle, dhcpctl_handle, int);
00103 dhcpctl_status dhcpctl_new_object (dhcpctl_handle *,
00104                                    dhcpctl_handle, const char *);
00105 isc_result_t dhcpctl_remote_set_value  (omapi_object_t *, omapi_object_t *,
00106                                         omapi_data_string_t *,
00107                                         omapi_typed_data_t *);
00108 isc_result_t dhcpctl_remote_get_value (omapi_object_t *, omapi_object_t *,
00109                                        omapi_data_string_t *,
00110                                        omapi_value_t **); 
00111 isc_result_t dhcpctl_remote_destroy (omapi_object_t *, const char *, int);
00112 isc_result_t dhcpctl_remote_signal_handler (omapi_object_t *,
00113                                             const char *, va_list);
00114 isc_result_t dhcpctl_remote_stuff_values (omapi_object_t *,
00115                                           omapi_object_t *,
00116                                           omapi_object_t *);
00117 isc_result_t dhcpctl_data_string_dereference (dhcpctl_data_string *,
00118                                               const char *, int);
00119 #endif /* _DHCPCTL_H_ */

Generated on 5 Apr 2014 for ISC DHCP by  doxygen 1.6.1