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...
 
virtual ~RBSCMEvaluationDeserialization ()
 Destructor. More...
 
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 163 of file rb_data_deserialization.h.

Constructor & Destructor Documentation

◆ RBSCMEvaluationDeserialization()

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 240 of file rb_data_deserialization.C.

240  :
241  _rb_scm_eval(rb_scm_eval)
242 {}

◆ ~RBSCMEvaluationDeserialization()

libMesh::RBDataDeserialization::RBSCMEvaluationDeserialization::~RBSCMEvaluationDeserialization ( )
virtual

Destructor.

Definition at line 244 of file rb_data_deserialization.C.

245 {}

Member Function Documentation

◆ 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 247 of file rb_data_deserialization.C.

248 {
249  LOG_SCOPE("read_from_file()", "RBSCMEvaluationDeserialization");
250 
251  int fd = open(path.c_str(), O_RDONLY);
252  if (!fd)
253  libmesh_error_msg("Couldn't open the buffer file: " + path);
254 
255  // Turn off the limit to the amount of data we can read in
256  capnp::ReaderOptions reader_options;
257  reader_options.traversalLimitInWords = std::numeric_limits<uint64_t>::max();
258 
259  std::unique_ptr<capnp::StreamFdMessageReader> message;
260  libmesh_try
261  {
262  message = libmesh_make_unique<capnp::StreamFdMessageReader>(fd, reader_options);
263  }
264  libmesh_catch(...)
265  {
266  libmesh_error_msg("Failed to open capnp buffer");
267  }
268 
269  RBData::RBSCMEvaluation::Reader rb_scm_eval_reader =
270  message->getRoot<RBData::RBSCMEvaluation>();
271 
273  rb_scm_eval_reader);
274 
275  int error = close(fd);
276  if (error)
277  libmesh_error_msg("Error closing a read-only file descriptor: " + path);
278 }

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

Referenced by main().

Member Data Documentation

◆ _rb_scm_eval

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

The RBSCMEvaluation object we will read into.

Definition at line 188 of file rb_data_deserialization.h.

Referenced by read_from_file().


The documentation for this class was generated from the following files:
libMesh::RBDataDeserialization::RBSCMEvaluationDeserialization::_rb_scm_eval
RBSCMEvaluation & _rb_scm_eval
The RBSCMEvaluation object we will read into.
Definition: rb_data_deserialization.h:188
libMesh::RBDataDeserialization::load_rb_scm_evaluation_data
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.
Definition: rb_data_deserialization.C:768