<
typenameT>
54static_assert(
sizeof(
T) == 0,
"CassValueConvert(): Conversion for this type is not implemented yet");
66 template<
size_t C,
size_t N,
typename...T>
71 template<
size_t C,
size_t N,
typename...T>
74 if(!cass_iterator_next(itr))
76 constCassValue*
value= cass_iterator_get_value(itr);
86 template<
typename...T>
89 RAISE_DB_ERROR(eConvFailed,
"Failed to convert Cass value to tuple: Cass value is NULL");
91CassValueType
type= cass_value_type(Val);
93 caseCASS_VALUE_TYPE_TUPLE:
94 if(!cass_value_is_null(Val)) {
95unique_ptr<CassIterator,
function<void(CassIterator*)> > tuple_iterator(
96cass_iterator_from_tuple(Val),
97[](CassIterator* itr) {
99cass_iterator_free(itr);
103 RAISE_DB_ERROR(eConvFailed,
"Failed to get Cass tuple iterator");
109 t= std::tuple<
T...>();
112 if(
type== CASS_VALUE_TYPE_UNKNOWN && (!Val || cass_value_is_null(Val)))
113 t= std::tuple<
T...>();
123 if(Val && cass_value_is_null(Val))
129 template<
typenameT>
131static_assert(
sizeof(
T) == 0,
"ValueToCassCollection() is not implemented for this type");
143 template<
typenameT>
145static_assert(
sizeof(
T) == 0,
"ValueToCassTupleItem() is not implemented for adding this item type to Cassandra tuple");
158 template<
size_t N,
typename...
T>
163 template<
size_t N,
typename...T>
166 const auto& item = get<
N- 1>(
t);
173 template<
typename...T>
175unique_ptr<CassTuple,
function<void(CassTuple*)> > cass_tuple(
176cass_tuple_new(tuple_size< std::tuple<T...> >::
value),
179cass_tuple_free(tpl);
189 if((err = cass_collection_append_tuple(coll, cass_tuple.get())) != CASS_OK)
190 RAISE_CASS_ERROR(err, eConvFailed,
"Failed to append tuple value to Cassandra collection:");
193 template<
typename...T>
195unique_ptr<CassTuple,
function<void(CassTuple*)> > cass_tuple(
196cass_tuple_new(tuple_size< std::tuple<T...> >::
value),
199cass_tuple_free(tpl);
208CassError err = cass_tuple_set_tuple(dest, index, cass_tuple.get());
210 RAISE_CASS_ERROR(err, eConvFailed,
"Failed to append tuple value to Cassandra tuple:");
213 template<
typename...T>
#define BEGIN_IDBLOB_SCOPE
#define RAISE_CASS_ERROR(errc, dberr, comm)
#define RAISE_DB_ERROR(errc, comm)
The NCBI C++ standard methods for dealing with std::string.
static enable_if< is_arithmetic< TNumeric >::value||is_convertible< TNumeric, Int8 >::value, string >::type NumericToString(TNumeric value, TNumToStringFlags flags=0, int base=10)
Convert numeric value to string.
void ValueToCassTupleItem< string >(const string &value, CassTuple *dest, int index)
void ValueToCassCollection< int64_t >(const int64_t &v, CassCollection *coll)
void ValueToCassTupleItem< float >(const float &value, CassTuple *dest, int index)
void ValueToCassTupleItem< bool >(const bool &value, CassTuple *dest, int index)
void ValueToCassTupleItem(const T &value, CassTuple *dest, int index)
void CassValueConvert< string >(const CassValue *Val, string &v)
void CassValueConvert(const CassValue *Val, T &t)
void CassValueConvertDef(const CassValue *Val, const T &_default, T &v)
void CassValueConvert< double >(const CassValue *Val, double &v)
void ValueToCassCollection< int32_t >(const int32_t &v, CassCollection *coll)
void CassValueConvert< int32_t >(const CassValue *Val, int32_t &v)
void ValueToCassTupleItem< int8_t >(const int8_t &value, CassTuple *dest, int index)
void ValueToCassTupleItem< int64_t >(const int64_t &value, CassTuple *dest, int index)
void CassIteratorToTupleImpl(CassIterator *, std::tuple< T... > &, char)
void ValueToCassCollection< int16_t >(const int16_t &v, CassCollection *coll)
void CassValueConvert< int64_t >(const CassValue *Val, int64_t &v)
void ValueToCassCollection< float >(const float &v, CassCollection *coll)
void ValueToCassTupleItem< int16_t >(const int16_t &value, CassTuple *dest, int index)
void CassValueConvert< bool >(const CassValue *Val, bool &v)
void CassValueConvert< int8_t >(const CassValue *Val, int8_t &v)
void ValueToCassCollection(const T &v, CassCollection *coll)
void ValueToCassCollection< bool >(const bool &v, CassCollection *coll)
void ValueToCassCollection< double >(const double &v, CassCollection *coll)
void ValueToCassCollection< int8_t >(const int8_t &v, CassCollection *coll)
void ValueToCassTupleItem< double >(const double &value, CassTuple *dest, int index)
void ValueToCassTuple(const std::tuple< T... > &value, CassTuple *dest)
void TupleToCassTupleImpl(const std::tuple< T... > &, CassTuple *, char)
void ValueToCassCollection< string >(const string &v, CassCollection *coll)
void CassValueConvert< int16_t >(const CassValue *Val, int16_t &v)
void ValueToCassTupleItem< int32_t >(const int32_t &value, CassTuple *dest, int index)
typename conditional_helper< V >::template type< A, B > conditional
const GenericPointer< typename T::ValueType > T2 value
Defines NCBI C++ exception handling.
NCBI C++ stream class wrappers for triggering between "new" and "old" C++ stream libraries.
Defines: CTimeFormat - storage class for time format.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4