18 #include <msdevstudio/MSconfig.h>
104 DataSource (
const std::vector < std::string > & labels );
140 virtual void copyPrivate (
const DataSource & other );
144 virtual void addLabel (
const std::string & label );
149 bool isValidColumn (
unsigned int index )
const;
156 virtual void checkWidth (
const DataSource * source );
167 bool isNull ()
const;
171 void setName (
const std::string & name );
175 const std::string & getName ()
const;
182 inline unsigned int columns()
const;
186 virtual unsigned int rows ()
const = 0;
190 virtual bool empty ()
const = 0;
194 const std::string & title()
const;
198 virtual void setTitle (
const std::string & title );
204 bool isValidLabel (
const std::string & label )
const;
212 virtual void throwIfInvalidLabel (
const std::string & label )
const;
217 void throwIfInvalidRowSize (
const std::vector < double > & row );
225 virtual bool setLabelAt (
const std::string & s,
unsigned int index );
229 virtual void setLabels (
const std::vector<std::string> & v );
234 virtual double valueAt (
unsigned int row,
unsigned int column )
const = 0;
239 virtual double valueAtNoCache (
unsigned int row,
unsigned int column )
const;
243 virtual const std::vector < double > &
244 getColumn (
const std::string & name )
const;
248 virtual const std::vector < double > &
249 getColumn (
unsigned int column )
const;
253 virtual const std::vector < double > & getRow (
unsigned int )
const = 0;
257 virtual const std::vector < std::string > & getLabels ()
const;
263 virtual const std::string & getLabelAt (
unsigned int index )
const;
273 virtual int indexOf (
const std::string & label )
const;
281 virtual void setShape ( std::vector < unsigned int > &
shape );
285 virtual const std::vector < unsigned int > & getShape ()
const;
294 virtual void fillShape ( std::vector < int > & v,
295 unsigned int column )
const;
304 virtual void fillShape ( std::vector < int > & v,
305 const std::string & label )
const;
310 unsigned int getRank ()
const;
320 virtual void replaceColumn (
const std::string & label,
321 const std::vector < double > & array );
327 virtual void replaceColumn (
unsigned int index,
328 const std::vector < double > & array );
338 virtual void replaceColumn (
const std::string & label,
339 const std::vector < double > &
data,
340 const std::vector < intptr_t > &
shape );
349 virtual int addColumn (
const std::string & label,
350 const std::vector < double > &
data,
351 const std::vector < intptr_t > &
shape );
359 virtual int addColumn (
const std::string & label,
360 const std::vector < double > &
data );
367 virtual bool fillRange (
unsigned int column,
Range & )
const;
372 virtual unsigned int indexOfMaxElement (
unsigned int index )
const;
377 virtual unsigned int indexOfMinElement (
unsigned int index )
const;
383 virtual double sum (
unsigned int column )
const;
389 virtual bool isMultiDimensional (
const std::string &
column )
const;
395 virtual bool isUseable (
const std::string &
column )
const;
400 virtual bool setReleventIndex(
const std::string &
column,
401 const std::vector< unsigned int >& index );
405 virtual void clear () = 0;
410 virtual void reserve (
unsigned int count ) = 0;
416 virtual void addRow (
const std::vector < double > & row );
421 virtual void eraseRow (
unsigned int index );
424 operator [] ( std::vector < unsigned int > & indices )
const = 0;
429 const std::vector < std::string > & getDuplicatedLabels ()
const;
437 virtual void append (
const DataSource * source );
444 virtual double * doubleArrayAt (
unsigned int row,
445 unsigned int column )
const;
451 virtual void expandIfNeeded(
const std::vector<std::string> & labels )
const;
460 return static_cast <
unsigned int > (
m_labels.size() );
465 #endif // DataSource_H