SHOGUN  v3.2.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
ProtobufFile.h
Go to the documentation of this file.
00001 /*
00002  * This program is free software; you can redistribute it and/or modify
00003  * it under the terms of the GNU General Public License as published by
00004  * the Free Software Foundation; either version 3 of the License, or
00005  * (at your option) any later version.
00006  *
00007  * Written (W) 2013 Evgeniy Andreev (gsomix)
00008  */
00009 
00010 #ifdef HAVE_PROTOBUF
00011 
00012 #ifndef __PROTOBUFFILE_H__
00013 #define __PROTOBUFFILE_H__
00014 
00015 #include <shogun/io/File.h>
00016 
00017 #include <google/protobuf/message.h>
00018 
00019 #include <shogun/io/protobuf/ShogunVersion.pb.h>
00020 #include <shogun/io/protobuf/Headers.pb.h>
00021 #include <shogun/io/protobuf/Chunks.pb.h>
00022 
00023 namespace shogun
00024 {
00025 
00038 class CProtobufFile : public CFile
00039 {
00040 public:
00042     CProtobufFile();
00043 
00049     CProtobufFile(FILE* f, const char* name=NULL);
00050 
00057     CProtobufFile(const char* fname, char rw='r', const char* name=NULL);
00058 
00060     virtual ~CProtobufFile();
00061 
00069     virtual void get_vector(int8_t*& vector, int32_t& len);
00070     virtual void get_vector(uint8_t*& vector, int32_t& len);
00071     virtual void get_vector(char*& vector, int32_t& len);
00072     virtual void get_vector(int32_t*& vector, int32_t& len);
00073     virtual void get_vector(uint32_t*& vector, int32_t& len);
00074     virtual void get_vector(float64_t*& vector, int32_t& len);
00075     virtual void get_vector(float32_t*& vector, int32_t& len);
00076     virtual void get_vector(floatmax_t*& vector, int32_t& len);
00077     virtual void get_vector(int16_t*& vector, int32_t& len);
00078     virtual void get_vector(uint16_t*& vector, int32_t& len);
00079     virtual void get_vector(int64_t*& vector, int32_t& len);
00080     virtual void get_vector(uint64_t*& vector, int32_t& len);
00082 
00091     virtual void get_matrix(
00092             uint8_t*& matrix, int32_t& num_feat, int32_t& num_vec);
00093     virtual void get_matrix(
00094             int8_t*& matrix, int32_t& num_feat, int32_t& num_vec);
00095     virtual void get_matrix(
00096             char*& matrix, int32_t& num_feat, int32_t& num_vec);
00097     virtual void get_matrix(
00098             int32_t*& matrix, int32_t& num_feat, int32_t& num_vec);
00099     virtual void get_matrix(
00100             uint32_t*& matrix, int32_t& num_feat, int32_t& num_vec);
00101     virtual void get_matrix(
00102             int64_t*& matrix, int32_t& num_feat, int32_t& num_vec);
00103     virtual void get_matrix(
00104             uint64_t*& matrix, int32_t& num_feat, int32_t& num_vec);
00105     virtual void get_matrix(
00106             float32_t*& matrix, int32_t& num_feat, int32_t& num_vec);
00107     virtual void get_matrix(
00108             float64_t*& matrix, int32_t& num_feat, int32_t& num_vec);
00109     virtual void get_matrix(
00110             floatmax_t*& matrix, int32_t& num_feat, int32_t& num_vec);
00111     virtual void get_matrix(
00112             int16_t*& matrix, int32_t& num_feat, int32_t& num_vec);
00113     virtual void get_matrix(
00114             uint16_t*& matrix, int32_t& num_feat, int32_t& num_vec);
00116 
00125     virtual void get_ndarray(
00126             uint8_t*& array, int32_t*& dims, int32_t& num_dims);
00127     virtual void get_ndarray(
00128             char*& array, int32_t*& dims, int32_t& num_dims);
00129     virtual void get_ndarray(
00130             int32_t*& array, int32_t*& dims, int32_t& num_dims);
00131     virtual void get_ndarray(
00132             float32_t*& array, int32_t*& dims, int32_t& num_dims);
00133     virtual void get_ndarray(
00134             float64_t*& array, int32_t*& dims, int32_t& num_dims);
00135     virtual void get_ndarray(
00136             int16_t*& array, int32_t*& dims, int32_t& num_dims);
00137     virtual void get_ndarray(
00138             uint16_t*& array, int32_t*& dims, int32_t& num_dims);
00140 
00149     virtual void get_sparse_matrix(
00150             SGSparseVector<bool>*& matrix, int32_t& num_feat, int32_t& num_vec);
00151     virtual void get_sparse_matrix(
00152             SGSparseVector<uint8_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
00153     virtual void get_sparse_matrix(
00154         SGSparseVector<int8_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
00155     virtual void get_sparse_matrix(
00156             SGSparseVector<char>*& matrix, int32_t& num_feat, int32_t& num_vec);
00157     virtual void get_sparse_matrix(
00158             SGSparseVector<int32_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
00159     virtual void get_sparse_matrix(
00160             SGSparseVector<uint32_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
00161     virtual void get_sparse_matrix(
00162             SGSparseVector<int64_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
00163     virtual void get_sparse_matrix(
00164             SGSparseVector<uint64_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
00165     virtual void get_sparse_matrix(
00166             SGSparseVector<int16_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
00167     virtual void get_sparse_matrix(
00168             SGSparseVector<uint16_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
00169     virtual void get_sparse_matrix(
00170             SGSparseVector<float32_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
00171     virtual void get_sparse_matrix(
00172             SGSparseVector<float64_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
00173     virtual void get_sparse_matrix(
00174             SGSparseVector<floatmax_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
00176 
00185     virtual void get_string_list(
00186             SGString<uint8_t>*& strings, int32_t& num_str,
00187             int32_t& max_string_len);
00188     virtual void get_string_list(
00189             SGString<int8_t>*& strings, int32_t& num_str,
00190             int32_t& max_string_len);
00191     virtual void get_string_list(
00192             SGString<char>*& strings, int32_t& num_str,
00193             int32_t& max_string_len);
00194     virtual void get_string_list(
00195             SGString<int32_t>*& strings, int32_t& num_str,
00196             int32_t& max_string_len);
00197     virtual void get_string_list(
00198             SGString<uint32_t>*& strings, int32_t& num_str,
00199             int32_t& max_string_len);
00200     virtual void get_string_list(
00201             SGString<int16_t>*& strings, int32_t& num_str,
00202             int32_t& max_string_len);
00203     virtual void get_string_list(
00204             SGString<uint16_t>*& strings, int32_t& num_str,
00205             int32_t& max_string_len);
00206     virtual void get_string_list(
00207             SGString<int64_t>*& strings, int32_t& num_str,
00208             int32_t& max_string_len);
00209     virtual void get_string_list(
00210             SGString<uint64_t>*& strings, int32_t& num_str,
00211             int32_t& max_string_len);
00212     virtual void get_string_list(
00213             SGString<float32_t>*& strings, int32_t& num_str,
00214             int32_t& max_string_len);
00215     virtual void get_string_list(
00216             SGString<float64_t>*& strings, int32_t& num_str,
00217             int32_t& max_string_len);
00218     virtual void get_string_list(
00219             SGString<floatmax_t>*& strings, int32_t& num_str,
00220             int32_t& max_string_len);
00222 
00224     /*virtual void get_vector(void*& vector, int32_t& len, DataType& dtype);*/
00225 
00233     virtual void set_vector(const int8_t* vector, int32_t len);
00234     virtual void set_vector(const uint8_t* vector, int32_t len);
00235     virtual void set_vector(const char* vector, int32_t len);
00236     virtual void set_vector(const int32_t* vector, int32_t len);
00237     virtual void set_vector(const uint32_t* vector, int32_t len);
00238     virtual void set_vector(const float32_t* vector, int32_t len);
00239     virtual void set_vector(const float64_t* vector, int32_t len);
00240     virtual void set_vector(const floatmax_t* vector, int32_t len);
00241     virtual void set_vector(const int16_t* vector, int32_t len);
00242     virtual void set_vector(const uint16_t* vector, int32_t len);
00243     virtual void set_vector(const int64_t* vector, int32_t len);
00244     virtual void set_vector(const uint64_t* vector, int32_t len);
00246 
00254     virtual void set_matrix(
00255             const uint8_t* matrix, int32_t num_feat, int32_t num_vec);
00256     virtual void set_matrix(
00257             const int8_t* matrix, int32_t num_feat, int32_t num_vec);
00258     virtual void set_matrix(
00259             const char* matrix, int32_t num_feat, int32_t num_vec);
00260     virtual void set_matrix(
00261             const int32_t* matrix, int32_t num_feat, int32_t num_vec);
00262     virtual void set_matrix(
00263             const uint32_t* matrix, int32_t num_feat, int32_t num_vec);
00264     virtual void set_matrix(
00265             const int64_t* matrix, int32_t num_feat, int32_t num_vec);
00266     virtual void set_matrix(
00267             const uint64_t* matrix, int32_t num_feat, int32_t num_vec);
00268     virtual void set_matrix(
00269             const float32_t* matrix, int32_t num_feat, int32_t num_vec);
00270     virtual void set_matrix(
00271             const float64_t* matrix, int32_t num_feat, int32_t num_vec);
00272     virtual void set_matrix(
00273             const floatmax_t* matrix, int32_t num_feat, int32_t num_vec);
00274     virtual void set_matrix(
00275             const int16_t* matrix, int32_t num_feat, int32_t num_vec);
00276     virtual void set_matrix(
00277             const uint16_t* matrix, int32_t num_feat, int32_t num_vec);
00279 
00287     virtual void set_sparse_matrix(
00288             const SGSparseVector<bool>* matrix, int32_t num_feat, int32_t num_vec);
00289     virtual void set_sparse_matrix(
00290             const SGSparseVector<uint8_t>* matrix, int32_t num_feat, int32_t num_vec);
00291     virtual void set_sparse_matrix(
00292             const SGSparseVector<int8_t>* matrix, int32_t num_feat, int32_t num_vec);
00293     virtual void set_sparse_matrix(
00294             const SGSparseVector<char>* matrix, int32_t num_feat, int32_t num_vec);
00295     virtual void set_sparse_matrix(
00296             const SGSparseVector<int32_t>* matrix, int32_t num_feat, int32_t num_vec);
00297     virtual void set_sparse_matrix(
00298             const SGSparseVector<uint32_t>* matrix, int32_t num_feat, int32_t num_vec);
00299     virtual void set_sparse_matrix(
00300             const SGSparseVector<int64_t>* matrix, int32_t num_feat, int32_t num_vec);
00301     virtual void set_sparse_matrix(
00302             const SGSparseVector<uint64_t>* matrix, int32_t num_feat, int32_t num_vec);
00303     virtual void set_sparse_matrix(
00304             const SGSparseVector<int16_t>* matrix, int32_t num_feat, int32_t num_vec);
00305     virtual void set_sparse_matrix(
00306             const SGSparseVector<uint16_t>* matrix, int32_t num_feat, int32_t num_vec);
00307     virtual void set_sparse_matrix(
00308             const SGSparseVector<float32_t>* matrix, int32_t num_feat, int32_t num_vec);
00309     virtual void set_sparse_matrix(
00310             const SGSparseVector<float64_t>* matrix, int32_t num_feat, int32_t num_vec);
00311     virtual void set_sparse_matrix(
00312             const SGSparseVector<floatmax_t>* matrix, int32_t num_feat, int32_t num_vec);
00314 
00323     virtual void set_string_list(
00324             const SGString<uint8_t>* strings, int32_t num_str);
00325     virtual void set_string_list(
00326             const SGString<int8_t>* strings, int32_t num_str);
00327     virtual void set_string_list(
00328             const SGString<char>* strings, int32_t num_str);
00329     virtual void set_string_list(
00330             const SGString<int32_t>* strings, int32_t num_str);
00331     virtual void set_string_list(
00332             const SGString<uint32_t>* strings, int32_t num_str);
00333     virtual void set_string_list(
00334             const SGString<int16_t>* strings, int32_t num_str);
00335     virtual void set_string_list(
00336             const SGString<uint16_t>* strings, int32_t num_str);
00337     virtual void set_string_list(
00338             const SGString<int64_t>* strings, int32_t num_str);
00339     virtual void set_string_list(
00340             const SGString<uint64_t>* strings, int32_t num_str);
00341     virtual void set_string_list(
00342             const SGString<float32_t>* strings, int32_t num_str);
00343     virtual void set_string_list(
00344             const SGString<float64_t>* strings, int32_t num_str);
00345     virtual void set_string_list(
00346             const SGString<floatmax_t>* strings, int32_t num_str);
00348 
00349     virtual const char* get_name() const { return "ProtobufFile"; }
00350 
00351 private:
00353     void init();
00354 
00356     void write_big_endian_uint(uint32_t number, uint8_t* array, uint32_t size);
00357 
00359     uint32_t read_big_endian_uint(uint8_t* array, uint32_t size);
00360 
00362     int32_t compute_num_messages(uint64_t len, int32_t sizeof_type) const;
00363 
00365     void read_and_validate_global_header(ShogunVersion_SGDataType type);
00366 
00368     void write_global_header(ShogunVersion_SGDataType type);
00369 
00372     VectorHeader read_vector_header();
00373     MatrixHeader read_matrix_header();
00374     SparseMatrixHeader read_sparse_matrix_header();
00375     StringListHeader read_string_list_header();
00377 
00380     void write_vector_header(int32_t len, int32_t num_messages);
00381     void write_matrix_header(int32_t num_feat, int32_t num_vec, int32_t num_messages);
00383 
00388     void write_sparse_matrix_header(
00389             const SGSparseVector<bool>* matrix, int32_t num_feat, int32_t num_vec);
00390     void write_sparse_matrix_header(
00391             const SGSparseVector<uint8_t>* matrix, int32_t num_feat, int32_t num_vec);
00392     void write_sparse_matrix_header(
00393             const SGSparseVector<int8_t>* matrix, int32_t num_feat, int32_t num_vec);
00394     void write_sparse_matrix_header(
00395             const SGSparseVector<char>* matrix, int32_t num_feat, int32_t num_vec);
00396     void write_sparse_matrix_header(
00397             const SGSparseVector<int32_t>* matrix, int32_t num_feat, int32_t num_vec);
00398     void write_sparse_matrix_header(
00399             const SGSparseVector<uint32_t>* matrix, int32_t num_feat, int32_t num_vec);
00400     void write_sparse_matrix_header(
00401             const SGSparseVector<float64_t>* matrix, int32_t num_feat, int32_t num_vec);
00402     void write_sparse_matrix_header(
00403             const SGSparseVector<float32_t>* matrix, int32_t num_feat, int32_t num_vec);
00404     void write_sparse_matrix_header(
00405             const SGSparseVector<floatmax_t>* matrix, int32_t num_feat, int32_t num_vec);
00406     void write_sparse_matrix_header(
00407             const SGSparseVector<int16_t>* matrix, int32_t num_feat, int32_t num_vec);
00408     void write_sparse_matrix_header(
00409             const SGSparseVector<uint16_t>* matrix, int32_t num_feat, int32_t num_vec);
00410     void write_sparse_matrix_header(
00411             const SGSparseVector<int64_t>* matrix, int32_t num_feat, int32_t num_vec);
00412     void write_sparse_matrix_header(
00413             const SGSparseVector<uint64_t>* matrix, int32_t num_feat, int32_t num_vec);
00415 
00420     void write_string_list_header(
00421             const SGString<uint8_t>* strings, int32_t num_str);
00422     void write_string_list_header(
00423             const SGString<int8_t>* strings, int32_t num_str);
00424     void write_string_list_header(
00425             const SGString<char>* strings, int32_t num_str);
00426     void write_string_list_header(
00427             const SGString<int32_t>* strings, int32_t num_str);
00428     void write_string_list_header(
00429             const SGString<uint32_t>* strings, int32_t num_str);
00430     void write_string_list_header(
00431             const SGString<float64_t>* strings, int32_t num_str);
00432     void write_string_list_header(
00433             const SGString<float32_t>* strings, int32_t num_str);
00434     void write_string_list_header(
00435             const SGString<floatmax_t>* strings, int32_t num_str);
00436     void write_string_list_header(
00437             const SGString<int16_t>* strings, int32_t num_str);
00438     void write_string_list_header(
00439             const SGString<uint16_t>* strings, int32_t num_str);
00440     void write_string_list_header(
00441             const SGString<int64_t>* strings, int32_t num_str);
00442     void write_string_list_header(
00443             const SGString<uint64_t>* strings, int32_t num_str);
00445 
00447     void read_message(google::protobuf::Message& message);
00448 
00450     void write_message(const google::protobuf::Message& message);
00451 
00457     void read_memory_block(uint8_t*& vector, uint64_t len, int32_t num_messages);
00458     void read_memory_block(int8_t*& vector, uint64_t len, int32_t num_messages);
00459     void read_memory_block(char*& vector, uint64_t len, int32_t num_messages);
00460     void read_memory_block(int32_t*& vector, uint64_t len, int32_t num_messages);
00461     void read_memory_block(uint32_t*& vector, uint64_t len, int32_t num_messages);
00462     void read_memory_block(float64_t*& vector, uint64_t len, int32_t num_messages);
00463     void read_memory_block(float32_t*& vector, uint64_t len, int32_t num_messages);
00464     void read_memory_block(floatmax_t*& vector, uint64_t len, int32_t num_messages);
00465     void read_memory_block(int16_t*& vector, uint64_t len, int32_t num_messages);
00466     void read_memory_block(uint16_t*& vector, uint64_t len, int32_t num_messages);
00467     void read_memory_block(int64_t*& vector, uint64_t len, int32_t num_messages);
00468     void read_memory_block(uint64_t*& vector, uint64_t len, int32_t num_messages);
00470 
00476     void write_memory_block(const int8_t* vector, uint64_t len, int32_t num_messages);
00477     void write_memory_block(const uint8_t* vector, uint64_t len, int32_t num_messages);
00478     void write_memory_block(const char* vector, uint64_t len, int32_t num_messages);
00479     void write_memory_block(const int32_t* vector, uint64_t len, int32_t num_messages);
00480     void write_memory_block(const uint32_t* vector, uint64_t len, int32_t num_messages);
00481     void write_memory_block(const float32_t* vector, uint64_t len, int32_t num_messages);
00482     void write_memory_block(const float64_t* vector, uint64_t len, int32_t num_messages);
00483     void write_memory_block(const floatmax_t* vector, uint64_t len, int32_t num_messages);
00484     void write_memory_block(const int16_t* vector, uint64_t len, int32_t num_messages);
00485     void write_memory_block(const uint16_t* vector, uint64_t len, int32_t num_messages);
00486     void write_memory_block(const int64_t* vector, uint64_t len, int32_t num_messages);
00487     void write_memory_block(const uint64_t* vector, uint64_t len, int32_t num_messages);
00489 
00491     void read_sparse_matrix(SGSparseVector<bool>*& matrix,
00492             const SparseMatrixHeader& data_header);
00493     void read_sparse_matrix(SGSparseVector<uint8_t>*& matrix,
00494             const SparseMatrixHeader& data_header);
00495     void read_sparse_matrix(SGSparseVector<int8_t>*& matrix,
00496             const SparseMatrixHeader& data_header);
00497     void read_sparse_matrix(SGSparseVector<char>*& matrix,
00498             const SparseMatrixHeader& data_header);
00499     void read_sparse_matrix(SGSparseVector<int32_t>*& matrix,
00500             const SparseMatrixHeader& data_header);
00501     void read_sparse_matrix(SGSparseVector<uint32_t>*& matrix,
00502             const SparseMatrixHeader& data_header);
00503     void read_sparse_matrix(SGSparseVector<int16_t>*& matrix,
00504             const SparseMatrixHeader& data_header);
00505     void read_sparse_matrix(SGSparseVector<uint16_t>*& matrix,
00506             const SparseMatrixHeader& data_header);
00507     void read_sparse_matrix(SGSparseVector<int64_t>*& matrix,
00508             const SparseMatrixHeader& data_header);
00509     void read_sparse_matrix(SGSparseVector<uint64_t>*& matrix,
00510             const SparseMatrixHeader& data_header);
00511     void read_sparse_matrix(SGSparseVector<float32_t>*& matrix,
00512             const SparseMatrixHeader& data_header);
00513     void read_sparse_matrix(SGSparseVector<float64_t>*& matrix,
00514             const SparseMatrixHeader& data_header);
00515     void read_sparse_matrix(SGSparseVector<floatmax_t>*& matrix,
00516             const SparseMatrixHeader& data_header);
00518 
00522     void write_sparse_matrix(
00523             const SGSparseVector<bool>* matrix, int32_t num_vec);
00524     void write_sparse_matrix(
00525             const SGSparseVector<uint8_t>* matrix, int32_t num_vec);
00526     void write_sparse_matrix(
00527             const SGSparseVector<int8_t>* matrix, int32_t num_vec);
00528     void write_sparse_matrix(
00529             const SGSparseVector<char>* matrix, int32_t num_vec);
00530     void write_sparse_matrix(
00531             const SGSparseVector<int32_t>* matrix, int32_t num_vec);
00532     void write_sparse_matrix(
00533             const SGSparseVector<uint32_t>* matrix, int32_t num_vec);
00534     void write_sparse_matrix(
00535             const SGSparseVector<int16_t>* matrix, int32_t num_vec);
00536     void write_sparse_matrix(
00537             const SGSparseVector<uint16_t>* matrix, int32_t num_vec);
00538     void write_sparse_matrix(
00539             const SGSparseVector<int64_t>* matrix, int32_t num_vec);
00540     void write_sparse_matrix(
00541             const SGSparseVector<uint64_t>* matrix, int32_t num_vec);
00542     void write_sparse_matrix(
00543             const SGSparseVector<float32_t>* matrix, int32_t num_vec);
00544     void write_sparse_matrix(
00545             const SGSparseVector<float64_t>* matrix, int32_t num_vec);
00546     void write_sparse_matrix(
00547             const SGSparseVector<floatmax_t>* matrix, int32_t num_vec);
00549 
00551     void read_string_list(SGString<uint8_t>*& strings,
00552             const StringListHeader& data_header);
00553     void read_string_list(SGString<int8_t>*& strings,
00554             const StringListHeader& data_header);
00555     void read_string_list(SGString<char>*& strings,
00556             const StringListHeader& data_header);
00557     void read_string_list(SGString<int32_t>*& strings,
00558             const StringListHeader& data_header);
00559     void read_string_list(SGString<uint32_t>*& strings,
00560             const StringListHeader& data_header);
00561     void read_string_list(SGString<int16_t>*& strings,
00562             const StringListHeader& data_header);
00563     void read_string_list(SGString<uint16_t>*& strings,
00564             const StringListHeader& data_header);
00565     void read_string_list(SGString<int64_t>*& strings,
00566             const StringListHeader& data_header);
00567     void read_string_list(SGString<uint64_t>*& strings,
00568             const StringListHeader& data_header);
00569     void read_string_list(SGString<float32_t>*& strings,
00570             const StringListHeader& data_header);
00571     void read_string_list(SGString<float64_t>*& strings,
00572             const StringListHeader& data_header);
00573     void read_string_list(SGString<floatmax_t>*& strings,
00574             const StringListHeader& data_header);
00576 
00580     void write_string_list(
00581             const SGString<uint8_t>* strings, int32_t num_str);
00582     void write_string_list(
00583             const SGString<int8_t>* strings, int32_t num_str);
00584     void write_string_list(
00585             const SGString<char>* strings, int32_t num_str);
00586     void write_string_list(
00587             const SGString<int32_t>* strings, int32_t num_str);
00588     void write_string_list(
00589             const SGString<uint32_t>* strings, int32_t num_str);
00590     void write_string_list(
00591             const SGString<int16_t>* strings, int32_t num_str);
00592     void write_string_list(
00593             const SGString<uint16_t>* strings, int32_t num_str);
00594     void write_string_list(
00595             const SGString<int64_t>* strings, int32_t num_str);
00596     void write_string_list(
00597             const SGString<uint64_t>* strings, int32_t num_str);
00598     void write_string_list(
00599             const SGString<float32_t>* strings, int32_t num_str);
00600     void write_string_list(
00601             const SGString<float64_t>* strings, int32_t num_str);
00602     void write_string_list(
00603             const SGString<floatmax_t>* strings, int32_t num_str);
00605 
00606 private:
00608     int32_t version;
00609 
00611     int32_t message_size;
00612 
00614     uint8_t* buffer;
00615 
00617     uint8_t uint_buffer[4];
00618 };
00619 
00620 }
00621 
00622 #endif 
00624 #endif 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

SHOGUN Machine Learning Toolbox - Documentation