~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to libdrizzle/conn_local.h

  • Committer: Monty Taylor
  • Date: 2010-08-12 20:27:32 UTC
  • mto: (1720.1.5 build)
  • mto: This revision was merged to the branch mainline in revision 1722.
  • Revision ID: mordred@inaugust.com-20100812202732-9kzchbkvkyki4n3u
Merged libdrizzle directly into tree.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Drizzle Client & Protocol Library
 
3
 *
 
4
 * Copyright (C) 2008 Eric Day (eday@oddments.org)
 
5
 * All rights reserved.
 
6
 *
 
7
 * Use and distribution licensed under the BSD license.  See
 
8
 * the COPYING file in this directory for full text.
 
9
 */
 
10
 
 
11
/**
 
12
 * @file
 
13
 * @brief Local Connection Declarations
 
14
 */
 
15
 
 
16
#ifndef __DRIZZLE_CONN_LOCAL_H
 
17
#define __DRIZZLE_CONN_LOCAL_H
 
18
 
 
19
#ifdef __cplusplus
 
20
extern "C" {
 
21
#endif
 
22
 
 
23
/**
 
24
 * @addtogroup drizzle_con_local Local Connection Declarations
 
25
 * @ingroup drizzle_con
 
26
 * @{
 
27
 */
 
28
 
 
29
/**
 
30
 * Clear address info, freeing structs if needed.
 
31
 *
 
32
 * @param[in] con Connection structure previously initialized with
 
33
 *  drizzle_con_create(), drizzle_con_clone(), or related functions.
 
34
 */
 
35
DRIZZLE_LOCAL
 
36
void drizzle_con_reset_addrinfo(drizzle_con_st *con);
 
37
 
 
38
/**
 
39
 * Check if state stack is empty.
 
40
 *
 
41
 * @param[in] con Connection structure previously initialized with
 
42
 *  drizzle_con_create(), drizzle_con_clone(), or related functions.
 
43
 * @return True if empty, false if something is on the stack.
 
44
 */
 
45
static inline bool drizzle_state_none(drizzle_con_st *con)
 
46
{
 
47
  return con->state_current == 0;
 
48
}
 
49
 
 
50
/**
 
51
 * Push a function onto the stack.
 
52
 *
 
53
 * @param[in] con Connection structure previously initialized with
 
54
 *  drizzle_con_create(), drizzle_con_clone(), or related functions.
 
55
 * @param[in] function Function to push.
 
56
 */
 
57
static inline void drizzle_state_push(drizzle_con_st *con,
 
58
                                      drizzle_state_fn *function)
 
59
{
 
60
  /* The maximum stack depth can be determined at compile time, so bump this
 
61
     constant if needed to avoid the dynamic memory management. */
 
62
  assert(con->state_current < DRIZZLE_STATE_STACK_SIZE);
 
63
  con->state_stack[con->state_current]= function;
 
64
  con->state_current++;
 
65
}
 
66
 
 
67
/**
 
68
 * Pop a function off of the stack.
 
69
 *
 
70
 * @param[in] con Connection structure previously initialized with
 
71
 *  drizzle_con_create(), drizzle_con_clone(), or related functions.
 
72
 */
 
73
static inline void drizzle_state_pop(drizzle_con_st *con)
 
74
{
 
75
  con->state_current--;
 
76
}
 
77
 
 
78
/**
 
79
 * Reset the stack so it is empty.
 
80
 *
 
81
 * @param[in] con Connection structure previously initialized with
 
82
 *  drizzle_con_create(), drizzle_con_clone(), or related functions.
 
83
 */
 
84
static inline void drizzle_state_reset(drizzle_con_st *con)
 
85
{
 
86
  con->state_current= 0;
 
87
}
 
88
 
 
89
/** @} */
 
90
 
 
91
#ifdef __cplusplus
 
92
}
 
93
#endif
 
94
 
 
95
#endif /* __DRIZZLE_CONN_LOCAL_H */