libMesh
Loading...
Searching...
No Matches
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.
 
 RBSCMEvaluationSerialization (RBSCMEvaluationSerialization &&)=default
 Special functions.
 
 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.
 

Private Attributes

RBSCMEvaluation_rb_scm_eval
 The RBEvaluation object that will be written to disk.
 

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.

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
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.

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

Referenced by main().

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: