Changeset f661cb9 in tol


Ignore:
Timestamp:
Feb 12, 2012, 10:45:57 PM (15 years ago)
Author:
Víctor de Buen <vdebuen@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
8593497
Parents:
db454cd
Message:

Refs #1291
Refs #1407

New BVMat methods to implement binary file serialization based on just-one-file OIS with minimum expression of header information.

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@4114 be4846ae-f051-483a-831f-b64e7d08527f

Location:
tol/btol/vmatrix_type
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • tol/btol/vmatrix_type/tol_bvmat.h

    rdb454cd rf661cb9  
    342342  bool   Read (BOisLoader& ois, BStream* stream);
    343343 
     344  bool Write(const BText& filePath) const;
     345  bool Read(const BText& filePath);
     346
    344347  static size_t bytes(const cholmod_R_dense* a);
    345348  static size_t bytes(const cholmod_R_sparse* a);
  • tol/btol/vmatrix_type/vmat_io.cpp

    rdb454cd rf661cb9  
    2626#include <tol/tol_oiscreator.h>
    2727#include <tol/tol_oisloader.h>
     28#include <tol/tol_oisstream_dir.h>
     29#include <tol/tol_bdir.h>
    2830#include <stdarg.h>
    2931
    … …  
    858860
    859861
     862////////////////////////////////////////////////////////////////////////////////
     863  bool BVMat::Write(const BText& filePath) const
     864//Exporting method
     865////////////////////////////////////////////////////////////////////////////////
     866{
     867  BText dirPath = GetFilePath(filePath);
     868  BText fileName = GetFileName(filePath);
     869  BDirStreamHandler dir;
     870  if(!dir.Connect(dirPath,BStreamHandler::BSHOM_WRITE,true)) { return(false); }
     871  BStream* stream = dir.Open(fileName, fileName, -1);
     872  BOisCreator ois;
     873  ois.SetControl();
     874  ois.options_.compressor_.serialization_.engine_ = BOis::BSE_NONE_;
     875  char* buf = ois.control_.oisEngine_.oisVersion_.Buffer();
     876  int len = ois.control_.oisEngine_.oisVersion_.Length();
     877  stream->Write(&len, sizeof(int), 1);
     878  stream->Write(buf, 1, len+1);
     879  stream->Write(&ois.control_.machine_.isLittleEndian_, sizeof(bool), 1);
     880  stream->Write(&ois.options_.compressor_.serialization_.engine_, sizeof(BOis::BSerialEngine), 1);
     881  stream->Write(&ois.options_.compressor_.serialization_.minSizeCmprs_, sizeof(int), 1);
     882  stream->Write(&ois.options_.compressor_.serialization_.level_, sizeof(int), 1);
     883  bool ok = Write(ois,stream);
     884  stream->Close();
     885  return(ok);
     886}
     887
     888////////////////////////////////////////////////////////////////////////////////
     889  bool BVMat::Read(const BText& filePath)
     890//Exporting method
     891////////////////////////////////////////////////////////////////////////////////
     892{
     893  BText dirPath = GetFilePath(filePath);
     894  BText fileName = GetFileName(filePath);
     895  BDirStreamHandler dir;
     896  if(!dir.Connect(dirPath,BStreamHandler::BSHOM_READ,true)) { return(false); }
     897  BStream* stream = dir.Open(fileName, fileName, -1);
     898  BOisLoader ois;
     899  int len;
     900  stream->Read(&len, sizeof(int), 1);
     901  ois.control_.oisEngine_.oisVersion_.PutLength(len);
     902  stream->Read( ois.control_.oisEngine_.oisVersion_.Buffer(), 1, len+1);
     903  stream->Read(&ois.control_.machine_.isLittleEndian_, sizeof(bool), 1);
     904  stream->Read(&ois.options_.compressor_.serialization_.engine_, sizeof(BOis::BSerialEngine), 1);
     905  stream->Read(&ois.options_.compressor_.serialization_.minSizeCmprs_, sizeof(int), 1);
     906  stream->Read(&ois.options_.compressor_.serialization_.level_, sizeof(int), 1);
     907  bool ok = Read(ois,stream);
     908  stream->Close();
     909  return(ok);
     910}
  • tol/btol/vmatrix_type/vmatgra.cpp

    rdb454cd rf661cb9  
    27042704}
    27052705
     2706//--------------------------------------------------------------------
     2707DeclareContensClass(BDat, BDatTemporary, BDatVMatWriteFile);
     2708DefExtOpr(1, BDatVMatWriteFile, "VMatWriteFile", 2, 2,
     2709  "Text VMatrix",
     2710  "(Text filePath, VMatrix V)",
     2711  I2("Writes a virtual matrix into a binary file.",
     2712     "Escribe una matriz virtual en un fichero binario."),
     2713    BOperClassify::MatrixAlgebra_);
     2714//--------------------------------------------------------------------
     2715void BDatVMatWriteFile::CalcContens()
     2716//--------------------------------------------------------------------
     2717{
     2718  contens_=VMat(Arg(2)).Write(Text(Arg(1)));
     2719}
     2720
     2721//--------------------------------------------------------------------
     2722DeclareContensClass(BVMat, BVMatTemporary, BVMatReadFile);
     2723DefExtOpr(1, BVMatReadFile,  "VMatReadFile", 1, 1, "Text",
     2724  "(Text filePath)",
     2725  I2("Reads a virtual matrix from a binary file.",
     2726     "Lee una matriz virtual desde un fichero binario."),
     2727BOperClassify::MatrixAlgebra_);
     2728//--------------------------------------------------------------------
     2729void BVMatReadFile::CalcContens()
     2730//--------------------------------------------------------------------
     2731{
     2732  contens_.Read(Text(Arg(1)));
     2733}
     2734
    27062735/*
    27072736//--------------------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.