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
 
struct  JsonWriteOptions
 
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
}
 deprecated, use cif::WriteOptions instead More...
 

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, int check_level=1)
 
template<typename Input >
size_t parse_one_block (Document &d, Input &&in)
 
Document read_file (const std::string &filename, int check_level=1)
 
Document read_memory (const char *data, size_t size, const char *name, int check_level=1)
 
Document read_cstream (std::FILE *f, size_t bufsize, const char *name, int check_level=1)
 
Document read_istream (std::istream &is, size_t bufsize, const char *name, int check_level=1)
 
template<typename Input >
bool try_parse (Input &&in, std::string *msg)
 
template<typename T >
Document read (T &&input, int check_level=1)
 
template<typename T >
bool check_syntax (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)
 
void check_empty_loops (const cif::Block &block, const std::string &source)
 
bool is_text_field (const std::string &val)
 
std::string quote (std::string v)
 
GEMMI_DLL Document read_mmjson_insitu (char *buffer, std::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)
 
Document read_string (const std::string &data, int check_level=1)
 
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())
 
GEMMI_DLL void write_json_to_stream (std::ostream &os, const Document &doc, const JsonWriteOptions &options)
 
void write_mmjson_to_stream (std::ostream &os, const Document &doc)
 

Typedef Documentation

◆ Pair

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

Definition at line 120 of file cifdoc.hpp.

Enumeration Type Documentation

◆ ItemType

Enumerator
Pair 
Loop 
Frame 
Comment 
Erased 

Definition at line 36 of file cifdoc.hpp.

◆ Style

deprecated, use cif::WriteOptions instead

Enumerator
Simple 
NoBlankLines 
PreferPairs 
Pdbx 
Indent35 
Aligned 

Definition at line 15 of file to_cif.hpp.

Function Documentation

◆ error_message()

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

Definition at line 151 of file cif.hpp.

◆ parse_input()

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

Definition at line 267 of file cif.hpp.

◆ read_input()

template<typename Input >
Document gemmi::cif::read_input ( Input &&  in,
int  check_level = 1 
)

Definition at line 271 of file cif.hpp.

◆ parse_one_block()

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

Definition at line 290 of file cif.hpp.

◆ read_file()

Document gemmi::cif::read_file ( const std::string &  filename,
int  check_level = 1 
)
inline

Definition at line 305 of file cif.hpp.

◆ read_memory()

Document gemmi::cif::read_memory ( const char data,
size_t  size,
const char name,
int  check_level = 1 
)
inline

Definition at line 310 of file cif.hpp.

◆ read_cstream()

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

Definition at line 315 of file cif.hpp.

◆ read_istream()

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

Definition at line 320 of file cif.hpp.

◆ try_parse()

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

Definition at line 335 of file cif.hpp.

◆ read()

template<typename T >
Document gemmi::cif::read ( T &&  input,
int  check_level = 1 
)

Definition at line 348 of file cif.hpp.

◆ check_syntax()

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

Definition at line 357 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 367 of file cif.hpp.

◆ char_table()

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

Definition at line 44 of file cifdoc.hpp.

◆ assert_tag()

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

Definition at line 64 of file cifdoc.hpp.

◆ ensure_mmcif_category()

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

Definition at line 69 of file cifdoc.hpp.

◆ is_null()

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

Definition at line 76 of file cifdoc.hpp.

◆ as_string() [1/2]

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

Definition at line 80 of file cifdoc.hpp.

◆ as_string() [2/2]

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

Definition at line 92 of file cifdoc.hpp.

◆ as_char()

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

Definition at line 96 of file cifdoc.hpp.

◆ as_int() [1/2]

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

Definition at line 107 of file cifdoc.hpp.

◆ as_int() [2/2]

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

Definition at line 111 of file cifdoc.hpp.

◆ as_any() [1/4]

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

Definition at line 116 of file cifdoc.hpp.

◆ as_any() [2/4]

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

Definition at line 117 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 1105 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 1110 of file cifdoc.hpp.

◆ check_for_missing_values()

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

Definition at line 1123 of file cifdoc.hpp.

◆ check_for_duplicates()

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

Definition at line 1129 of file cifdoc.hpp.

◆ check_empty_loops()

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

Definition at line 1164 of file cifdoc.hpp.

◆ is_text_field()

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

Definition at line 1175 of file cifdoc.hpp.

◆ quote()

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

Definition at line 1180 of file cifdoc.hpp.

◆ read_mmjson_insitu()

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

◆ read_mmjson_file()

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

Definition at line 19 of file json.hpp.

◆ read_mmjson()

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

Definition at line 25 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.

◆ read_string()

Document gemmi::cif::read_string ( const std::string &  data,
int  check_level = 1 
)
inline

Definition at line 23 of file read_cif.hpp.

◆ write_text_field()

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

Definition at line 124 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 132 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 151 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 203 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 241 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 265 of file to_cif.hpp.

◆ write_json_to_stream()

GEMMI_DLL void gemmi::cif::write_json_to_stream ( std::ostream &  os,
const Document doc,
const JsonWriteOptions options 
)

◆ write_mmjson_to_stream()

void gemmi::cif::write_mmjson_to_stream ( std::ostream &  os,
const Document doc 
)
inline

Definition at line 47 of file to_json.hpp.