Gemmi C++ API
Loading...
Searching...
No Matches
Classes | Typedefs | Enumerations | Functions
gemmi::cif Namespace Reference

Classes

struct  Action
 
struct  Action< rules::datablockname >
 
struct  Action< rules::endframe >
 
struct  Action< rules::framename >
 
struct  Action< rules::item_tag >
 
struct  Action< rules::item_value >
 
struct  Action< rules::loop >
 
struct  Action< rules::loop_tag >
 
struct  Action< rules::loop_value >
 
struct  Action< rules::str_global >
 
struct  Action< rules::str_loop >
 
struct  Block
 
class  BufOstream
 std::ostream with buffering. More...
 
struct  CheckAction
 
struct  CheckAction< rules::missing_value >
 
class  Column
 
struct  CommentArg
 
struct  Ddl
 Represents DDL1 or DDL2 dictionary (ontology). More...
 
struct  Document
 
struct  FrameArg
 
struct  Item
 
struct  ItemSpan
 
class  JsonWriter
 
struct  Loop
 
struct  LoopArg
 
struct  Table
 
struct  WriteOptions
 

Typedefs

using Pair = std::array< std::string, 2 >
 

Enumerations

enum class  ItemType : unsigned char {
  Pair , Loop , Frame , Comment ,
  Erased
}
 
enum class  Style {
  Simple , NoBlankLines , PreferPairs , Pdbx ,
  Indent35 , Aligned
}
 

Functions

template<typename Rule >
const std::string & error_message ()
 
template<typename Input >
void parse_input (Document &d, Input &&in)
 
template<typename Input >
Document read_input (Input &&in)
 
template<typename Input >
size_t parse_one_block (Document &d, Input &&in)
 
Document read_file (const std::string &filename)
 
Document read_string (const std::string &data)
 
Document read_memory (const char *data, size_t size, const char *name)
 
Document read_cstream (std::FILE *f, size_t bufsize, const char *name)
 
Document read_istream (std::istream &is, size_t bufsize, const char *name)
 
template<typename Input >
bool check_syntax (Input &&in, std::string *msg)
 
template<typename T >
Document read (T &&input)
 
template<typename T >
bool check_syntax_any (T &&input, std::string *msg)
 
template<typename T >
size_t read_one_block (Document &d, T &&input, size_t limit)
 
uint8_t char_table (char c)
 
void assert_tag (const std::string &tag)
 
void ensure_mmcif_category (std::string &cat)
 
bool is_null (const std::string &value)
 
std::string as_string (const std::string &value)
 
std::string as_string (const std::string *value)
 
char as_char (const std::string &value, char null)
 
int as_int (const std::string &str)
 
int as_int (const std::string &str, int null)
 
int as_any (const std::string &s, int null)
 
char as_any (const std::string &s, char null)
 
void cif_fail (const std::string &source, const Block &b, const Item &item, const std::string &s)
 
void check_for_missing_values_in_block (const Block &block, const std::string &source)
 
void check_for_missing_values (const Document &d)
 
void check_for_duplicates (const Document &d)
 
bool is_text_field (const std::string &val)
 
std::string quote (std::string v)
 
std::string json_type_as_string (sajson::type t)
 
std::string as_cif_value (const sajson::value &val)
 
void fill_document_from_sajson (Document &d, const sajson::document &s)
 
Document read_mmjson_insitu (char *buffer, size_t size, const std::string &name="mmJSON")
 
Document read_mmjson_file (const std::string &path)
 
template<typename T >
Document read_mmjson (T &&input)
 
double as_number (const std::string &s, double nan=NAN)
 
bool is_numb (const std::string &s)
 
float as_any (const std::string &s, float null)
 
double as_any (const std::string &s, double null)
 
void write_text_field (BufOstream &os, const std::string &value)
 
void write_out_pair (BufOstream &os, const std::string &name, const std::string &value, WriteOptions options)
 
void write_out_loop (BufOstream &os, const Loop &loop, WriteOptions options)
 
void write_out_item (BufOstream &os, const Item &item, WriteOptions options)
 
void write_cif_block_to_stream (std::ostream &os_, const Block &block, WriteOptions options=WriteOptions())
 
void write_cif_to_stream (std::ostream &os, const Document &doc, WriteOptions options=WriteOptions())
 

Typedef Documentation

◆ Pair

using gemmi::cif::Pair = typedef std::array<std::string, 2>

Definition at line 121 of file cifdoc.hpp.

Enumeration Type Documentation

◆ ItemType

Enumerator
Pair 
Loop 
Frame 
Comment 
Erased 

Definition at line 37 of file cifdoc.hpp.

◆ Style

Enumerator
Simple 
NoBlankLines 
PreferPairs 
Pdbx 
Indent35 
Aligned 

Definition at line 14 of file to_cif.hpp.

Function Documentation

◆ error_message()

template<typename Rule >
const std::string & gemmi::cif::error_message ( )

Definition at line 153 of file cif.hpp.

◆ parse_input()

template<typename Input >
void gemmi::cif::parse_input ( Document d,
Input &&  in 
)

Definition at line 269 of file cif.hpp.

◆ read_input()

template<typename Input >
Document gemmi::cif::read_input ( Input &&  in)

Definition at line 273 of file cif.hpp.

◆ parse_one_block()

template<typename Input >
size_t gemmi::cif::parse_one_block ( Document d,
Input &&  in 
)

Definition at line 283 of file cif.hpp.

◆ read_file()

Document gemmi::cif::read_file ( const std::string &  filename)
inline

Definition at line 298 of file cif.hpp.

◆ read_string()

Document gemmi::cif::read_string ( const std::string &  data)
inline

Definition at line 303 of file cif.hpp.

◆ read_memory()

Document gemmi::cif::read_memory ( const char data,
size_t  size,
const char name 
)
inline

Definition at line 308 of file cif.hpp.

◆ read_cstream()

Document gemmi::cif::read_cstream ( std::FILE *  f,
size_t  bufsize,
const char name 
)
inline

Definition at line 313 of file cif.hpp.

◆ read_istream()

Document gemmi::cif::read_istream ( std::istream &  is,
size_t  bufsize,
const char name 
)
inline

Definition at line 318 of file cif.hpp.

◆ check_syntax()

template<typename Input >
bool gemmi::cif::check_syntax ( Input &&  in,
std::string *  msg 
)

Definition at line 333 of file cif.hpp.

◆ read()

template<typename T >
Document gemmi::cif::read ( T &&  input)

Definition at line 346 of file cif.hpp.

◆ check_syntax_any()

template<typename T >
bool gemmi::cif::check_syntax_any ( T &&  input,
std::string *  msg 
)

Definition at line 355 of file cif.hpp.

◆ read_one_block()

template<typename T >
size_t gemmi::cif::read_one_block ( Document d,
T &&  input,
size_t  limit 
)

Definition at line 365 of file cif.hpp.

◆ char_table()

uint8_t gemmi::cif::char_table ( char  c)
inline

Definition at line 45 of file cifdoc.hpp.

◆ assert_tag()

void gemmi::cif::assert_tag ( const std::string &  tag)
inline

Definition at line 65 of file cifdoc.hpp.

◆ ensure_mmcif_category()

void gemmi::cif::ensure_mmcif_category ( std::string &  cat)
inline

Definition at line 70 of file cifdoc.hpp.

◆ is_null()

bool gemmi::cif::is_null ( const std::string &  value)
inline

Definition at line 77 of file cifdoc.hpp.

◆ as_string() [1/2]

std::string gemmi::cif::as_string ( const std::string &  value)
inline

Definition at line 81 of file cifdoc.hpp.

◆ as_string() [2/2]

std::string gemmi::cif::as_string ( const std::string *  value)
inline

Definition at line 93 of file cifdoc.hpp.

◆ as_char()

char gemmi::cif::as_char ( const std::string &  value,
char  null 
)
inline

Definition at line 97 of file cifdoc.hpp.

◆ as_int() [1/2]

int gemmi::cif::as_int ( const std::string &  str)
inline

Definition at line 108 of file cifdoc.hpp.

◆ as_int() [2/2]

int gemmi::cif::as_int ( const std::string &  str,
int  null 
)
inline

Definition at line 112 of file cifdoc.hpp.

◆ as_any() [1/4]

int gemmi::cif::as_any ( const std::string &  s,
int  null 
)
inline

Definition at line 117 of file cifdoc.hpp.

◆ as_any() [2/4]

char gemmi::cif::as_any ( const std::string &  s,
char  null 
)
inline

Definition at line 118 of file cifdoc.hpp.

◆ cif_fail()

void gemmi::cif::cif_fail ( const std::string &  source,
const Block b,
const Item item,
const std::string &  s 
)
inline

Definition at line 1100 of file cifdoc.hpp.

◆ check_for_missing_values_in_block()

void gemmi::cif::check_for_missing_values_in_block ( const Block block,
const std::string &  source 
)
inline

Definition at line 1105 of file cifdoc.hpp.

◆ check_for_missing_values()

void gemmi::cif::check_for_missing_values ( const Document d)
inline

Definition at line 1118 of file cifdoc.hpp.

◆ check_for_duplicates()

void gemmi::cif::check_for_duplicates ( const Document d)
inline

Definition at line 1124 of file cifdoc.hpp.

◆ is_text_field()

bool gemmi::cif::is_text_field ( const std::string &  val)
inline

Definition at line 1157 of file cifdoc.hpp.

◆ quote()

std::string gemmi::cif::quote ( std::string  v)
inline

Definition at line 1162 of file cifdoc.hpp.

◆ json_type_as_string()

std::string gemmi::cif::json_type_as_string ( sajson::type  t)
inline

Definition at line 25 of file json.hpp.

◆ as_cif_value()

std::string gemmi::cif::as_cif_value ( const sajson::value &  val)
inline

Definition at line 39 of file json.hpp.

◆ fill_document_from_sajson()

void gemmi::cif::fill_document_from_sajson ( Document d,
const sajson::document &  s 
)
inline

Definition at line 55 of file json.hpp.

◆ read_mmjson_insitu()

Document gemmi::cif::read_mmjson_insitu ( char buffer,
size_t  size,
const std::string &  name = "mmJSON" 
)
inline

Definition at line 105 of file json.hpp.

◆ read_mmjson_file()

Document gemmi::cif::read_mmjson_file ( const std::string &  path)
inline

Definition at line 118 of file json.hpp.

◆ read_mmjson()

template<typename T >
Document gemmi::cif::read_mmjson ( T &&  input)

Definition at line 124 of file json.hpp.

◆ as_number()

double gemmi::cif::as_number ( const std::string &  s,
double  nan = NAN 
)
inline

Definition at line 19 of file numb.hpp.

◆ is_numb()

bool gemmi::cif::is_numb ( const std::string &  s)
inline

Definition at line 43 of file numb.hpp.

◆ as_any() [3/4]

float gemmi::cif::as_any ( const std::string &  s,
float  null 
)
inline

Definition at line 49 of file numb.hpp.

◆ as_any() [4/4]

double gemmi::cif::as_any ( const std::string &  s,
double  null 
)
inline

Definition at line 52 of file numb.hpp.

◆ write_text_field()

void gemmi::cif::write_text_field ( BufOstream os,
const std::string &  value 
)
inline

Definition at line 123 of file to_cif.hpp.

◆ write_out_pair()

void gemmi::cif::write_out_pair ( BufOstream os,
const std::string &  name,
const std::string &  value,
WriteOptions  options 
)
inline

Definition at line 131 of file to_cif.hpp.

◆ write_out_loop()

void gemmi::cif::write_out_loop ( BufOstream os,
const Loop loop,
WriteOptions  options 
)
inline

Definition at line 150 of file to_cif.hpp.

◆ write_out_item()

void gemmi::cif::write_out_item ( BufOstream os,
const Item item,
WriteOptions  options 
)
inline

Definition at line 202 of file to_cif.hpp.

◆ write_cif_block_to_stream()

void gemmi::cif::write_cif_block_to_stream ( std::ostream &  os_,
const Block block,
WriteOptions  options = WriteOptions() 
)
inline

Definition at line 240 of file to_cif.hpp.

◆ write_cif_to_stream()

void gemmi::cif::write_cif_to_stream ( std::ostream &  os,
const Document doc,
WriteOptions  options = WriteOptions() 
)
inline

Definition at line 264 of file to_cif.hpp.