summaryrefslogtreecommitdiffstats
path: root/doc/forwardable.rd
blob: 7272c374b685a993dfa559872e451c81101b3d9e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
 -- forwardable.rb
						
                                                $Release Version: 1.1 $
                                                $Revision$
                                                $Date$
						Original version by Tosh

=begin

= Forwardable

A Module to define delegations for selected methods to a class.

== Usage

Using through extending the class.
  
  class Foo
    extend Forwardable

    def_delegators("@out", "printf", "print")
    def_delegators(:@in, :gets)
    def_delegator(:@contents, :[], "content_at")
  end
  f = Foo.new
  f.printf ...
  f.gets
  f.content_at(1)

== Methods

--- Forwardable#def_instance_delegators(accessor, *methods)

      adding the delegations for each method of ((|methods|)) to
      ((|accessor|)).

--- Forwardable#def_instance_delegator(accessor, method, ali = method)
      
      adding the delegation for ((|method|)) to ((|accessor|)). When
      you give optional argument ((|ali|)), ((|ali|)) is used as the
      name of the delegation method, instead of ((|method|)).

--- Forwardable#def_delegators(accessor, *methods)

      the alias of ((|Forwardable#def_instance_delegators|)).

--- Forwardable#def_delegator(accessor, method, ali = method)
      
      the alias of ((|Forwardable#def_instance_delegator|)).

= SingleForwardable

a Module to define delegations for selected methods to an object.

== Usage

Using through extending the object.

  g = Goo.new
  g.extend SingleForwardable
  g.def_delegator("@out", :puts)
  g.puts ...

== Methods

--- SingleForwardable#def_singleton_delegators(accessor, *methods)

      adding the delegations for each method of ((|methods|)) to
      ((|accessor|)).

--- SingleForwardable#def_singleton_delegator(accessor, method, ali = method)

      adding the delegation for ((|method|)) to ((|accessor|)). When
      you give optional argument ((|ali|)), ((|ali|)) is used as the
      name of the delegation method, instead of ((|method|)).

--- SingleForwardable#def_delegators(accessor, *methods)

      the alias of ((|SingleForwardable#def_instance_delegators|)).

--- SingleForwardable#def_delegator(accessor, method, ali = method)

      the alias of ((|SingleForwardable#def_instance_delegator|)).
=end
167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269
/*
 * Please do not edit this file.
 * It was generated using rpcgen.
 */

#ifndef _IPROP_H_RPCGEN
#define _IPROP_H_RPCGEN

#include <gssrpc/rpc.h>


#ifdef __cplusplus
extern "C" {
#endif


typedef struct {
	u_int utf8str_t_len;
	char *utf8str_t_val;
} utf8str_t;

typedef uint32_t kdb_sno_t;

struct kdbe_time_t {
	uint32_t seconds;
	uint32_t useconds;
};
typedef struct kdbe_time_t kdbe_time_t;

struct kdbe_key_t {
	int32_t k_ver;
	int32_t k_kvno;
	struct {
		u_int k_enctype_len;
		int32_t *k_enctype_val;
	} k_enctype;
	struct {
		u_int k_contents_len;
		utf8str_t *k_contents_val;
	} k_contents;
};
typedef struct kdbe_key_t kdbe_key_t;

struct kdbe_data_t {
	int32_t k_magic;
	utf8str_t k_data;
};
typedef struct kdbe_data_t kdbe_data_t;

struct kdbe_princ_t {
	utf8str_t k_realm;
	struct {
		u_int k_components_len;
		kdbe_data_t *k_components_val;
	} k_components;
	int32_t k_nametype;
};
typedef struct kdbe_princ_t kdbe_princ_t;

struct kdbe_tl_t {
	int16_t tl_type;
	struct {
		u_int tl_data_len;
		char *tl_data_val;
	} tl_data;
};
typedef struct kdbe_tl_t kdbe_tl_t;

typedef struct {
	u_int kdbe_pw_hist_t_len;
	kdbe_key_t *kdbe_pw_hist_t_val;
} kdbe_pw_hist_t;

enum kdbe_attr_type_t {
	AT_ATTRFLAGS = 0,
	AT_MAX_LIFE = 1,
	AT_MAX_RENEW_LIFE = 2,
	AT_EXP = 3,
	AT_PW_EXP = 4,
	AT_LAST_SUCCESS = 5,
	AT_LAST_FAILED = 6,
	AT_FAIL_AUTH_COUNT = 7,
	AT_PRINC = 8,
	AT_KEYDATA = 9,
	AT_TL_DATA = 10,
	AT_LEN = 11,
	AT_MOD_PRINC = 12,
	AT_MOD_TIME = 13,
	AT_MOD_WHERE = 14,
	AT_PW_LAST_CHANGE = 15,
	AT_PW_POLICY = 16,
	AT_PW_POLICY_SWITCH = 17,
	AT_PW_HIST_KVNO = 18,
	AT_PW_HIST = 19,
};
typedef enum kdbe_attr_type_t kdbe_attr_type_t;

struct kdbe_val_t {
	kdbe_attr_type_t av_type;
	union {
		uint32_t av_attrflags;
		uint32_t av_max_life;
		uint32_t av_max_renew_life;
		uint32_t av_exp;
		uint32_t av_pw_exp;
		uint32_t av_last_success;
		uint32_t av_last_failed;
		uint32_t av_fail_auth_count;
		kdbe_princ_t av_princ;
		struct {
			u_int av_keydata_len;
			kdbe_key_t *av_keydata_val;
		} av_keydata;
		struct {
			u_int av_tldata_len;
			kdbe_tl_t *av_tldata_val;
		} av_tldata;
		int16_t av_len;
		uint32_t av_pw_last_change;
		kdbe_princ_t av_mod_princ;
		uint32_t av_mod_time;
		utf8str_t av_mod_where;
		utf8str_t av_pw_policy;
		bool_t av_pw_policy_switch;
		uint32_t av_pw_hist_kvno;
		struct {
			u_int av_pw_hist_len;
			kdbe_pw_hist_t *av_pw_hist_val;
		} av_pw_hist;
		struct {
			u_int av_extension_len;
			char *av_extension_val;
		} av_extension;
	} kdbe_val_t_u;
};
typedef struct kdbe_val_t kdbe_val_t;

typedef struct {
	u_int kdbe_t_len;
	kdbe_val_t *kdbe_t_val;
} kdbe_t;

struct kdb_incr_update_t {
	utf8str_t kdb_princ_name;
	kdb_sno_t kdb_entry_sno;
	kdbe_time_t kdb_time;
	kdbe_t kdb_update;
	bool_t kdb_deleted;
	bool_t kdb_commit;
	struct {
		u_int kdb_kdcs_seen_by_len;
		utf8str_t *kdb_kdcs_seen_by_val;
	} kdb_kdcs_seen_by;
	struct {
		u_int kdb_futures_len;
		char *kdb_futures_val;
	} kdb_futures;
};
typedef struct kdb_incr_update_t kdb_incr_update_t;

typedef struct {
	u_int kdb_ulog_t_len;
	kdb_incr_update_t *kdb_ulog_t_val;
} kdb_ulog_t;

enum update_status_t {
	UPDATE_OK = 0,
	UPDATE_ERROR = 1,
	UPDATE_FULL_RESYNC_NEEDED = 2,
	UPDATE_BUSY = 3,
	UPDATE_NIL = 4,
	UPDATE_PERM_DENIED = 5,
};
typedef enum update_status_t update_status_t;

struct kdb_last_t {
	kdb_sno_t last_sno;
	kdbe_time_t last_time;
};
typedef struct kdb_last_t kdb_last_t;

struct kdb_incr_result_t {
	kdb_last_t lastentry;
	kdb_ulog_t updates;
	update_status_t ret;
};
typedef struct kdb_incr_result_t kdb_incr_result_t;

struct kdb_fullresync_result_t {
	kdb_last_t lastentry;
	update_status_t ret;
};
typedef struct kdb_fullresync_result_t kdb_fullresync_result_t;

#define KRB5_IPROP_PROG 100423
#define KRB5_IPROP_VERS 1

#if defined(__STDC__) || defined(__cplusplus)
#define IPROP_NULL 0
extern  void * iprop_null_1(void *, CLIENT *);
extern  void * iprop_null_1_svc(void *, struct svc_req *);
#define IPROP_GET_UPDATES 1
extern  kdb_incr_result_t * iprop_get_updates_1(kdb_last_t *, CLIENT *);
extern  kdb_incr_result_t * iprop_get_updates_1_svc(kdb_last_t *, struct svc_req *);
#define IPROP_FULL_RESYNC 2
extern  kdb_fullresync_result_t * iprop_full_resync_1(void *, CLIENT *);
extern  kdb_fullresync_result_t * iprop_full_resync_1_svc(void *, struct svc_req *);
extern int krb5_iprop_prog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t);

#else /* K&R C */
#define IPROP_NULL 0
extern  void * iprop_null_1();
extern  void * iprop_null_1_svc();
#define IPROP_GET_UPDATES 1
extern  kdb_incr_result_t * iprop_get_updates_1();
extern  kdb_incr_result_t * iprop_get_updates_1_svc();
#define IPROP_FULL_RESYNC 2
extern  kdb_fullresync_result_t * iprop_full_resync_1();
extern  kdb_fullresync_result_t * iprop_full_resync_1_svc();
extern int krb5_iprop_prog_1_freeresult ();
#endif /* K&R C */

/* the xdr functions */

#if defined(__STDC__) || defined(__cplusplus)
extern  bool_t xdr_utf8str_t (XDR *, utf8str_t*);
extern  bool_t xdr_kdb_sno_t (XDR *, kdb_sno_t*);
extern  bool_t xdr_kdbe_time_t (XDR *, kdbe_time_t*);
extern  bool_t xdr_kdbe_key_t (XDR *, kdbe_key_t*);
extern  bool_t xdr_kdbe_data_t (XDR *, kdbe_data_t*);
extern  bool_t xdr_kdbe_princ_t (XDR *, kdbe_princ_t*);
extern  bool_t xdr_kdbe_tl_t (XDR *, kdbe_tl_t*);
extern  bool_t xdr_kdbe_pw_hist_t (XDR *, kdbe_pw_hist_t*);
extern  bool_t xdr_kdbe_attr_type_t (XDR *, kdbe_attr_type_t*);
extern  bool_t xdr_kdbe_val_t (XDR *, kdbe_val_t*);
extern  bool_t xdr_kdbe_t (XDR *, kdbe_t*);
extern  bool_t xdr_kdb_incr_update_t (XDR *, kdb_incr_update_t*);
extern  bool_t xdr_kdb_ulog_t (XDR *, kdb_ulog_t*);
extern  bool_t xdr_update_status_t (XDR *, update_status_t*);
extern  bool_t xdr_kdb_last_t (XDR *, kdb_last_t*);
extern  bool_t xdr_kdb_incr_result_t (XDR *, kdb_incr_result_t*);
extern  bool_t xdr_kdb_fullresync_result_t (XDR *, kdb_fullresync_result_t*);

#else /* K&R C */
extern bool_t xdr_utf8str_t ();
extern bool_t xdr_kdb_sno_t ();
extern bool_t xdr_kdbe_time_t ();
extern bool_t xdr_kdbe_key_t ();
extern bool_t xdr_kdbe_data_t ();
extern bool_t xdr_kdbe_princ_t ();
extern bool_t xdr_kdbe_tl_t ();
extern bool_t xdr_kdbe_pw_hist_t ();
extern bool_t xdr_kdbe_attr_type_t ();
extern bool_t xdr_kdbe_val_t ();
extern bool_t xdr_kdbe_t ();
extern bool_t xdr_kdb_incr_update_t ();
extern bool_t xdr_kdb_ulog_t ();
extern bool_t xdr_update_status_t ();
extern bool_t xdr_kdb_last_t ();
extern bool_t xdr_kdb_incr_result_t ();
extern bool_t xdr_kdb_fullresync_result_t ();

#endif /* K&R C */

#ifdef __cplusplus
}
#endif

#endif /* !_IPROP_H_RPCGEN */