cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mtsCommandWriteBase.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* ex: set filetype=cpp softtabstop=4 shiftwidth=4 tabstop=4 cindent expandtab: */
3 
4 /*
5  Author(s): Ankur Kapoor, Peter Kazanzides, Anton Deguet
6  Created on: 2004-04-30
7 
8  (C) Copyright 2004-2014 Johns Hopkins University (JHU), All Rights Reserved.
9 
10 --- begin cisst license - do not edit ---
11 
12 This software is provided "as is" under an open source license, with
13 no warranty. The complete license can be found in license.txt and
14 http://www.cisst.org/cisst/license.txt.
15 
16 --- end cisst license ---
17 */
18 
19 
25 #ifndef _mtsCommandWriteBase_h
26 #define _mtsCommandWriteBase_h
27 
28 
30 #include <iostream>
31 
32 // Always include last
34 
41 
44 
45 public:
47 
50  BaseType(),
52  {}
53 
54  mtsCommandWriteBase(const std::string & name):
55  BaseType(name),
57  {}
58 
60  virtual ~mtsCommandWriteBase() {}
61 
69  virtual mtsExecutionResult Execute(const mtsGenericObject & argument, mtsBlockingType blocking) = 0;
70 
79  virtual mtsExecutionResult Execute(const mtsGenericObject & argument, mtsBlockingType blocking,
80  mtsCommandWriteBase * CMN_UNUSED(finishedEventHandler)) = 0;
81 
82  /* documented in base class */
83  inline size_t NumberOfArguments(void) const {
84  return 1;
85  }
86 
87  /* documented in base class */
88  inline bool Returns(void) const {
89  return false;
90  }
91 
93  inline virtual const mtsGenericObject * GetArgumentPrototype(void) const {
94  return this->ArgumentPrototype;
95  }
96 
99  inline const cmnClassServicesBase * GetArgumentClassServices(void) const {
100  return this->GetArgumentPrototype()->Services();
101  }
102 
103 protected:
104 
105  inline virtual void SetArgumentPrototype(const mtsGenericObject * argumentPrototype) {
106  this->ArgumentPrototype = argumentPrototype;
107  }
108 
110 
111 };
112 
113 
114 #endif // _mtsCommandWriteBase_h
virtual ~mtsCommandWriteBase()
Definition: mtsCommandWriteBase.h:60
bool Returns(void) const
Definition: mtsCommandWriteBase.h:88
size_t NumberOfArguments(void) const
Definition: mtsCommandWriteBase.h:83
#define CMN_UNUSED(argument)
Definition: cmnPortability.h:479
Base class for data object in cisstMultiTask.
Definition: mtsGenericObject.h:56
virtual const cmnClassServicesBase * Services(void) const =0
mtsCommandBase BaseType
Definition: mtsCommandWriteBase.h:46
Definition: mtsCommandWriteBase.h:40
Definition: mtsCommandQueuedWrite.h:209
const mtsGenericObject * ArgumentPrototype
Definition: mtsCommandWriteBase.h:109
const cmnClassServicesBase * GetArgumentClassServices(void) const
Definition: mtsCommandWriteBase.h:99
virtual void SetArgumentPrototype(const mtsGenericObject *argumentPrototype)
Definition: mtsCommandWriteBase.h:105
Definition: mtsMulticastCommandWriteBase.h:43
mtsCommandWriteBase(const std::string &name)
Definition: mtsCommandWriteBase.h:54
Definition: mtsExecutionResult.h:34
Base class for class services.
Definition: cmnClassServicesBase.h:45
Rules of exporting.
Definition: mtsCommandBase.h:43
virtual mtsExecutionResult Execute(const mtsGenericObject &argument, mtsBlockingType blocking)=0
mtsBlockingType
Definition: mtsForwardDeclarations.h:55
mtsCommandWriteBase(void)
Definition: mtsCommandWriteBase.h:49
virtual const mtsGenericObject * GetArgumentPrototype(void) const
Definition: mtsCommandWriteBase.h:93
Defines a base class for a command.