mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 18:20:07 +01:00
2c7d6f12ee
- Fixed compiler errors - Modified Makefiles to be part of plugin directory - Some minor changes in database.cpp to use the new MariaDB handler interface
63 lines
1.5 KiB
C++
63 lines
1.5 KiB
C++
|
|
// vim:sw=2:ai
|
|
|
|
/*
|
|
* Copyright (C) 2010 DeNA Co.,Ltd.. All rights reserved.
|
|
* See COPYRIGHT.txt for details.
|
|
*/
|
|
|
|
#ifndef DENA_STRING_REF_HPP
|
|
#define DENA_STRING_REF_HPP
|
|
|
|
#include <vector>
|
|
#include <string.h>
|
|
|
|
namespace dena {
|
|
|
|
struct string_wref {
|
|
typedef char value_type;
|
|
char *begin() const { return start; }
|
|
char *end() const { return start + length; }
|
|
size_t size() const { return length; }
|
|
private:
|
|
char *start;
|
|
size_t length;
|
|
public:
|
|
string_wref(char *s = 0, size_t len = 0) : start(s), length(len) { }
|
|
};
|
|
|
|
struct string_ref {
|
|
typedef const char value_type;
|
|
const char *begin() const { return start; }
|
|
const char *end() const { return start + length; }
|
|
size_t size() const { return length; }
|
|
private:
|
|
const char *start;
|
|
size_t length;
|
|
public:
|
|
string_ref(const char *s = 0, size_t len = 0) : start(s), length(len) { }
|
|
string_ref(const char *s, const char *f) : start(s), length(f - s) { }
|
|
string_ref(const string_wref& w) : start(w.begin()), length(w.size()) { }
|
|
};
|
|
|
|
template <size_t N> inline bool
|
|
operator ==(const string_ref& x, const char (& y)[N]) {
|
|
return (x.size() == N - 1) && (::memcmp(x.begin(), y, N - 1) == 0);
|
|
}
|
|
|
|
inline bool
|
|
operator ==(const string_ref& x, const string_ref& y) {
|
|
return (x.size() == y.size()) &&
|
|
(::memcmp(x.begin(), y.begin(), x.size()) == 0);
|
|
}
|
|
|
|
inline bool
|
|
operator !=(const string_ref& x, const string_ref& y) {
|
|
return (x.size() != y.size()) ||
|
|
(::memcmp(x.begin(), y.begin(), x.size()) != 0);
|
|
}
|
|
|
|
};
|
|
|
|
#endif
|
|
|