aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/grpc++/support/string_ref.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/grpc++/support/string_ref.h')
-rw-r--r--include/grpc++/support/string_ref.h88
1 files changed, 2 insertions, 86 deletions
diff --git a/include/grpc++/support/string_ref.h b/include/grpc++/support/string_ref.h
index 9d965260ca..195e5c80c5 100644
--- a/include/grpc++/support/string_ref.h
+++ b/include/grpc++/support/string_ref.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -34,90 +34,6 @@
#ifndef GRPCXX_SUPPORT_STRING_REF_H
#define GRPCXX_SUPPORT_STRING_REF_H
-#include <iterator>
-#include <iosfwd>
-
-#include <grpc++/support/config.h>
-
-namespace grpc {
-
-/// This class is a non owning reference to a string.
-///
-/// It should be a strict subset of the upcoming std::string_ref.
-///
-/// \see http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3442.html
-///
-/// The constexpr is dropped or replaced with const for legacy compiler
-/// compatibility.
-class string_ref {
- public:
- // types
- typedef const char* const_iterator;
- typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
-
- // constants
- const static size_t npos;
-
- // construct/copy.
- string_ref() : data_(nullptr), length_(0) {}
- string_ref(const string_ref& other)
- : data_(other.data_), length_(other.length_) {}
- string_ref& operator=(const string_ref& rhs);
- string_ref(const char* s);
- string_ref(const char* s, size_t l) : data_(s), length_(l) {}
- string_ref(const grpc::string& s) : data_(s.data()), length_(s.length()) {}
-
- // iterators
- const_iterator begin() const { return data_; }
- const_iterator end() const { return data_ + length_; }
- const_iterator cbegin() const { return data_; }
- const_iterator cend() const { return data_ + length_; }
- const_reverse_iterator rbegin() const {
- return const_reverse_iterator(end());
- }
- const_reverse_iterator rend() const {
- return const_reverse_iterator(begin());
- }
- const_reverse_iterator crbegin() const {
- return const_reverse_iterator(end());
- }
- const_reverse_iterator crend() const {
- return const_reverse_iterator(begin());
- }
-
- // capacity
- size_t size() const { return length_; }
- size_t length() const { return length_; }
- size_t max_size() const { return length_; }
- bool empty() const { return length_ == 0; }
-
- // element access
- const char* data() const { return data_; }
-
- // string operations
- int compare(string_ref x) const;
- bool starts_with(string_ref x) const;
- bool ends_with(string_ref x) const;
- size_t find(string_ref s) const;
- size_t find(char c) const;
-
- string_ref substr(size_t pos, size_t n = npos) const;
-
- private:
- const char* data_;
- size_t length_;
-};
-
-// Comparison operators
-bool operator==(string_ref x, string_ref y);
-bool operator!=(string_ref x, string_ref y);
-bool operator<(string_ref x, string_ref y);
-bool operator>(string_ref x, string_ref y);
-bool operator<=(string_ref x, string_ref y);
-bool operator>=(string_ref x, string_ref y);
-
-std::ostream& operator<<(std::ostream& stream, const string_ref& string);
-
-} // namespace grpc
+#include <grpc++/impl/codegen/string_ref.h>
#endif // GRPCXX_SUPPORT_STRING_REF_H