libMesh
Public Member Functions | Private Attributes | List of all members
libMesh::RBDataDeserialization::RBSCMEvaluationDeserialization Class Reference

This class de-serializes a RBSCMEvaluation object using the Cap'n Proto library. More...

#include <rb_data_deserialization.h>

Public Member Functions

 RBSCMEvaluationDeserialization (RBSCMEvaluation &trans_rb_eval)
 Initialize a new buffer using the structure from the Cap'n'Proto schema described in rb_data.capnp. More...
 
 RBSCMEvaluationDeserialization (RBSCMEvaluationDeserialization &&)=default
 Special functions. More...
 
 RBSCMEvaluationDeserialization (const RBSCMEvaluationDeserialization &)=default
 
RBSCMEvaluationDeserializationoperator= (const RBSCMEvaluationDeserialization &)=delete
 
RBSCMEvaluationDeserializationoperator= (RBSCMEvaluationDeserialization &&)=delete
 
virtual ~RBSCMEvaluationDeserialization ()
 
void read_from_file (const std::string &path)
 Write the Cap'n'Proto buffer to disk. More...
 

Private Attributes

RBSCMEvaluation_rb_scm_eval
 The RBSCMEvaluation object we will read into. More...
 

Detailed Description

This class de-serializes a RBSCMEvaluation object using the Cap'n Proto library.

Definition at line 187 of file rb_data_deserialization.h.

Constructor & Destructor Documentation

◆ RBSCMEvaluationDeserialization() [1/3]

libMesh::RBDataDeserialization::RBSCMEvaluationDeserialization::RBSCMEvaluationDeserialization ( RBSCMEvaluation trans_rb_eval)

Initialize a new buffer using the structure from the Cap'n'Proto schema described in rb_data.capnp.

Definition at line 230 of file rb_data_deserialization.C.

230  :
231  _rb_scm_eval(rb_scm_eval)
232 {}
RBSCMEvaluation & _rb_scm_eval
The RBSCMEvaluation object we will read into.

◆ RBSCMEvaluationDeserialization() [2/3]

libMesh::RBDataDeserialization::RBSCMEvaluationDeserialization::RBSCMEvaluationDeserialization ( RBSCMEvaluationDeserialization &&  )
default

Special functions.

  • This class contains a reference, so it can't be default copy/move-assigned.
  • The destructor is defaulted out of line.

◆ RBSCMEvaluationDeserialization() [3/3]

libMesh::RBDataDeserialization::RBSCMEvaluationDeserialization::RBSCMEvaluationDeserialization ( const RBSCMEvaluationDeserialization )
default

◆ ~RBSCMEvaluationDeserialization()

libMesh::RBDataDeserialization::RBSCMEvaluationDeserialization::~RBSCMEvaluationDeserialization ( )
virtualdefault

Member Function Documentation

◆ operator=() [1/2]

RBSCMEvaluationDeserialization& libMesh::RBDataDeserialization::RBSCMEvaluationDeserialization::operator= ( const RBSCMEvaluationDeserialization )
delete

◆ operator=() [2/2]

RBSCMEvaluationDeserialization& libMesh::RBDataDeserialization::RBSCMEvaluationDeserialization::operator= ( RBSCMEvaluationDeserialization &&  )
delete

◆ read_from_file()

void libMesh::RBDataDeserialization::RBSCMEvaluationDeserialization::read_from_file ( const std::string &  path)

Write the Cap'n'Proto buffer to disk.

Definition at line 236 of file rb_data_deserialization.C.

References _rb_scm_eval, and libMesh::RBDataDeserialization::load_rb_scm_evaluation_data().

Referenced by main().

237 {
238  LOG_SCOPE("read_from_file()", "RBSCMEvaluationDeserialization");
239 
240  int fd = open(path.c_str(), O_RDONLY);
241  libmesh_error_msg_if(!fd, "Couldn't open the buffer file: " + path);
242 
243  // Turn off the limit to the amount of data we can read in
244  capnp::ReaderOptions reader_options;
245  reader_options.traversalLimitInWords = std::numeric_limits<uint64_t>::max();
246 
247  std::unique_ptr<capnp::StreamFdMessageReader> message;
248  libmesh_try
249  {
250  message = std::make_unique<capnp::StreamFdMessageReader>(fd, reader_options);
251  }
252  libmesh_catch(...)
253  {
254  libmesh_error_msg("Failed to open capnp buffer");
255  }
256 
257  RBData::RBSCMEvaluation::Reader rb_scm_eval_reader =
258  message->getRoot<RBData::RBSCMEvaluation>();
259 
261  rb_scm_eval_reader);
262 
263  int error = close(fd);
264  libmesh_error_msg_if(error, "Error closing a read-only file descriptor: " + path);
265 }
RBSCMEvaluation & _rb_scm_eval
The RBSCMEvaluation object we will read into.
void load_rb_scm_evaluation_data(RBSCMEvaluation &rb_scm_eval, RBData::RBSCMEvaluation::Reader &rb_scm_eval_reader)
Load an SCM RB evaluation from a corresponding reader structure in the buffer.

Member Data Documentation

◆ _rb_scm_eval

RBSCMEvaluation& libMesh::RBDataDeserialization::RBSCMEvaluationDeserialization::_rb_scm_eval
private

The RBSCMEvaluation object we will read into.

Definition at line 219 of file rb_data_deserialization.h.

Referenced by read_from_file().


The documentation for this class was generated from the following files: