00001 00007 00008 00013 00015 typedef Key Key; 00016 00018 typedef KeyPair KeyPair; 00019 00021 typedef KeySet KeySet; 00022 00024 typedef KeyVector KeyVector; 00025 00027 typedef KeyVectorVector KeyVectorVector; 00028 00030 typedef KeyPairVector KeyPairVector; 00031 00033 typedef KeyPairSet KeyPairSet; 00034 00036 typedef KeyIterator KeyIterator; 00037 00039 typedef KeyPairIterator KeyPairIterator; 00040 00042 00043 00044 00049 00052 const Key Epsilon=0; 00053 00055 KeyPair *define_keypair( Key s1, Key s2 ); 00056 00058 KeyPair *define_keypair( Key s ); 00059 00061 Key get_input_key( KeyPair *s ); 00062 00064 Key get_output_key( KeyPair *s ); 00065 00067 00068 00073 00075 KeySet *create_empty_key_set(); 00076 00078 KeySet *insert_key( Key s, KeySet *Si ); 00079 00081 bool has_key( Key s, KeySet *Si ); 00082 00084 KeyPairSet *create_empty_keypair_set(); 00085 00087 KeyPairSet *insert_keypair( KeyPair *p, KeyPairSet *Pi ); 00088 00090 bool has_keypair( KeyPair *p, KeyPairSet *Pi ); 00091 00093 00094 00095 00100 00102 KeyIterator begin_sigma_key( KeySet *Si ); 00103 00105 KeyIterator end_sigma_key( KeySet *Si ); 00106 00108 size_t size_sigma_key( KeySet *Si ); 00109 00111 Key get_sigma_key( KeyIterator si ); 00112 00114 KeyPairIterator begin_pi_key( KeyPairSet *Pi ); 00115 00117 KeyPairIterator end_pi_key( KeyPairSet *Pi ); 00118 00120 size_t size_pi_key( KeyPairSet *Pi ); 00121 00123 KeyPair *get_pi_keypair( KeyPairIterator pi ); 00124 00126 00127 // end of group KeyLayer 00129 00130 00131 char * key_vector_to_pairstring( KeyVector * kv, KeyTable * kt ); 00132 char * key_pair_vector_to_pairstring( KeyPairVector * kv, KeyTable * kt );