summaryrefslogtreecommitdiff
path: root/dbgrid/request.cpp
blob: 1777cf05babf6fb6e5b57ab3daaf6138d697232f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// dbgrid/request.cpp

/**
*    Copyright (C) 2008 10gen Inc.
*  
*    This program is free software: you can redistribute it and/or  modify
*    it under the terms of the GNU Affero General Public License, version 3,
*    as published by the Free Software Foundation.
*  
*    This program is distributed in the hope that it will be useful,
*    but WITHOUT ANY WARRANTY; without even the implied warranty of
*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*    GNU Affero General Public License for more details.
*  
*    You should have received a copy of the GNU Affero General Public License
*    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#include "stdafx.h"
#include "../grid/message.h"
#include "../db/dbmessage.h"
#include "connpool.h"

void queryOp(Message& m, MessagingPort& p) {
  DbMessage d(m);
  const char *ns = d.getns();

  cout << "TEMP: " << ns << endl;

  ScopedDbConnection dbcon("localhost");
  DBClientConnection &c = dbcon.conn();

  Message response;
  bool ok = c.port().call(m, response);
  uassert("dbgrid: error calling dbd", ok);
//p.reply

  dbcon.done();
}

void writeOp(int op, Message& m, MessagingPort& p) {
  DbMessage d(m);
  const char *ns = d.getns();

  while( d.moreJSObjs() ) {
    JSObj js = d.nextJsObj();
    const char *ns = d.getns();
    assert(*ns);
    //
    //		setClient(ns);
    //		ss << ns;
    //		theDataFileMgr.insert(ns, (void*) js.objdata(), js.objsize());
    //		logOp("i", ns, js);
  }
}

void processRequest(Message& m, MessagingPort& p) {
    int op = m.data->operation();
    if( op == dbQuery ) { 
        queryOp(m,p);
    }
    else {
        writeOp(op, m, p);
    }
}