4ac6e513d5d7099749448351370fd76527953533
[m6w6/libmemcached] / src / bin / common / utilities.h
1 /*
2 +--------------------------------------------------------------------+
3 | libmemcached - C/C++ Client Library for memcached |
4 +--------------------------------------------------------------------+
5 | Redistribution and use in source and binary forms, with or without |
6 | modification, are permitted under the terms of the BSD license. |
7 | You should have received a copy of the license in a bundled file |
8 | named LICENSE; in case you did not receive a copy you can review |
9 | the terms online at: https://opensource.org/licenses/BSD-3-Clause |
10 +--------------------------------------------------------------------+
11 | Copyright (c) 2006-2014 Brian Aker https://datadifferential.com/ |
12 | Copyright (c) 2020 Michael Wallner <mike@php.net> |
13 +--------------------------------------------------------------------+
14 */
15
16 #pragma once
17
18 #include <getopt.h>
19 #include "libmemcached-1.0/memcached.h"
20 #include "client_options.h"
21
22 #if defined(HAVE_SYS_TIME_H)
23 # include <sys/time.h>
24 #endif
25
26 #if defined(HAVE_TIME_H)
27 # include <time.h>
28 #endif
29
30 #ifdef __sun
31 /* For some odd reason the option struct on solaris defines the argument
32 * as char* and not const char*
33 */
34 # define OPTIONSTRING char *
35 #else
36 # define OPTIONSTRING const char *
37 #endif
38
39 typedef struct memcached_programs_help_st memcached_programs_help_st;
40
41 struct memcached_programs_help_st {
42 char *not_used_yet;
43 };
44
45 #ifdef __cplusplus
46 extern "C" {
47 #endif
48
49 char *strdup_cleanup(const char *str);
50 void cleanup(void);
51 long int timedif(struct timeval a, struct timeval b);
52 void version_command(const char *command_name) __attribute__((noreturn));
53 void help_command(const char *command_name, const char *description,
54 const struct option *long_options, memcached_programs_help_st *options)
55 __attribute__((noreturn));
56 void process_hash_option(memcached_st *memc, char *opt_hash);
57 bool initialize_sasl(memcached_st *memc, char *user, char *password);
58 void shutdown_sasl(void);
59 void initialize_sockets(void);
60 void close_stdio(void);
61
62 #ifdef __cplusplus
63 } // extern "C"
64 #endif