Annotation of embedaddon/dhcp/dhcpctl/dhcpctl.h, revision 1.1.1.1

1.1.1.1 ! misho       1: /* $Id: dhcpctl.h,v 1.16.786.2 2009/07/24 22:04:52 sar Exp $
1.1       misho       2: 
                      3:    Subroutines providing general support for objects. */
                      4: 
                      5: /*
                      6:  * Copyright (c) 2004,2009 by Internet Systems Consortium, Inc. ("ISC")
                      7:  * Copyright (c) 1999-2003 by Internet Software Consortium
                      8:  *
                      9:  * Permission to use, copy, modify, and distribute this software for any
                     10:  * purpose with or without fee is hereby granted, provided that the above
                     11:  * copyright notice and this permission notice appear in all copies.
                     12:  *
                     13:  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
                     14:  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                     15:  * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
                     16:  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                     17:  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                     18:  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
                     19:  * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                     20:  *
                     21:  *   Internet Systems Consortium, Inc.
                     22:  *   950 Charter Street
                     23:  *   Redwood City, CA 94063
                     24:  *   <info@isc.org>
                     25:  *   https://www.isc.org/
                     26:  *
                     27:  * This software has been written for Internet Systems Consortium
                     28:  * by Ted Lemon in cooperation with Vixie Enterprises and Nominum, Inc.
                     29:  * To learn more about Internet Systems Consortium, see
                     30:  * ``https://www.isc.org/''.  To learn more about Vixie Enterprises,
                     31:  * see ``http://www.vix.com''.   To learn more about Nominum, Inc., see
                     32:  * ``http://www.nominum.com''.
                     33:  */
                     34: 
                     35: #ifndef _DHCPCTL_H_
                     36: #define _DHCPCTL_H_
                     37: 
                     38: #include <omapip/omapip.h>
                     39: 
                     40: typedef isc_result_t dhcpctl_status;
                     41: typedef omapi_object_t *dhcpctl_handle;
                     42: typedef omapi_data_string_t *dhcpctl_data_string;
                     43: 
                     44: #define dhcpctl_null_handle ((dhcpctl_handle) 0)
                     45: 
                     46: #define DHCPCTL_CREATE         OMAPI_CREATE
                     47: #define DHCPCTL_UPDATE         OMAPI_UPDATE
                     48: #define DHCPCTL_EXCL           OMAPI_EXCL
                     49: 
                     50: typedef struct {
                     51:        OMAPI_OBJECT_PREAMBLE;
                     52:        omapi_object_t *object;
                     53:        void *data;
                     54:        void (*callback) (dhcpctl_handle, dhcpctl_status, void *);
                     55: } dhcpctl_callback_object_t;
                     56: 
                     57: typedef struct {
                     58:        OMAPI_OBJECT_PREAMBLE;
                     59:        omapi_typed_data_t *rtype;
                     60:        isc_result_t waitstatus;
                     61:        omapi_typed_data_t *message;
                     62:        omapi_handle_t remote_handle;
                     63: } dhcpctl_remote_object_t;
                     64: 
                     65: extern omapi_object_type_t *dhcpctl_callback_type;
                     66: extern omapi_object_type_t *dhcpctl_remote_type;
                     67: 
                     68: dhcpctl_status dhcpctl_initialize (void);
                     69: dhcpctl_status dhcpctl_connect (dhcpctl_handle *,
                     70:                                const char *, int, dhcpctl_handle);
                     71: dhcpctl_status dhcpctl_wait_for_completion (dhcpctl_handle, dhcpctl_status *);
                     72: dhcpctl_status dhcpctl_get_value (dhcpctl_data_string *,
                     73:                                  dhcpctl_handle, const char *);
                     74: dhcpctl_status dhcpctl_get_boolean (int *, dhcpctl_handle, const char *);
                     75: dhcpctl_status dhcpctl_set_value (dhcpctl_handle,
                     76:                                  dhcpctl_data_string, const char *);
                     77: dhcpctl_status dhcpctl_set_string_value (dhcpctl_handle, const char *,
                     78:                                         const char *);
                     79: dhcpctl_status dhcpctl_set_data_value (dhcpctl_handle,
                     80:                                       const char *, unsigned, const char *);
                     81: dhcpctl_status dhcpctl_set_null_value (dhcpctl_handle, const char *);
                     82: dhcpctl_status dhcpctl_set_boolean_value (dhcpctl_handle, int, const char *);
                     83: dhcpctl_status dhcpctl_set_int_value (dhcpctl_handle, int, const char *);
                     84: dhcpctl_status dhcpctl_object_update (dhcpctl_handle, dhcpctl_handle);
                     85: dhcpctl_status dhcpctl_object_refresh (dhcpctl_handle, dhcpctl_handle);
                     86: dhcpctl_status dhcpctl_object_remove (dhcpctl_handle, dhcpctl_handle);
                     87: 
                     88: dhcpctl_status dhcpctl_set_callback (dhcpctl_handle, void *,
                     89:                                     void (*) (dhcpctl_handle,
                     90:                                               dhcpctl_status, void *));
                     91: isc_result_t dhcpctl_callback_set_value  (omapi_object_t *, omapi_object_t *,
                     92:                                          omapi_data_string_t *,
                     93:                                          omapi_typed_data_t *);
                     94: isc_result_t dhcpctl_callback_get_value (omapi_object_t *, omapi_object_t *,
                     95:                                         omapi_data_string_t *,
                     96:                                         omapi_value_t **); 
                     97: isc_result_t dhcpctl_callback_destroy (omapi_object_t *, const char *, int);
                     98: isc_result_t dhcpctl_callback_signal_handler (omapi_object_t *,
                     99:                                              const char *, va_list);
                    100: isc_result_t dhcpctl_callback_stuff_values (omapi_object_t *,
                    101:                                            omapi_object_t *,
                    102:                                            omapi_object_t *);
                    103: 
                    104: dhcpctl_status dhcpctl_new_authenticator (dhcpctl_handle *,
                    105:                                          const char *, const char *,
                    106:                                          const unsigned char *, unsigned);
                    107: 
                    108: dhcpctl_status dhcpctl_open_object (dhcpctl_handle, dhcpctl_handle, int);
                    109: dhcpctl_status dhcpctl_new_object (dhcpctl_handle *,
                    110:                                   dhcpctl_handle, const char *);
                    111: isc_result_t dhcpctl_remote_set_value  (omapi_object_t *, omapi_object_t *,
                    112:                                        omapi_data_string_t *,
                    113:                                        omapi_typed_data_t *);
                    114: isc_result_t dhcpctl_remote_get_value (omapi_object_t *, omapi_object_t *,
                    115:                                       omapi_data_string_t *,
                    116:                                       omapi_value_t **); 
                    117: isc_result_t dhcpctl_remote_destroy (omapi_object_t *, const char *, int);
                    118: isc_result_t dhcpctl_remote_signal_handler (omapi_object_t *,
                    119:                                            const char *, va_list);
                    120: isc_result_t dhcpctl_remote_stuff_values (omapi_object_t *,
                    121:                                          omapi_object_t *,
                    122:                                          omapi_object_t *);
                    123: isc_result_t dhcpctl_data_string_dereference (dhcpctl_data_string *,
                    124:                                              const char *, int);
                    125: #endif /* _DHCPCTL_H_ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>