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:
@@ -14,6 +14,7 @@
|
||||
|
||||
#include <pv/pvIntrospect.h>
|
||||
#include <pv/epicsException.h>
|
||||
#include <pv/sharedVector.h>
|
||||
|
||||
#include "dbDefs.h" // for NELEMENTS
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user