~brianaker/gearmand/osx9-fixes

621.47.1 by Brian Aker
Fix for lp:1098413
1
/*  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
2
 * 
3
 *  Gearmand client and server library.
4
 *
5
 *  Copyright (C) 2013 Data Differential, http://datadifferential.com/
6
 *  Copyright (C) 2013 Keyur Govande
7
 *  All rights reserved.
8
 *
9
 *  Redistribution and use in source and binary forms, with or without
10
 *  modification, are permitted provided that the following conditions are
11
 *  met:
12
 *
13
 *      * Redistributions of source code must retain the above copyright
14
 *  notice, this list of conditions and the following disclaimer.
15
 *
16
 *      * Redistributions in binary form must reproduce the above
17
 *  copyright notice, this list of conditions and the following disclaimer
18
 *  in the documentation and/or other materials provided with the
19
 *  distribution.
20
 *
21
 *      * The names of its contributors may not be used to endorse or
22
 *  promote products derived from this software without specific prior
23
 *  written permission.
24
 *
25
 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26
 *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27
 *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28
 *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
29
 *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30
 *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
31
 *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32
 *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33
 *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34
 *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35
 *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
 *
37
 */
38
39
#pragma once
40
725.1.10 by Brian Aker
Fix build related issues.
41
#include "libgearman/vector.hpp"
42
621.47.1 by Brian Aker
Fix for lp:1098413
43
struct gearman_universal_st;
44
621.50.2 by Brian Aker
Update for cleaning up server_options, and pushing core over to build elsewhere.
45
bool gearman_request_option(gearman_universal_st &universal, gearman_string_t &option);
46
621.47.1 by Brian Aker
Fix for lp:1098413
47
struct gearman_server_options_st
48
{
621.80.12 by Brian Aker
Update for harden finds.
49
  gearman_vector_st _option;
621.50.2 by Brian Aker
Update for cleaning up server_options, and pushing core over to build elsewhere.
50
621.47.1 by Brian Aker
Fix for lp:1098413
51
  gearman_server_options_st *next;
52
  gearman_server_options_st *prev;
53
  gearman_universal_st &universal;
54
55
public:
56
  gearman_server_options_st(gearman_universal_st &universal_arg,
57
                            const char* option_arg, const size_t option_arg_size);
58
  ~gearman_server_options_st();
621.80.12 by Brian Aker
Update for harden finds.
59
60
  gearman_server_options_st(const gearman_server_options_st&);
61
62
  const gearman_vector_st& option() const
63
  {
64
    return _option;
65
  }
66
67
  const char* value() const
68
  {
69
    return _option.value();
70
  }
71
72
  size_t size() const
73
  {
74
    return _option.size();
75
  }
621.47.1 by Brian Aker
Fix for lp:1098413
76
};