move parts of ScalarTypeFunc to sharedVector.h

Move the parts of ScalarTypeFunc which
deal with untyped shared_vector s
to sharedVector.h to allow sharedVector.h
to include pvIntrospect.h w/o creating
an include loop...
This commit is contained in:
Michael Davidsaver
2013-07-08 09:53:08 -04:00
parent 6900d4bbec
commit 2cb07a8490
3 changed files with 18 additions and 17 deletions

View File

@@ -14,6 +14,7 @@
#include <pv/pvIntrospect.h>
#include <pv/epicsException.h>
#include <pv/sharedVector.h>
#include "dbDefs.h" // for NELEMENTS

View File

@@ -9,6 +9,7 @@
#include <cassert>
#include "pv/sharedPtr.h"
#include "pv/pvIntrospect.h"
namespace epics { namespace pvData {
@@ -573,6 +574,22 @@ const_shared_vector_cast(const shared_vector<const TYPE>& src)
}
namespace ScalarTypeFunc {
//! Allocate an untyped array based on ScalarType
shared_vector<void> allocArray(ScalarType id, size_t len);
//! Allocate an untyped array based on ScalarType
template<ScalarType ID>
inline
shared_vector<typename ScalarTypeTraits<ID>::type>
allocArray(size_t len)
{
shared_vector<void> raw(allocArray(ID, len));
return static_shared_vector_cast<typename ScalarTypeTraits<ID>::type>(raw);
}
}
}} // namespace epics::pvData
// Global operators for shared_vector

View File

@@ -16,7 +16,6 @@
#include <pv/pvType.h>
#include <pv/byteBuffer.h>
#include <pv/serialize.h>
#include <pv/sharedVector.h>
namespace epics { namespace pvData {
@@ -583,21 +582,5 @@ OP(pvDouble, double);
OP(pvString, String);
#undef OP
namespace ScalarTypeFunc {
//! Allocate an untyped array based on ScalarType
shared_vector<void> allocArray(ScalarType id, size_t len);
//! Allocate an untyped array based on ScalarType
template<ScalarType ID>
inline
shared_vector<typename ScalarTypeTraits<ID>::type>
allocArray(size_t len)
{
shared_vector<void> raw(allocArray(ID, len));
return static_shared_vector_cast<typename ScalarTypeTraits<ID>::type>(raw);
}
}
}}
#endif /* PVINTROSPECT_H */