InfiniSQL  v0.1.2-alpha
Massive Scale Transaction Processing
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Operation.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 Mark Travis <mtravis15432+src@gmail.com>
3  * All rights reserved. No warranty, explicit or implicit, provided.
4  *
5  * This file is part of InfiniSQL(tm).
6 
7  * InfiniSQL is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License version 3
9  * as published by the Free Software Foundation.
10  *
11  * InfiniSQL is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with InfiniSQL. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
29 #ifndef INFINISQLOPERATION_H
30 #define INFINISQLOPERATION_H
31 
32 #include "gch.h"
33 #include "TransactionAgent.h"
34 
35 // usm: waiting for usm to reply, tasengines: waiting for replies
45 typedef struct
46 {
49  int64_t msgwaits;
50 } schemastruct;
51 
60 class Operation
61 {
62 public:
63  Operation(int typearg, class TransactionAgent *taarg, int64_t uid,
64  int64_t did);
65  virtual ~Operation();
66 
67  friend class TransactionAgent;
68 
69  //private:
75  void setbuiltincmd(int cmd);
81  void setDomainName(string name);
88  int64_t getid();
94  void handleOperation(class MessageUserSchema &msgrcvref);
95 
96  int type;
98  int64_t operationid;
99  int sockfd;
100  int64_t userid;
101  int64_t domainid;
102  string domainName; // for login
104 };
105 
106 #endif /* INFINISQLOPERATION_H */