class_8h-source.html
来自「一个功能强大的内存数据库源代码,c++编写,有详细的注释」· HTML 代码 · 共 665 行 · 第 1/4 页
HTML
665 行
<a name="l00291"></a><a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm21">00291</a> oid_t tTree;00292 <a name="l00296"></a><a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm22">00296</a> size_t dbsSize;00297 <a name="l00301"></a><a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm23">00301</a> size_t appSize;00302 <a name="l00307"></a><a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm24">00307</a> size_t alignment;00308 <a name="l00312"></a><a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm25">00312</a> dbUDTComparator comparator;00313 <a name="l00317"></a><a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptors4">00317</a> <font class="keyword">enum</font> FieldAttributes { 00318 ComponentOfArray = 0x01,00319 HasArrayComponents = 0x02,00320 OneToOneMapping = 0x04,00321 Updated = 0x0800322 };00323 <font class="keywordtype">int</font> attr;00324 <a name="l00328"></a><a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm27">00328</a> <font class="keywordtype">int</font> oldDbsType;<a name="l00332"></a><a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm28">00332</a> <font class="keywordtype">int</font> oldDbsOffs;<a name="l00336"></a><a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm29">00336</a> <font class="keywordtype">int</font> oldDbsSize;00337 <a name="l00341"></a><a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm30">00341</a> <a class="code" href="classdbAnyMethodTrampoline.html">dbAnyMethodTrampoline</a>* method;00342 00346 void (*arrayAllocator)(<a class="code" href="classdbAnyArray.html">dbAnyArray</a>* array, <font class="keywordtype">void</font>* data, size_t length);00347 00348 00359 size_t calculateRecordSize(byte* base, size_t offs);00360 00370 size_t calculateNewRecordSize(byte* base, size_t offs);00371 00381 size_t convertRecord(byte* dst, byte* src, size_t offs);00382 00393 <font class="keywordtype">int</font> sizeWithoutOneField(<a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* field, 00394 byte* base, size_t& size);00395 00405 size_t copyRecordExceptOneField(<a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* field, 00406 byte* dst, byte* src, size_t offs); 00407 00418 size_t storeRecordFields(byte* dst, byte* src, size_t offs, <font class="keywordtype">bool</font> insert);00419 00427 <font class="keywordtype">void</font> markUpdatedFields(byte* dst, byte* src);00428 00436 <font class="keywordtype">void</font> fetchRecordFields(byte* dst, byte* src);00437 00446 <font class="keywordtype">void</font> adjustReferences(byte* record, size_t base, size_t size, <font class="keywordtype">long</font> shift);00447 00453 <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* find(<font class="keyword">const</font> <font class="keywordtype">char</font>* name);00454 <a name="l00459"></a><a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptora10">00459</a> <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* getFirstComponent() { 00460 <font class="keywordflow">return</font> components;00461 }00462 <a name="l00467"></a><a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptora11">00467</a> <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* getNextComponent(<a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* field) { 00468 <font class="keywordflow">if</font> (field != NULL) { 00469 field = field-><a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm0">next</a>;00470 <font class="keywordflow">if</font> (field == components) { 00471 <font class="keywordflow">return</font> NULL;00472 }00473 }00474 <font class="keywordflow">return</font> field;00475 }00476 <a name="l00480"></a><a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptora12">00480</a> <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>& operator, (<a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>& field) { 00481 <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* tail = field.<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm1">prev</a>;00482 tail-><a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm0">next</a> = <font class="keyword">this</font>;00483 prev-><a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm0">next</a> = &field;00484 field.<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm1">prev</a> = prev;00485 prev = tail;00486 <font class="keywordflow">return</font> *<font class="keyword">this</font>;00487 }00488 00489 <font class="keywordtype">void</font>* operator new(size_t size);00490 <font class="keywordtype">void</font> operator delete(<font class="keywordtype">void</font>* p);00491 00495 <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>& adjustOffsets(<font class="keywordtype">long</font> offs);00496 00506 <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>(<font class="keywordtype">char</font>* name, <font class="keywordtype">int</font> offs, <font class="keywordtype">int</font> size, <font class="keywordtype">int</font> indexType, 00507 <font class="keywordtype">char</font>* inverse = NULL,00508 <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* components = NULL);00509 00514 <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>(<font class="keywordtype">char</font>* name);00515 00519 ~<a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>();00520 };00521 00522 <a name="l00526"></a><a class="code" href="classdbTableDescriptor.html">00526</a> <font class="keyword">class </font>FASTDB_DLL_ENTRY dbTableDescriptor { 00527 <font class="keyword">friend</font> <font class="keyword">class </font>dbCompiler;00528 <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classdbDatabase.html">dbDatabase</a>;00529 <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classdbTable.html">dbTable</a>;00530 <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classdbAnyCursor.html">dbAnyCursor</a>;00531 <font class="keyword">friend</font> <font class="keyword">class </font>dbSubSql;00532 <font class="keyword">friend</font> <font class="keyword">class </font>dbHashTable;00533 <font class="keyword">friend</font> <font class="keyword">class </font>dbTtreeNode;00534 <font class="keyword">friend</font> <font class="keyword">class </font>dbServer;00535 <font class="keyword">friend</font> <font class="keyword">class </font>dbColumnBinding;00536 <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>;00537 <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classdbAnyContainer.html">dbAnyContainer</a>;00538 <font class="keyword">friend</font> <font class="keyword">class </font>dbCLI;00539 <font class="keyword">protected</font>:<a name="l00543"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn0">00543</a> dbTableDescriptor* next;00544 <font class="keyword">static</font> dbTableDescriptor* chain;00545 <a name="l00549"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn1">00549</a> dbTableDescriptor* nextDbTable; <font class="comment">// next table in the database</font>00550 <a name="l00554"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn2">00554</a> <font class="keywordtype">char</font>* name;00555 <a name="l00559"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn3">00559</a> oid_t tableId;00560 <a name="l00564"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn4">00564</a> <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* columns; 00565 <a name="l00569"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn5">00569</a> <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* hashedFields;00570 <a name="l00574"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn6">00574</a> <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* indexedFields;00575 <a name="l00579"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn7">00579</a> <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* inverseFields;00580 <a name="l00584"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn8">00584</a> <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* firstField;00585 <a name="l00589"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn9">00589</a> <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>** nextFieldLink;00590 <a name="l00594"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn10">00594</a> <a class="code" href="classdbDatabase.html">dbDatabase</a>* db;00595 <a name="l00599"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn11">00599</a> <font class="keywordtype">bool</font> fixedDatabase;00600 <a name="l00604"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn12">00604</a> <font class="keywordtype">bool</font> isStatic;00605 <a name="l00609"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn13">00609</a> size_t appSize;00610 <a name="l00614"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn14">00614</a> size_t fixedSize;00615 <a name="l00619"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn15">00619</a> size_t nFields;00620 <a name="l00624"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn16">00624</a> size_t nColumns;00625 <a name="l00629"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn17">00629</a> int4 autoincrementCount;00630 00631 <a name="l00637"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptorn18">00637</a> dbTableDescriptor* cloneOf;00638 00639 <a name="l00643"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptort0">00643</a> <font class="keyword">typedef</font> <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* (*describeFunc)();00644 describeFunc describeComponentsFunc;00645 00649 dbTableDescriptor* clone();00650 00654 size_t totalNamesLength();00655 00667 <font class="keywordtype">int</font> calculateFieldsAttributes(<a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* fieldsList, 00668 <font class="keywordtype">char</font> <font class="keyword">const</font>* prefix, <font class="keywordtype">int</font> offs, 00669 <font class="keywordtype">int</font> indexMask, <font class="keywordtype">int</font>& attr);00670 00679 <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* buildFieldsList(<a class="code" href="classdbTable.html">dbTable</a>* table, <font class="keywordtype">char</font> <font class="keyword">const</font>* prefix, <font class="keywordtype">int</font> prefixLen, <font class="keywordtype">int</font>& attr);00680 00681 <font class="keyword">public</font>:<a name="l00685"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptorp0">00685</a> <font class="keyword">static</font> <font class="keywordtype">int</font> initialAutoincrementCount;00686 00690 <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* findSymbol(<font class="keywordtype">char</font> <font class="keyword">const</font>* name);00691 00692 00696 <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* find(<font class="keywordtype">char</font> <font class="keyword">const</font>* name);00697 00698 <a name="l00703"></a><a class="code" href="classdbTableDescriptor.html#dbTableDescriptora2">00703</a> <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* getFirstField() { 00704 <font class="keywordflow">return</font> columns;00705 }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?