mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Added HandlerSocket plugin
- Fixed compiler errors - Modified Makefiles to be part of plugin directory - Some minor changes in database.cpp to use the new MariaDB handler interface
This commit is contained in:
67
plugin/handler_socket/libhsclient/auto_ptrcontainer.hpp
Normal file
67
plugin/handler_socket/libhsclient/auto_ptrcontainer.hpp
Normal file
@ -0,0 +1,67 @@
|
||||
|
||||
// vim:sw=2:ai
|
||||
|
||||
/*
|
||||
* Copyright (C) 2010 DeNA Co.,Ltd.. All rights reserved.
|
||||
* See COPYRIGHT.txt for details.
|
||||
*/
|
||||
|
||||
#ifndef DENA_AUTO_PTRCONTAINER_HPP
|
||||
#define DENA_AUTO_PTRCONTAINER_HPP
|
||||
|
||||
namespace dena {
|
||||
|
||||
template <typename Tcnt>
|
||||
struct auto_ptrcontainer {
|
||||
typedef Tcnt container_type;
|
||||
typedef typename container_type::value_type value_type;
|
||||
typedef typename container_type::pointer pointer;
|
||||
typedef typename container_type::reference reference;
|
||||
typedef typename container_type::const_reference const_reference;
|
||||
typedef typename container_type::size_type size_type;
|
||||
typedef typename container_type::difference_type difference_type;
|
||||
typedef typename container_type::iterator iterator;
|
||||
typedef typename container_type::const_iterator const_iterator;
|
||||
typedef typename container_type::reverse_iterator reverse_iterator;
|
||||
typedef typename container_type::const_reverse_iterator
|
||||
const_reverse_iterator;
|
||||
iterator begin() { return cnt.begin(); }
|
||||
const_iterator begin() const { return cnt.begin(); }
|
||||
iterator end() { return cnt.end(); }
|
||||
const_iterator end() const { return cnt.end(); }
|
||||
reverse_iterator rbegin() { return cnt.rbegin(); }
|
||||
reverse_iterator rend() { return cnt.rend(); }
|
||||
const_reverse_iterator rbegin() const { return cnt.rbegin(); }
|
||||
const_reverse_iterator rend() const { return cnt.rend(); }
|
||||
size_type size() const { return cnt.size(); }
|
||||
size_type max_size() const { return cnt.max_size(); }
|
||||
bool empty() const { return cnt.empty(); }
|
||||
reference front() { return cnt.front(); }
|
||||
const_reference front() const { cnt.front(); }
|
||||
reference back() { return cnt.back(); }
|
||||
const_reference back() const { cnt.back(); }
|
||||
void swap(auto_ptrcontainer& x) { cnt.swap(x.cnt); }
|
||||
~auto_ptrcontainer() {
|
||||
for (iterator i = begin(); i != end(); ++i) {
|
||||
delete *i;
|
||||
}
|
||||
}
|
||||
template <typename Tap> void push_back_ptr(Tap& ap) {
|
||||
cnt.push_back(ap.get());
|
||||
ap.release();
|
||||
}
|
||||
void erase_ptr(iterator i) {
|
||||
delete *i;
|
||||
cnt.erase(i);
|
||||
}
|
||||
reference operator [](size_type n) { return cnt[n]; }
|
||||
const_reference operator [](size_type n) const { return cnt[n]; }
|
||||
void clear() { cnt.clear(); }
|
||||
private:
|
||||
Tcnt cnt;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user