OmniSciDB  343343d194
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
GeoWktSerializer< kPOLYGON > Struct Template Reference

#include <ResultSetGeoSerialization.h>

Static Public Member Functions

static TargetValue serialize (const SQLTypeInfo &geo_ti, std::array< VarlenDatumPtr, 2 > &vals)
 

Detailed Description

template<>
struct GeoWktSerializer< kPOLYGON >

Definition at line 232 of file ResultSetGeoSerialization.h.

Member Function Documentation

static TargetValue GeoWktSerializer< kPOLYGON >::serialize ( const SQLTypeInfo geo_ti,
std::array< VarlenDatumPtr, 2 > &  vals 
)
inlinestatic

Definition at line 233 of file ResultSetGeoSerialization.h.

References anonymous_namespace{ResultSetGeoSerialization.h}::decompress_coords< double >(), Geo_namespace::GeoBase::getWktString(), and anonymous_namespace{ResultSetGeoSerialization.h}::unpack_geo_vector().

234  {
235  // TODO: Check geo nullness first
236  // if (!geo_ti.get_notnull() && (vals[0]->is_null || vals[1]->is_null)) {
237  // // TODO: What WKT should NULL serialize to? NULL? POLYGON EMPTY?
238  // return NullableString("NULL");
239  // }
240  std::vector<int32_t> ring_sizes_vec;
241  unpack_geo_vector(ring_sizes_vec, vals[1]->pointer, vals[1]->length);
243  *decompress_coords<double>(geo_ti, vals[0]->pointer, vals[0]->length),
244  ring_sizes_vec);
245  return NullableString(poly.getWktString());
246  };
void unpack_geo_vector(std::vector< T > &output, const int8_t *input_ptr, const size_t sz)
std::shared_ptr< std::vector< double > > decompress_coords< double >(const SQLTypeInfo &geo_ti, const int8_t *coords, const size_t coords_sz)
boost::variant< std::string, void * > NullableString
Definition: TargetValue.h:155

+ Here is the call graph for this function:


The documentation for this struct was generated from the following file: