Xpace
result.h
Go to the documentation of this file.
1 
2 
3 /**********************************************************//**
4  **
5  ** @file result/hdr/result.h
6  **
7  ** Copyright (C) 2012 Xpace, LLC. All rights reserved.
8  **
9  ** www.xpace.net
10  **
11  **************************************************************/
12 
13 #ifndef XPACE_RESULT_H
14 #define XPACE_RESULT_H
15 
16 #include <vector>
17 
18 #include "base/types.h"
19 
20 #include "result/result_c.h"
21 
22 namespace Xpace
23 {
25  {
26  public:
28  ();
29 
31  (const std::vector<String>& colConfigs);
32 
33  #if defined(XPACE_TABLE_H)
35  (Table* table,
36  const String& query);
37  #endif
38 
39  byte* alloc
40  (size_t len);
41 
42  template <typename T>
43  void set
44  (const T& t);
45 
46  void newDoc
47  ();
48 
50  ();
51 
52  private:
53  enum { PAGE_INC = 256 };
54  enum { PAGE_SIZE = 65536 };
55 
56  Xpace_Result_Page* new_page
57  ();
58 
60  };
61 
62  // ==========================================================
63  // ==========================================================
64  // ==========================================================
65 
66  inline
68  (size_t len)
69  {
70  Xpace_Result_Page* page(&result.pages[result.pageCount - 1]);
71  if (page->end + len > PAGE_SIZE)
72  page = new_page();
73  byte* ret(&page->buf[page->end]);
74  page->end += narrow_to<uint>(len);
75  return ret;
76  }
77 
78  template <typename T>
79  inline
80  void TableResult::set
81  (const T& t)
82  {
83  *reinterpret_cast<T*>(alloc(sizeof(T))) = t;
84  }
85 
86  inline
88  ()
89  {
90  ++result.docCount;
91  }
92 
93  inline
95  ()
96  {
97  return result;
98  }
99 }
100 
101 #endif
102 
A low-level data holder.
Definition: types_c.h:82
A string, Unicode UTF-16 and reference-counted.
Definition: types.h:269
uint const Xpace_Char8 size_t len
Definition: table_c.h:180
Xpace_Table_Result get()
Definition: result.h:95
byte * alloc(size_t len)
Definition: result.h:68
void newDoc()
Definition: result.h:88
Xpace_StoreAccess Xpace_Table * result
Definition: table_c.h:42
void set(const T &t)
Definition: result.h:81
Xpace project main namespace
Definition: datetime.h:18
uchar byte
Definition: types.h:74

current as of Wed Jun 10 2026 12:00:05