summaryrefslogtreecommitdiff
path: root/src/mongo/db/commands/write_commands/write_commands.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/commands/write_commands/write_commands.h')
-rw-r--r--src/mongo/db/commands/write_commands/write_commands.h170
1 files changed, 86 insertions, 84 deletions
diff --git a/src/mongo/db/commands/write_commands/write_commands.h b/src/mongo/db/commands/write_commands/write_commands.h
index cbb2db6cac6..fcdda1b56fd 100644
--- a/src/mongo/db/commands/write_commands/write_commands.h
+++ b/src/mongo/db/commands/write_commands/write_commands.h
@@ -36,89 +36,91 @@
namespace mongo {
+/**
+ * Base class for write commands. Write commands support batch writes and write concern,
+ * and return per-item error information. All write commands use the (non-virtual) entry
+ * point WriteCmd::run().
+ *
+ * Command parsing is performed by the WriteBatch class (command syntax documented there),
+ * and command execution is performed by the WriteBatchExecutor class.
+ */
+class WriteCmd : public Command {
+ MONGO_DISALLOW_COPYING(WriteCmd);
+
+public:
+ virtual ~WriteCmd() {}
+
+protected:
/**
- * Base class for write commands. Write commands support batch writes and write concern,
- * and return per-item error information. All write commands use the (non-virtual) entry
- * point WriteCmd::run().
- *
- * Command parsing is performed by the WriteBatch class (command syntax documented there),
- * and command execution is performed by the WriteBatchExecutor class.
+ * Instantiates a command that can be invoked by "name", which will be capable of issuing
+ * write batches of type "writeType", and will require privilege "action" to run.
*/
- class WriteCmd : public Command {
- MONGO_DISALLOW_COPYING(WriteCmd);
- public:
- virtual ~WriteCmd() {}
-
- protected:
-
- /**
- * Instantiates a command that can be invoked by "name", which will be capable of issuing
- * write batches of type "writeType", and will require privilege "action" to run.
- */
- WriteCmd( StringData name, BatchedCommandRequest::BatchType writeType );
-
- // Full log of write command can be quite large.
- static void redactTooLongLog( mutablebson::Document* cmdObj, StringData fieldName );
-
- private:
- virtual bool slaveOk() const;
-
- virtual bool isWriteCommandForConfigServer() const;
-
- virtual Status checkAuthForCommand( ClientBasic* client,
- const std::string& dbname,
- const BSONObj& cmdObj );
-
- virtual bool shouldAffectCommandCounter() const;
-
- // Write command entry point.
- virtual bool run(
- OperationContext* txn,
- const std::string& dbname,
- BSONObj& cmdObj,
- int options,
- std::string& errmsg,
- BSONObjBuilder& result);
-
- // Write commands can be explained.
- virtual Status explain(OperationContext* txn,
- const std::string& dbname,
- const BSONObj& cmdObj,
- ExplainCommon::Verbosity verbosity,
- BSONObjBuilder* out) const;
-
- // Type of batch (e.g. insert).
- BatchedCommandRequest::BatchType _writeType;
- };
-
- class CmdInsert : public WriteCmd {
- MONGO_DISALLOW_COPYING(CmdInsert);
- public:
- CmdInsert();
- void redactForLogging(mutablebson::Document* cmdObj);
-
- private:
- virtual void help(std::stringstream& help) const;
- };
-
- class CmdUpdate : public WriteCmd {
- MONGO_DISALLOW_COPYING(CmdUpdate);
- public:
- CmdUpdate();
- void redactForLogging(mutablebson::Document* cmdObj);
-
- private:
- virtual void help(std::stringstream& help) const;
- };
-
- class CmdDelete : public WriteCmd {
- MONGO_DISALLOW_COPYING(CmdDelete);
- public:
- CmdDelete();
- void redactForLogging(mutablebson::Document* cmdObj);
-
- private:
- virtual void help(std::stringstream& help) const;
- };
-
-} // namespace mongo
+ WriteCmd(StringData name, BatchedCommandRequest::BatchType writeType);
+
+ // Full log of write command can be quite large.
+ static void redactTooLongLog(mutablebson::Document* cmdObj, StringData fieldName);
+
+private:
+ virtual bool slaveOk() const;
+
+ virtual bool isWriteCommandForConfigServer() const;
+
+ virtual Status checkAuthForCommand(ClientBasic* client,
+ const std::string& dbname,
+ const BSONObj& cmdObj);
+
+ virtual bool shouldAffectCommandCounter() const;
+
+ // Write command entry point.
+ virtual bool run(OperationContext* txn,
+ const std::string& dbname,
+ BSONObj& cmdObj,
+ int options,
+ std::string& errmsg,
+ BSONObjBuilder& result);
+
+ // Write commands can be explained.
+ virtual Status explain(OperationContext* txn,
+ const std::string& dbname,
+ const BSONObj& cmdObj,
+ ExplainCommon::Verbosity verbosity,
+ BSONObjBuilder* out) const;
+
+ // Type of batch (e.g. insert).
+ BatchedCommandRequest::BatchType _writeType;
+};
+
+class CmdInsert : public WriteCmd {
+ MONGO_DISALLOW_COPYING(CmdInsert);
+
+public:
+ CmdInsert();
+ void redactForLogging(mutablebson::Document* cmdObj);
+
+private:
+ virtual void help(std::stringstream& help) const;
+};
+
+class CmdUpdate : public WriteCmd {
+ MONGO_DISALLOW_COPYING(CmdUpdate);
+
+public:
+ CmdUpdate();
+ void redactForLogging(mutablebson::Document* cmdObj);
+
+private:
+ virtual void help(std::stringstream& help) const;
+};
+
+class CmdDelete : public WriteCmd {
+ MONGO_DISALLOW_COPYING(CmdDelete);
+
+public:
+ CmdDelete();
+ void redactForLogging(mutablebson::Document* cmdObj);
+
+private:
+ virtual void help(std::stringstream& help) const;
+};
+
+} // namespace mongo