Commit 7832e8c1 authored by neverlord's avatar neverlord

got rid of some unused features

parent 12224897
...@@ -4,7 +4,6 @@ lib_LTLIBRARIES = libcppa.la ...@@ -4,7 +4,6 @@ lib_LTLIBRARIES = libcppa.la
libcppa_la_SOURCES = \ libcppa_la_SOURCES = \
src/abstract_tuple.cpp \ src/abstract_tuple.cpp \
src/abstract_type_list.cpp \
src/actor_behavior.cpp \ src/actor_behavior.cpp \
src/actor_count.cpp \ src/actor_count.cpp \
src/actor.cpp \ src/actor.cpp \
...@@ -163,7 +162,6 @@ nobase_library_include_HEADERS = \ ...@@ -163,7 +162,6 @@ nobase_library_include_HEADERS = \
cppa/tuple.hpp \ cppa/tuple.hpp \
cppa/tuple_view.hpp \ cppa/tuple_view.hpp \
cppa/uniform_type_info.hpp \ cppa/uniform_type_info.hpp \
cppa/util/abstract_type_list.hpp \
cppa/util/abstract_uniform_type_info.hpp \ cppa/util/abstract_uniform_type_info.hpp \
cppa/util/a_matches_b.hpp \ cppa/util/a_matches_b.hpp \
cppa/util/any_tuple_iterator.hpp \ cppa/util/any_tuple_iterator.hpp \
......
...@@ -56,7 +56,6 @@ src/deserializer.cpp ...@@ -56,7 +56,6 @@ src/deserializer.cpp
cppa/util/eval_type_list.hpp cppa/util/eval_type_list.hpp
cppa/util/is_legal_tuple_type.hpp cppa/util/is_legal_tuple_type.hpp
cppa/util/replace_type.hpp cppa/util/replace_type.hpp
cppa/util/abstract_type_list.hpp
cppa/detail/serialize_tuple.hpp cppa/detail/serialize_tuple.hpp
unit_testing/test__atom.cpp unit_testing/test__atom.cpp
unit_testing/test__queue_performance.cpp unit_testing/test__queue_performance.cpp
...@@ -127,7 +126,6 @@ cppa/binary_deserializer.hpp ...@@ -127,7 +126,6 @@ cppa/binary_deserializer.hpp
src/binary_deserializer.cpp src/binary_deserializer.cpp
src/actor.cpp src/actor.cpp
cppa/announce.hpp cppa/announce.hpp
src/abstract_type_list.cpp
cppa/util/shared_spinlock.hpp cppa/util/shared_spinlock.hpp
src/shared_spinlock.cpp src/shared_spinlock.cpp
cppa/util/shared_lock_guard.hpp cppa/util/shared_lock_guard.hpp
......
...@@ -55,8 +55,6 @@ class any_tuple ...@@ -55,8 +55,6 @@ class any_tuple
const uniform_type_info& utype_info_at(size_t p) const; const uniform_type_info& utype_info_at(size_t p) const;
const util::abstract_type_list& types() const;
const cow_ptr<detail::abstract_tuple>& vals() const; const cow_ptr<detail::abstract_tuple>& vals() const;
bool equal_to(const any_tuple& other) const; bool equal_to(const any_tuple& other) const;
......
...@@ -18,7 +18,6 @@ struct abstract_tuple : ref_counted ...@@ -18,7 +18,6 @@ struct abstract_tuple : ref_counted
virtual size_t size() const = 0; virtual size_t size() const = 0;
virtual abstract_tuple* copy() const = 0; virtual abstract_tuple* copy() const = 0;
virtual const void* at(size_t pos) const = 0; virtual const void* at(size_t pos) const = 0;
virtual const util::abstract_type_list& types() const = 0;
virtual const uniform_type_info& utype_info_at(size_t pos) const = 0; virtual const uniform_type_info& utype_info_at(size_t pos) const = 0;
virtual bool equal_to(const abstract_tuple& other) const; virtual bool equal_to(const abstract_tuple& other) const;
......
...@@ -57,11 +57,6 @@ class decorated_tuple : public abstract_tuple ...@@ -57,11 +57,6 @@ class decorated_tuple : public abstract_tuple
return m_decorated->utype_info_at(m_mappings[pos]); return m_decorated->utype_info_at(m_mappings[pos]);
} }
virtual const util::abstract_type_list& types() const
{
return m_types;
}
virtual bool equal_to(const abstract_tuple&) const virtual bool equal_to(const abstract_tuple&) const
{ {
return false; return false;
...@@ -71,7 +66,6 @@ class decorated_tuple : public abstract_tuple ...@@ -71,7 +66,6 @@ class decorated_tuple : public abstract_tuple
ptr_type m_decorated; ptr_type m_decorated;
vector_type m_mappings; vector_type m_mappings;
element_types m_types;
decorated_tuple(const decorated_tuple& other) decorated_tuple(const decorated_tuple& other)
: abstract_tuple() : abstract_tuple()
......
...@@ -2,28 +2,17 @@ ...@@ -2,28 +2,17 @@
#define EMPTY_TUPLE_HPP #define EMPTY_TUPLE_HPP
#include "cppa/detail/abstract_tuple.hpp" #include "cppa/detail/abstract_tuple.hpp"
#include "cppa/util/abstract_type_list.hpp"
namespace cppa { namespace detail { namespace cppa { namespace detail {
struct empty_tuple : cppa::detail::abstract_tuple struct empty_tuple : cppa::detail::abstract_tuple
{ {
struct empty_type_list : cppa::util::abstract_type_list
{
abstract_type_list* copy() const;
const_iterator begin() const;
const cppa::uniform_type_info* at(size_t) const;
};
empty_type_list m_types;
size_t size() const; size_t size() const;
void* mutable_at(size_t); void* mutable_at(size_t);
abstract_tuple* copy() const; abstract_tuple* copy() const;
const void* at(size_t) const; const void* at(size_t) const;
bool equal_to(const abstract_tuple& other) const; bool equal_to(const abstract_tuple& other) const;
const util::abstract_type_list& types() const;
const uniform_type_info& utype_info_at(size_t) const; const uniform_type_info& utype_info_at(size_t) const;
}; };
......
...@@ -5,12 +5,10 @@ ...@@ -5,12 +5,10 @@
#include "cppa/object.hpp" #include "cppa/object.hpp"
#include "cppa/detail/abstract_tuple.hpp" #include "cppa/detail/abstract_tuple.hpp"
#include "cppa/util/abstract_type_list.hpp"
namespace cppa { namespace detail { namespace cppa { namespace detail {
class object_array : public detail::abstract_tuple class object_array : public detail::abstract_tuple
, public util::abstract_type_list
{ {
std::vector<object> m_elements; std::vector<object> m_elements;
...@@ -38,14 +36,10 @@ class object_array : public detail::abstract_tuple ...@@ -38,14 +36,10 @@ class object_array : public detail::abstract_tuple
const void* at(size_t pos) const; const void* at(size_t pos) const;
const util::abstract_type_list& types() const;
bool equal_to(const cppa::detail::abstract_tuple&) const; bool equal_to(const cppa::detail::abstract_tuple&) const;
const uniform_type_info& utype_info_at(size_t pos) const; const uniform_type_info& utype_info_at(size_t pos) const;
util::abstract_type_list::const_iterator begin() const;
}; };
} } // namespace cppa::detail } } // namespace cppa::detail
......
...@@ -74,11 +74,6 @@ class tuple_vals : public abstract_tuple ...@@ -74,11 +74,6 @@ class tuple_vals : public abstract_tuple
return m_types.at(pos); return m_types.at(pos);
} }
const util::abstract_type_list& types() const
{
return m_types;
}
bool equal_to(const abstract_tuple& other) const bool equal_to(const abstract_tuple& other) const
{ {
if (size() != other.size()) return false; if (size() != other.size()) return false;
......
...@@ -149,11 +149,6 @@ class tuple ...@@ -149,11 +149,6 @@ class tuple
return m_vals->utype_info_at(p); return m_vals->utype_info_at(p);
} }
const util::abstract_type_list& types() const
{
return m_vals->types();
}
const cow_ptr<vals_t>& vals() const const cow_ptr<vals_t>& vals() const
{ {
return m_vals; return m_vals;
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
#define UTIL_HPP #define UTIL_HPP
#include "cppa/util/a_matches_b.hpp" #include "cppa/util/a_matches_b.hpp"
#include "cppa/util/abstract_type_list.hpp"
#include "cppa/util/apply.hpp" #include "cppa/util/apply.hpp"
#include "cppa/util/callable_trait.hpp" #include "cppa/util/callable_trait.hpp"
#include "cppa/util/compare_tuples.hpp" #include "cppa/util/compare_tuples.hpp"
......
#ifndef ABSTRACT_TYPE_LIST_HPP
#define ABSTRACT_TYPE_LIST_HPP
#include <memory>
// forward declaration
namespace cppa { class uniform_type_info; }
namespace cppa { namespace util {
struct abstract_type_list
{
class abstract_iterator
{
public:
virtual ~abstract_iterator();
/**
* @brief Increases the iterator position.
* @returns @c false if the iterator is at the end; otherwise @c true.
*/
virtual bool next() = 0;
virtual const uniform_type_info& get() const = 0;
virtual abstract_iterator* copy() const = 0;
};
class const_iterator
{
abstract_iterator* m_iter;
public:
const_iterator(abstract_iterator* x = nullptr) : m_iter(x) { }
const_iterator(const const_iterator& other)
: m_iter((other.m_iter) ? other.m_iter->copy() : nullptr)
{
}
const_iterator(const_iterator&& other) : m_iter(other.m_iter)
{
other.m_iter = nullptr;
}
const_iterator& operator=(const const_iterator& other)
{
delete m_iter;
m_iter = (other.m_iter) ? other.m_iter->copy() : nullptr;
return *this;
}
const_iterator& operator=(const_iterator&& other)
{
delete m_iter;
m_iter = other.m_iter;
other.m_iter = nullptr;
return *this;
}
~const_iterator()
{
delete m_iter;
}
bool operator==(const const_iterator& other) const
{
return m_iter == other.m_iter;
}
inline bool operator!=(const const_iterator& other) const
{
return !(*this == other);
}
const uniform_type_info& operator*() const
{
return m_iter->get();
}
const uniform_type_info* operator->() const
{
return &(m_iter->get());
}
const_iterator& operator++()
{
if (!m_iter->next())
{
delete m_iter;
m_iter = nullptr;
}
return *this;
}
};
virtual ~abstract_type_list();
virtual const_iterator begin() const = 0;
virtual const_iterator end() const;
};
} } // namespace cppa::util
#endif // ABSTRACT_TYPE_LIST_HPP
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
#include <typeinfo> #include <typeinfo>
#include "cppa/util/void_type.hpp" #include "cppa/util/void_type.hpp"
#include "cppa/util/abstract_type_list.hpp"
namespace cppa { namespace cppa {
...@@ -16,41 +15,6 @@ const uniform_type_info* uniform_typeid(const std::type_info&); ...@@ -16,41 +15,6 @@ const uniform_type_info* uniform_typeid(const std::type_info&);
namespace cppa { namespace util { namespace cppa { namespace util {
class type_list_iterator : public abstract_type_list::abstract_iterator
{
public:
typedef const uniform_type_info* const* ptr_type;
type_list_iterator(ptr_type begin, ptr_type end) : m_pos(begin), m_end(end)
{
}
type_list_iterator(const type_list_iterator&) = default;
bool next()
{
return ++m_pos != m_end;
}
const uniform_type_info& get() const
{
return *(*m_pos);
}
abstract_type_list::abstract_iterator* copy() const
{
return new type_list_iterator(*this);
}
private:
const uniform_type_info* const* m_pos;
const uniform_type_info* const* m_end;
};
template<typename... Types> struct type_list; template<typename... Types> struct type_list;
template<> template<>
...@@ -62,7 +26,7 @@ struct type_list<> ...@@ -62,7 +26,7 @@ struct type_list<>
}; };
template<typename Head, typename... Tail> template<typename Head, typename... Tail>
struct type_list<Head, Tail...> : abstract_type_list struct type_list<Head, Tail...>
{ {
typedef Head head_type; typedef Head head_type;
...@@ -76,21 +40,11 @@ struct type_list<Head, Tail...> : abstract_type_list ...@@ -76,21 +40,11 @@ struct type_list<Head, Tail...> : abstract_type_list
init<type_list>(m_arr); init<type_list>(m_arr);
} }
virtual const_iterator begin() const inline const uniform_type_info& at(size_t pos) const
{
return new type_list_iterator(m_arr, m_arr + size);
}
virtual const uniform_type_info& at(size_t pos) const
{ {
return *m_arr[pos]; return *m_arr[pos];
} }
virtual type_list* copy() const
{
return new type_list;
}
template<typename TypeList> template<typename TypeList>
static void init(const uniform_type_info** what) static void init(const uniform_type_info** what)
{ {
......
#include "cppa/util/abstract_type_list.hpp"
namespace cppa { namespace util {
abstract_type_list::~abstract_type_list()
{
}
abstract_type_list::const_iterator abstract_type_list::end() const
{
return const_iterator(nullptr);
}
abstract_type_list::abstract_iterator::~abstract_iterator()
{
}
} } // namespace cppa::util
...@@ -4,30 +4,6 @@ ...@@ -4,30 +4,6 @@
namespace { namespace {
struct offset_type_list : cppa::util::abstract_type_list
{
const_iterator begin() const
{
return m_begin;
}
offset_type_list(const cppa::util::abstract_type_list& decorated)
{
auto i = decorated.begin();
if (i != decorated.end())
{
++i;
}
m_begin = i;
}
private:
cppa::util::abstract_type_list::const_iterator m_begin;
};
struct offset_decorator : cppa::detail::abstract_tuple struct offset_decorator : cppa::detail::abstract_tuple
{ {
...@@ -36,7 +12,6 @@ struct offset_decorator : cppa::detail::abstract_tuple ...@@ -36,7 +12,6 @@ struct offset_decorator : cppa::detail::abstract_tuple
offset_decorator(const ptr_type& decorated, size_t offset) offset_decorator(const ptr_type& decorated, size_t offset)
: m_offset(offset) : m_offset(offset)
, m_decorated(decorated) , m_decorated(decorated)
, m_type_list(decorated->types())
{ {
} }
...@@ -60,11 +35,6 @@ struct offset_decorator : cppa::detail::abstract_tuple ...@@ -60,11 +35,6 @@ struct offset_decorator : cppa::detail::abstract_tuple
return m_decorated->at(pos + m_offset); return m_decorated->at(pos + m_offset);
} }
const cppa::util::abstract_type_list& types() const
{
return m_type_list;
}
const cppa::uniform_type_info& utype_info_at(size_t pos) const const cppa::uniform_type_info& utype_info_at(size_t pos) const
{ {
return m_decorated->utype_info_at(pos + m_offset); return m_decorated->utype_info_at(pos + m_offset);
...@@ -74,7 +44,6 @@ struct offset_decorator : cppa::detail::abstract_tuple ...@@ -74,7 +44,6 @@ struct offset_decorator : cppa::detail::abstract_tuple
size_t m_offset; size_t m_offset;
ptr_type m_decorated; ptr_type m_decorated;
offset_type_list m_type_list;
}; };
...@@ -137,11 +106,6 @@ const uniform_type_info& any_tuple::utype_info_at(size_t p) const ...@@ -137,11 +106,6 @@ const uniform_type_info& any_tuple::utype_info_at(size_t p) const
return m_vals->utype_info_at(p); return m_vals->utype_info_at(p);
} }
const util::abstract_type_list& any_tuple::types() const
{
return m_vals->types();
}
const cow_ptr<detail::abstract_tuple>& any_tuple::vals() const const cow_ptr<detail::abstract_tuple>& any_tuple::vals() const
{ {
return m_vals; return m_vals;
......
...@@ -3,35 +3,19 @@ ...@@ -3,35 +3,19 @@
namespace cppa { namespace detail { namespace cppa { namespace detail {
util::abstract_type_list* empty_tuple::empty_type_list::copy() const
{
return new empty_type_list;
}
util::abstract_type_list::const_iterator
empty_tuple::empty_type_list::begin() const
{
return nullptr;
}
const cppa::uniform_type_info* empty_tuple::empty_type_list::at(size_t) const
{
throw std::range_error("empty_type_list::at()");
}
size_t empty_tuple::size() const size_t empty_tuple::size() const
{ {
return 0; return 0;
} }
abstract_tuple* empty_tuple::copy() const void* empty_tuple::mutable_at(size_t)
{ {
return new empty_tuple; throw std::range_error("empty_tuple::mutable_at()");
} }
void* empty_tuple::mutable_at(size_t) abstract_tuple* empty_tuple::copy() const
{ {
throw std::range_error("empty_tuple::mutable_at()"); return new empty_tuple;
} }
const void* empty_tuple::at(size_t) const const void* empty_tuple::at(size_t) const
...@@ -44,11 +28,6 @@ const uniform_type_info& empty_tuple::utype_info_at(size_t) const ...@@ -44,11 +28,6 @@ const uniform_type_info& empty_tuple::utype_info_at(size_t) const
throw std::range_error("empty_tuple::type_at()"); throw std::range_error("empty_tuple::type_at()");
} }
const util::abstract_type_list& empty_tuple::types() const
{
return m_types;
}
bool empty_tuple::equal_to(const abstract_tuple& other) const bool empty_tuple::equal_to(const abstract_tuple& other) const
{ {
return other.size() == 0; return other.size() == 0;
......
...@@ -46,11 +46,6 @@ const void* object_array::at(size_t pos) const ...@@ -46,11 +46,6 @@ const void* object_array::at(size_t pos) const
return m_elements[pos].value(); return m_elements[pos].value();
} }
const util::abstract_type_list& object_array::types() const
{
return *this;
}
bool object_array::equal_to(const cppa::detail::abstract_tuple& ut) const bool object_array::equal_to(const cppa::detail::abstract_tuple& ut) const
{ {
if (size() == ut.size()) if (size() == ut.size())
...@@ -77,38 +72,4 @@ const uniform_type_info& object_array::utype_info_at(size_t pos) const ...@@ -77,38 +72,4 @@ const uniform_type_info& object_array::utype_info_at(size_t pos) const
return m_elements[pos].type(); return m_elements[pos].type();
} }
util::abstract_type_list::const_iterator object_array::begin() const
{
struct type_iterator : util::abstract_type_list::abstract_iterator
{
typedef std::vector<object>::const_iterator iterator_type;
iterator_type m_pos;
iterator_type m_end;
type_iterator(iterator_type begin, iterator_type end)
: m_pos(begin), m_end(end)
{
}
type_iterator(const type_iterator&) = default;
bool next()
{
return ++m_pos != m_end;
}
const uniform_type_info& get() const
{
return m_pos->type();
}
abstract_iterator* copy() const
{
return new type_iterator(*this);
}
};
return new type_iterator(m_elements.begin(), m_elements.end());
}
} } // namespace cppa::detail } } // namespace cppa::detail
...@@ -43,19 +43,6 @@ size_t test__type_list() ...@@ -43,19 +43,6 @@ size_t test__type_list()
CPPA_CHECK((is_same<int, l2::head_type>::value)); CPPA_CHECK((is_same<int, l2::head_type>::value));
CPPA_CHECK((is_same<l1, l2::tail_type>::value)); CPPA_CHECK((is_same<l1, l2::tail_type>::value));
type_list<std::int32_t, float, char> ifc;
auto i = ifc.begin();
CPPA_CHECK((i != ifc.end()));
CPPA_CHECK((i->name() == "@i32"));
++i;
CPPA_CHECK((i != ifc.end()));
CPPA_CHECK((i->name() == "float"));
++i;
CPPA_CHECK((i != ifc.end()));
CPPA_CHECK((i->name() == "@i8"));
++i;
CPPA_CHECK((i == ifc.end()));
return CPPA_TEST_RESULT; return CPPA_TEST_RESULT;
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment