libMesh
Public Member Functions | Private Attributes | List of all members
libMesh::RBDataSerialization::RBSCMEvaluationSerialization Class Reference

This class serializes an RBSCMEvaluation object using the Cap'n Proto library. More...

#include <rb_data_serialization.h>

Public Member Functions

 RBSCMEvaluationSerialization (RBSCMEvaluation &rb_eval)
 Initialize a new buffer using the structure from the Cap'n'Proto schema described in rb_data.capnp. More...
 
 RBSCMEvaluationSerialization (RBSCMEvaluationSerialization &&)=default
 Special functions. More...
 
 RBSCMEvaluationSerialization (const RBSCMEvaluationSerialization &)=default
 
RBSCMEvaluationSerializationoperator= (const RBSCMEvaluationSerialization &)=delete
 
RBSCMEvaluationSerializationoperator= (RBSCMEvaluationSerialization &&)=delete
 
virtual ~RBSCMEvaluationSerialization ()
 
void write_to_file (const std::string &path, bool use_packing=false)
 Write the Cap'n'Proto buffer to disk. More...
 

Private Attributes

RBSCMEvaluation_rb_scm_eval
 The RBEvaluation object that will be written to disk. More...
 

Detailed Description

This class serializes an RBSCMEvaluation object using the Cap'n Proto library.

Definition at line 191 of file rb_data_serialization.h.

Constructor & Destructor Documentation

◆ RBSCMEvaluationSerialization() [1/3]

libMesh::RBDataSerialization::RBSCMEvaluationSerialization::RBSCMEvaluationSerialization ( RBSCMEvaluation rb_eval)

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

Definition at line 217 of file rb_data_serialization.C.

218  :
219  _rb_scm_eval(rb_scm_eval)
220 {
221 }
RBSCMEvaluation & _rb_scm_eval
The RBEvaluation object that will be written to disk.

◆ RBSCMEvaluationSerialization() [2/3]

libMesh::RBDataSerialization::RBSCMEvaluationSerialization::RBSCMEvaluationSerialization ( RBSCMEvaluationSerialization &&  )
default

Special functions.

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

◆ RBSCMEvaluationSerialization() [3/3]

libMesh::RBDataSerialization::RBSCMEvaluationSerialization::RBSCMEvaluationSerialization ( const RBSCMEvaluationSerialization )
default

◆ ~RBSCMEvaluationSerialization()

libMesh::RBDataSerialization::RBSCMEvaluationSerialization::~RBSCMEvaluationSerialization ( )
virtualdefault

Member Function Documentation

◆ operator=() [1/2]

RBSCMEvaluationSerialization& libMesh::RBDataSerialization::RBSCMEvaluationSerialization::operator= ( const RBSCMEvaluationSerialization )
delete

◆ operator=() [2/2]

RBSCMEvaluationSerialization& libMesh::RBDataSerialization::RBSCMEvaluationSerialization::operator= ( RBSCMEvaluationSerialization &&  )
delete

◆ write_to_file()

void libMesh::RBDataSerialization::RBSCMEvaluationSerialization::write_to_file ( const std::string &  path,
bool  use_packing = false 
)

Write the Cap'n'Proto buffer to disk.

If use_packing is true, the file is written using the "packed" scheme, which can reduce the filesize on disk.

Definition at line 225 of file rb_data_serialization.C.

References _rb_scm_eval, libMesh::RBDataSerialization::add_rb_scm_evaluation_data_to_builder(), libMesh::ParallelObject::comm(), and TIMPI::Communicator::rank().

Referenced by main().

226 {
227  LOG_SCOPE("write_to_file()", "RBSCMEvaluationSerialization");
228 
229  if (_rb_scm_eval.comm().rank() == 0)
230  {
231  capnp::MallocMessageBuilder message;
232 
233  RBData::RBSCMEvaluation::Builder rb_scm_eval_builder =
234  message.initRoot<RBData::RBSCMEvaluation>();
235 
237 
238  int fd = open(path.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0664);
239  libmesh_error_msg_if(!fd, "Error opening a write-only file descriptor to " + path);
240 
241  if(use_packing)
242  capnp::writePackedMessageToFd(fd, message);
243  else
244  capnp::writeMessageToFd(fd, message);
245 
246  int error = close(fd);
247  libmesh_error_msg_if(error, "Error closing a write-only file descriptor to " + path);
248  }
249 }
processor_id_type rank() const
const Parallel::Communicator & comm() const
RBSCMEvaluation & _rb_scm_eval
The RBEvaluation object that will be written to disk.
void add_rb_scm_evaluation_data_to_builder(RBSCMEvaluation &rb_scm_eval, RBData::RBSCMEvaluation::Builder &rb_scm_eval_builder)
Add data for an RBSCMEvaluation to the builder.

Member Data Documentation

◆ _rb_scm_eval

RBSCMEvaluation& libMesh::RBDataSerialization::RBSCMEvaluationSerialization::_rb_scm_eval
private

The RBEvaluation object that will be written to disk.

Definition at line 225 of file rb_data_serialization.h.

Referenced by write_to_file().


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