cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mtsCommandRead.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 
6  Author(s): Ankur Kapoor, Peter Kazanzides, Anton Deguet
7  Created on: 2004-04-30
8 
9  (C) Copyright 2004-2014 Johns Hopkins University (JHU), All Rights Reserved.
10 
11 --- begin cisst license - do not edit ---
12 
13 This software is provided "as is" under an open source license, with
14 no warranty. The complete license can be found in license.txt and
15 http://www.cisst.org/cisst/license.txt.
16 
17 --- end cisst license ---
18 */
19 
20 
26 #ifndef _mtsCommandRead_h
27 #define _mtsCommandRead_h
28 
29 
32 
33 // Always include last
35 
43 public:
46 
49 
52 
53 private:
55  inline mtsCommandRead(const ThisType & CMN_UNUSED(other));
56 
57 protected:
59 
61 
62 public:
64  mtsCommandRead(void);
65 
66  mtsCommandRead(const std::string & name);
67 
68 
75  const std::string & name,
76  const mtsGenericObject * argumentPrototype);
77 
79  ~mtsCommandRead();
80 
85  virtual mtsExecutionResult Execute(mtsGenericObject & argument);
86 
90  mtsCommandWriteBase * CMN_UNUSED(finishedEventHandler))
91  { return Execute(argument); }
92 
98  mtsCallableReadBase * GetCallable(void) const;
99 
100  virtual const mtsGenericObject * GetArgumentPrototype(void) const;
101  // GetResultPrototype is same as GetArgumentPrototype, but provided for
102  // consistency with mtsCommandVoidReturn
103  virtual const mtsGenericObject * GetResultPrototype(void) const;
104 
105  /* documented in base class */
106  size_t NumberOfArguments(void) const;
107 
108  /* documented in base class */
109  bool Returns(void) const;
110 
111  /* documented in base class */
112  void ToStream(std::ostream & outputStream) const;
113 };
114 
115 
116 #endif // _mtsCommandRead_h
117 
#define CISST_EXPORT
Definition: cmnExportMacros.h:50
virtual size_t NumberOfArguments(void) const =0
virtual mtsExecutionResult Execute(mtsGenericObject &argument, mtsCommandWriteBase *CMN_UNUSED(finishedEventHandler))
Definition: mtsCommandRead.h:89
#define CMN_UNUSED(argument)
Definition: cmnPortability.h:479
virtual void ToStream(std::ostream &outputStream) const =0
mtsCommandBase BaseType
Definition: mtsCommandRead.h:45
Base class for data object in cisstMultiTask.
Definition: mtsGenericObject.h:56
mtsCommandRead ThisType
Definition: mtsCommandRead.h:48
Definition: mtsCommandRead.h:42
Definition: mtsCommandWriteBase.h:40
mtsCallableReadBase CallableType
Definition: mtsCommandRead.h:51
virtual bool Returns(void) const =0
mtsCallableReadBase * Callable
Definition: mtsCommandRead.h:58
Definition: mtsExecutionResult.h:34
Rules of exporting.
Definition: mtsCommandBase.h:43
const mtsGenericObject * ArgumentPrototype
Definition: mtsCommandRead.h:60
Definition: mtsCallableReadBase.h:39
Defines a base class for a command.