monotone

monotone Mtn Source Tree

Root/vocab_terms.hh

1// copyright (C) 2002, 2003 graydon hoare <graydon@pobox.com>
2// all rights reserved.
3// licensed to the public under the terms of the GNU GPL (>= 2)
4// see the file COPYING for details
5
6// this fragment is included into both vocab.hh and vocab.cc,
7// in order to facilitate external instantiation of most of the
8// vocabulary, minimize code duplication, speed up compilation, etc.
9
10ATOMIC_NOVERIFY(external); // "external" string in unknown system charset
11ATOMIC_NOVERIFY(utf8); // unknown string in UTF8 charset
12ATOMIC(ace); // unknown string in ACE form
13
14ATOMIC_NOVERIFY(id); // hash of data
15ATOMIC_NOVERIFY(data); // meaningless blob
16ATOMIC_NOVERIFY(delta); // xdelta between 2 datas
17ATOMIC_NOVERIFY(inodeprint); // fingerprint of an inode
18
19ATOMIC(cert_name); // symbol-of-your-choosing
20ATOMIC_NOVERIFY(cert_value); // symbol-of-your-choosing
21
22// some domains: "database" (+ default_server, default_pattern),
23// server_key (+ servername/key)
24// branch_alias (+ short form/long form)
25// trust_seed (+ branch/seed)
26ATOMIC_NOVERIFY(var_domain); // symbol-of-your-choosing
27ATOMIC_NOVERIFY(var_name); // symbol-of-your-choosing
28ATOMIC_NOVERIFY(var_value); // symbol-of-your-choosing
29
30ATOMIC(rsa_keypair_id); // keyname@domain.you.own
31ATOMIC_NOVERIFY(rsa_pub_key); // some nice numbers
32ATOMIC_NOVERIFY(rsa_priv_key); // some nice numbers
33ATOMIC_NOVERIFY(rsa_sha1_signature); // some other nice numbers
34ATOMIC_NOVERIFY(rsa_oaep_sha_data);
35
36ATOMIC(netsync_session_key); // key for netsync session HMAC
37ATOMIC(netsync_hmac_value); // 160-bit SHA-1 HMAC
38
39DECORATE(revision); // thing associated with a revision
40DECORATE(manifest); // thing associated with a manifest
41DECORATE(file); // thing associated with a file
42DECORATE(key); // thing associated with a key
43DECORATE(epoch); // thing associated with an epoch
44
45ENCODING(gzip); // thing which is gzipped
46ENCODING(hexenc); // thing which is hex-encoded
47ENCODING(base64); // thing which is base64-encoded
48ENCODING(arc4); // thing which is arc4-encrypted
49
50ATOMIC_NOVERIFY(prefix); // raw encoding of a merkle tree prefix
51ATOMIC_NOVERIFY(merkle); // raw encoding of a merkle tree node
52
53// instantiate those bits of the template vocabulary actually in use.
54
55EXTERN template class hexenc<id>;
56EXTERN template class revision< hexenc<id> >;
57EXTERN template class manifest< hexenc<id> >;
58EXTERN template class file< hexenc<id> >;
59EXTERN template class key< hexenc<id> >;
60EXTERN template class epoch< hexenc<id> >;
61
62EXTERN template class hexenc<inodeprint>;
63
64EXTERN template class hexenc<data>;
65EXTERN template class epoch< hexenc<data> >;
66
67EXTERN template class gzip<data>;
68EXTERN template class base64< gzip<data> >;
69
70EXTERN template class revision< data >;
71EXTERN template class manifest< data >;
72EXTERN template class file< data >;
73
74EXTERN template class gzip<delta>;
75EXTERN template class base64< gzip<delta> >;
76
77EXTERN template class manifest< delta >;
78EXTERN template class file< delta >;
79
80EXTERN template class arc4<rsa_priv_key>;
81EXTERN template class base64< arc4<rsa_priv_key> >;
82EXTERN template class base64< rsa_pub_key >;
83EXTERN template class base64< rsa_sha1_signature >;
84EXTERN template class hexenc< rsa_sha1_signature >;
85EXTERN template class base64< cert_value >;
86
87EXTERN template class base64< var_name >;
88EXTERN template class base64< var_value >;
89
90EXTERN template class hexenc<prefix>;
91EXTERN template class base64<merkle>;
92EXTERN template class base64<data>;
93
94// instantiate those bits of the stream operator vocab (again) actually in
95// use. "again" since stream operators are friends, not members.
96
97EXTERN template std::ostream & operator<< <>(std::ostream &, hexenc<id> const &);
98EXTERN template std::ostream & operator<< <>(std::ostream &, revision< hexenc<id> > const &);
99EXTERN template std::ostream & operator<< <>(std::ostream &, manifest< hexenc<id> > const &);
100EXTERN template std::ostream & operator<< <>(std::ostream &, file< hexenc<id> > const &);
101EXTERN template std::ostream & operator<< <>(std::ostream &, epoch< hexenc<id> > const &);
102
103EXTERN template std::ostream & operator<< <>(std::ostream &, hexenc<inodeprint> const &);
104
105EXTERN template std::ostream & operator<< <>(std::ostream &, hexenc<data> const &);
106EXTERN template std::ostream & operator<< <>(std::ostream &, epoch< hexenc<data> > const &);
107
108EXTERN template std::ostream & operator<< <>(std::ostream &, gzip<data> const &);
109EXTERN template std::ostream & operator<< <>(std::ostream &, base64< gzip<data> > const &);
110EXTERN template std::ostream & operator<< <>(std::ostream &, revision< base64< gzip<data> > > const &);
111EXTERN template std::ostream & operator<< <>(std::ostream &, manifest< base64< gzip<data> > > const &);
112EXTERN template std::ostream & operator<< <>(std::ostream &, file< base64< gzip<data> > > const &);
113
114EXTERN template std::ostream & operator<< <>(std::ostream &, gzip<delta> const &);
115EXTERN template std::ostream & operator<< <>(std::ostream &, base64< gzip<delta> > const &);
116EXTERN template std::ostream & operator<< <>(std::ostream &, manifest< base64< gzip<delta> > > const &);
117EXTERN template std::ostream & operator<< <>(std::ostream &, file< base64< gzip<delta> > > const &);
118
119EXTERN template std::ostream & operator<< <>(std::ostream &, arc4<rsa_priv_key> const &);
120EXTERN template std::ostream & operator<< <>(std::ostream &, base64< arc4<rsa_priv_key> > const &);
121EXTERN template std::ostream & operator<< <>(std::ostream &, base64< rsa_pub_key > const &);
122EXTERN template std::ostream & operator<< <>(std::ostream &, base64< rsa_sha1_signature > const &);
123EXTERN template std::ostream & operator<< <>(std::ostream &, hexenc< rsa_sha1_signature > const &);
124EXTERN template std::ostream & operator<< <>(std::ostream &, base64< cert_value > const &);
125
126EXTERN template std::ostream & operator<< <>(std::ostream &, hexenc<prefix> const &);
127EXTERN template std::ostream & operator<< <>(std::ostream &, base64<merkle> const &);

Archive Download this file

Branches

Tags

Quick Links:     www.monotone.ca    -     Downloads    -     Documentation    -     Wiki    -     Code Forge    -     Build Status