Browse Source

Import from current build tree.

Brian Aker 12 years ago
parent
commit
5564c8f01f

+ 3 - 7
libgearman/connection.cc

@@ -139,10 +139,6 @@ gearman_connection_st::gearman_connection_st(gearman_universal_st &universal_arg
   send_buffer_ptr(NULL),
   _recv_packet(NULL)
 {
-  options.ready= false;
-  options.packet_in_use= false;
-  options.server_options_sent= false;
-
   if (options_args)
   {
     while (*options_args != GEARMAN_CON_MAX)
@@ -365,15 +361,15 @@ void gearman_connection_st::reset_addrinfo()
  */
 gearman_return_t gearman_connection_st::send_packet(const gearman_packet_st& packet_arg, const bool flush_buffer)
 {
-  if (!options.server_options_sent)
+  if (options.server_options_sent == false)
   {
     for (gearman_server_options_st* head= universal.server_options_list;
          head;
          head= head->next)
     {
       gearman_packet_st message;
-      const void *args[]= { head->option };
-      size_t args_size[]= { head->option_length };
+      const void *args[]= { head->_option };
+      size_t args_size[]= { head->_option_length };
       gearman_return_t ret= gearman_packet_create_args(universal, message, GEARMAN_MAGIC_REQUEST,
                                                        GEARMAN_COMMAND_OPTION_REQ, args, args_size, 1);
 

+ 7 - 1
libgearman/connection.hpp

@@ -42,10 +42,16 @@
 
 struct gearman_connection_st
 {
-  struct {
+  struct Options {
     bool server_options_sent;
     bool ready;
     bool packet_in_use;
+
+    Options() :
+      server_options_sent(false),
+      ready(false),
+      packet_in_use(false)
+    { }
   } options;
   enum gearman_con_universal_t state;
   enum gearman_con_send_t send_state;

+ 1 - 1
libgearman/include.am

@@ -1,6 +1,6 @@
 # vim:ft=automake
 # Gearman server and library 
-# Copyright (C) 2011 - 2012 Data Differential, http://datadifferential.com/
+# Copyright (C) 2011 - 2013 Data Differential, http://datadifferential.com/
 # Copyright (C) 2009-2010 Brian Aker, Eric Day, Monty Taylor All rights
 # Copyright (C) 2008 Brian Aker, Eric Day 
 #

+ 31 - 6
libgearman/server_options.cc

@@ -42,14 +42,39 @@
  */
 
 #include "gear_config.h"
-#include <libgearman/common.h>
 
-#include "libgearman/server_options.hpp"
+#include "libgearman/common.h"
+
+#include <memory>
+
+bool gearman_request_option(gearman_universal_st &universal,
+                            gearman_string_t &option)
+{
+  char* option_str_cpy = (char*) malloc(gearman_size(option));
+
+  if (option_str_cpy == NULL)
+  {
+    gearman_error(universal, GEARMAN_MEMORY_ALLOCATION_FAILURE, "malloc()");
+    return false;
+  }
+
+  strncpy(option_str_cpy, gearman_c_str(option), gearman_size(option));
+
+  gearman_server_options_st *server_options = new (std::nothrow) gearman_server_options_st(universal, option_str_cpy, gearman_size(option));
+  if (server_options == NULL)
+  {
+    free(option_str_cpy);
+    gearman_error(universal, GEARMAN_MEMORY_ALLOCATION_FAILURE, "new gearman_server_options_st()");
+    return false;
+  }
+
+  return true;
+}
 
 gearman_server_options_st::gearman_server_options_st(gearman_universal_st &universal_arg,
                                                      const char* option_arg, const size_t option_arg_size) : 
-  next(NULL), prev(NULL), option(option_arg), 
-  option_length(option_arg_size),
+  _option(option_arg), _option_length(option_arg_size),
+  next(NULL), prev(NULL),
   universal(universal_arg)
 {
   if (universal.server_options_list)
@@ -62,9 +87,9 @@ gearman_server_options_st::gearman_server_options_st(gearman_universal_st &unive
 
 gearman_server_options_st::~gearman_server_options_st()
 {
-  if (option)
+  if (_option)
   {
-    free((void*)option);
+    free((void*)_option);
   }
 
   { // Remove from universal list

+ 5 - 4
libgearman/server_options.hpp

@@ -38,16 +38,17 @@
 
 #pragma once
 
-#include <cstdlib>
-
 struct gearman_universal_st;
 
+bool gearman_request_option(gearman_universal_st &universal, gearman_string_t &option);
+
 struct gearman_server_options_st
 {
+  const char* _option;
+  const size_t _option_length;
+
   gearman_server_options_st *next;
   gearman_server_options_st *prev;
-  const char* option;
-  const size_t option_length;
   gearman_universal_st &universal;
 
 public:

+ 0 - 24
libgearman/universal.cc

@@ -599,30 +599,6 @@ gearman_return_t gearman_echo(gearman_universal_st& universal,
   return ret;
 }
 
-bool gearman_request_option(gearman_universal_st &universal,
-                            gearman_string_t &option)
-{
-  char* option_str_cpy = (char*) malloc(gearman_size(option));
-
-  if (option_str_cpy == NULL)
-  {
-    gearman_error(universal, GEARMAN_MEMORY_ALLOCATION_FAILURE, "malloc()");
-    return false;
-  }
-
-  strncpy(option_str_cpy, gearman_c_str(option), gearman_size(option));
-
-  gearman_server_options_st *server_options = new (std::nothrow) gearman_server_options_st(universal, option_str_cpy, gearman_size(option));
-  if (server_options == NULL)
-  {
-    free(option_str_cpy);
-    gearman_error(universal, GEARMAN_MEMORY_ALLOCATION_FAILURE, "new gearman_server_options_st()");
-    return false;
-  }
-
-  return true;
-}
-
 void gearman_free_all_packets(gearman_universal_st &universal)
 {
   while (universal.packet_list)

+ 0 - 2
libgearman/universal.hpp

@@ -49,8 +49,6 @@ void gearman_universal_free(gearman_universal_st &gearman);
 
 void gearman_free_all_packets(gearman_universal_st &gearman);
 
-bool gearman_request_option(gearman_universal_st &universal, gearman_string_t &option);
-
 gearman_return_t gearman_universal_set_option(gearman_universal_st &self, gearman_universal_options_t option, bool value);
 
 void gearman_set_log_fn(gearman_universal_st &self, gearman_log_fn *function, void *context, gearman_verbose_t verbose);

+ 31 - 0
libgearmancore/include.am

@@ -0,0 +1,31 @@
+# vim:ft=automake
+# Gearman server and library 
+# Copyright (C) 2013 Data Differential, http://datadifferential.com/
+#
+# Use and distribution licensed under the BSD license.  See
+# the COPYING file in the parent directory for full text.
+#
+# Included from Top Level Makefile.am
+# All paths should be given relative to the root
+
+noinst_LTLIBRARIES+= libgearman/libgearmancore.la
+
+libgearman_libgearmancore_la_SOURCES= \
+				      libgearman/allocator.cc \
+				      libgearman/backtrace.cc \
+				      libgearman/byteorder.cc \
+				      libgearman/command.cc \
+				      libgearman/connection.cc \
+				      libgearman/error.cc \
+				      libgearman/log.cc \
+				      libgearman/packet.cc \
+				      libgearman/strcommand.cc \
+				      libgearman/strerror.cc \
+				      libgearman/server_options.cc \
+				      libgearman/universal.cc \
+				      libgearman/vector.cc
+
+libgearman_libgearmancore_la_CXXFLAGS= -DBUILDING_LIBGEARMAN
+libgearman_libgearmancore_la_LIBADD= @DL_LIB@
+libgearman_libgearmancore_la_LIBADD+= libhashkit/libhashkit.la
+

+ 2 - 2
libtest/main.cc

@@ -369,9 +369,9 @@ int main(int argc, char *argv[])
     std::cerr << "std::exception:" << e.what() << std::endl;
     exit_code= EXIT_FAILURE;
   }
-  catch (char const*)
+  catch (char const* s)
   {
-    std::cerr << "Exception:" << std::endl;
+    std::cerr << "Exception:" << s << std::endl;
     exit_code= EXIT_FAILURE;
   }
   catch (...)