+ virtual void port_option(Application& app, in_port_t arg)
+ {
+ char buffer[1024];
+ snprintf(buffer, sizeof(buffer), "--port=%d", int(arg));
+ app.add_option(buffer);
+ }
+
+ bool has_port_option() const
+ {
+ return true;
+ }
+
+ bool is_libtool()
+ {
+ return true;
+ }
+
+ void log_file_option(Application& app, const std::string& arg)
+ {
+ if (arg.empty() == false)
+ {
+ std::string buffer("--log-file=");
+ buffer+= arg;
+ app.add_option("--verbose");
+ app.add_option(buffer);
+ }
+ }
+
+ bool has_log_file_option() const
+ {
+ return true;
+ }
+
+ bool build(size_t argc, const char *argv[]);
+};
+
+class MemcachedSaSL : public Memcached
+{
+public:
+ MemcachedSaSL(const std::string& host_arg,
+ const in_port_t port_arg,
+ const bool is_socket_arg,
+ const std::string& username_arg,
+ const std::string &password_arg) :
+ Memcached(host_arg, port_arg, is_socket_arg, username_arg, password_arg)
+ { }
+
+ const char *name()
+ {
+ return "memcached-sasl";
+ };
+
+ const char *sasl() const
+ {
+ return " -S -B binary ";
+ }
+
+ const char *executable()
+ {
+ return MEMCACHED_SASL_BINARY;
+ }
+
+ bool ping()
+ {
+ // Memcached is slow to start, so we need to do this
+ if (pid_file().empty() == false)
+ {
+ if (wait_for_pidfile() == false)