23 unsigned int entry)
const
27 std::vector<unsigned int>::const_iterator intIter = form.
params(
entry).begin();
28 unsigned int keyIdx = 0U, aliasNum = 0U, clidNum = 0U;
30 if ((*intIter&0x0000FFFF) == 0) {
32 keyIdx = *intIter; ++intIter;
33 aliasNum = *intIter; ++intIter;
34 clidNum = *intIter; ++intIter;
37 const unsigned int keyPos = (
unsigned short)(*intIter>>16),
38 version = (
unsigned short)(*intIter&0x0000FFFF); ++intIter;
39 const unsigned int guidIdx = (
unsigned short)(*intIter>>16),
40 classIdx = (
unsigned short)(*intIter&0x0000FFFF); ++intIter;
41 const unsigned int prefixIdx = (
unsigned short)(*intIter>>16),
42 typeIdx = (
unsigned short)(*intIter&0x0000FFFF); ++intIter;
44 unsigned int tech = 514;
46 tech = *intIter; ++intIter;
48 unsigned int oid1 = *intIter; ++intIter;
50 keyIdx = *intIter; ++intIter;
51 aliasNum = *intIter; ++intIter;
52 clidNum = *intIter; ++intIter;
54 keyIdx = (*intIter>>16), aliasNum = ((*intIter&0x0000FFFF)>>8), clidNum = (*intIter&0x000000FF); ++intIter;
62 cntName += form.
map()[prefixIdx];
64 cntName += form.
map()[typeIdx];
69 cntName += pers.
m_token.substr(0, keyPos - 1) + form.
map()[keyIdx] + pers.
m_token.substr(keyPos - 1);
75 Guid clid(form.
map()[classIdx]);
80 unsigned int aliasCur = 0U, clidCur = 0U;
83 for (std::set<std::string>::const_iterator lastAlias = trans.
m_alias.begin();
84 aliasCur < aliasNum; ++aliasCur) {
85 lastAlias = trans.
m_alias.insert(lastAlias, form.
map()[keyIdx + aliasCur + 1]);
87 trans.
m_pClid = *intIter; ++intIter;
89 const std::vector<unsigned int>::const_iterator intLast = form.
params(
entry).end();
90 for (std::set<CLID>::const_iterator lastClid = trans.
m_clids.begin();
91 intIter != intLast && clidCur < clidNum; ++intIter, ++clidCur) {
92 lastClid = trans.
m_clids.insert(lastClid, *intIter);
95 for (; intIter != intLast; ++intIter) {
103 unsigned int entry)
const {
104 unsigned int tech = 0U, oid1 = 0U;
105 unsigned short guidIdx = 0U, classIdx = 0U, prefixIdx = 0U, typeIdx = 0U, keyPos = 0U;
110 for (std::vector<std::string>::const_iterator iter = form.
map().begin(), last = form.
map().end();
111 iter != last; ++iter, ++guidIdx) {
112 if (*iter ==
guid)
break;
114 if (guidIdx == form.
map().size()) {
119 for (std::vector<std::string>::const_iterator iter = form.
map().begin(), last = form.
map().end();
120 iter != last; ++iter, ++classIdx) {
121 if (*iter == clid)
break;
123 if (classIdx == form.
map().size()) {
129 std::string::size_type delim = pers.
m_token.find_first_of(
"_/(");
130 if (delim != std::string::npos) {
131 const std::string persComp1 = pers.
m_token.substr(0, delim + 1);
132 for (std::vector<std::string>::const_iterator iter = form.
map().begin(), last = form.
map().end();
133 iter != last; ++iter, ++prefixIdx) {
134 if (*iter == persComp1)
break;
136 if (prefixIdx == form.
map().size()) {
143 std::string::size_type delim = pers.
m_token.find_first_of(
"/()");
144 if (delim != std::string::npos) {
145 const std::string persComp2 = pers.
m_token.substr(0, delim + 1);
146 for (std::vector<std::string>::const_iterator iter = form.
map().begin(), last = form.
map().end();
147 iter != last; ++iter, ++typeIdx) {
148 if (*iter == persComp2)
break;
150 if (typeIdx == form.
map().size()) {
154 }
else if (pers.
m_token ==
"DataHeader") {
155 for (std::vector<std::string>::const_iterator iter = form.
map().begin(), last = form.
map().end();
156 iter != last; ++iter, ++typeIdx) {
157 if (*iter ==
"DataHeader")
break;
159 if (typeIdx == form.
map().size()) {
167 if (delim != std::string::npos) {
175 unsigned int version = 0x0000FFFFU;
179 unsigned int keyIdx = form.
map().size(), aliasNum = trans.
m_alias.size(), clidNum = trans.
m_clids.size();
180 if (keyIdx < 0x00010000U && aliasNum < 0x00000100U && clidNum < 0x00000100U) {
184 form.
insertParam((
unsigned int)(guidIdx) * 0x00010000U + (
unsigned int)(classIdx),
entry);
185 form.
insertParam((
unsigned int)(prefixIdx) * 0x00010000U + (
unsigned int)(typeIdx),
entry);
195 form.
insertParam(keyIdx * 0x00010000U + aliasNum * 0x00000100U + clidNum,
entry);
198 for (std::set<std::string>::const_iterator iter = trans.
m_alias.begin(),
199 last = trans.
m_alias.end(); iter != last; ++iter) {
203 for (std::set<CLID>::const_iterator iter = trans.
m_clids.begin(),
204 last = trans.
m_clids.end(); iter != last; ++iter) {
207 for (std::vector<SG::sgkey_t>::const_iterator iter = trans.
m_hashes.begin(),
208 last = trans.
m_hashes.end(); iter != last; ++iter) {
221 unsigned int entry = 1;
222 const unsigned int provSize = dhForm.
params(
entry)[0];
225 std::vector<DataHeaderElement_p5>::const_iterator pit = pers.
m_dataHeader.begin();
226 for (
unsigned int i = 0U;
i < provSize; ++
i, ++
it, ++pit) {
232 for (std::vector<DataHeaderElement_p5>::const_iterator last = pers.
m_dataHeader.end();
233 pit != last; ++
it, ++pit) {
247 unsigned int entry = 1;
255 for (std::vector<DataHeaderElement>::const_iterator
it = trans.
m_dataHeader.begin(),
264 const std::string&
key,
265 const std::string& strToken)
const