cisst-saw
Loading...
Searching...
No Matches
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
12This software is provided "as is" under an open source license, with
13no warranty. The complete license can be found in license.txt and
14http://www.cisst.org/cisst/license.txt.
15
16--- end cisst license ---
17*/
18
19
24
25#ifndef _mtsCommandWriteBase_h
26#define _mtsCommandWriteBase_h
27
28
30#include <iostream>
31
32// Always include last
34
40class mtsCommandWriteBase: public mtsCommandBase {
41
44
45public:
46 typedef mtsCommandBase BaseType;
47
53
54 mtsCommandWriteBase(const std::string & name):
55 BaseType(name),
57 {}
58
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
100 return this->GetArgumentPrototype()->Services();
101 }
102
103protected:
104
105 inline virtual void SetArgumentPrototype(const mtsGenericObject * argumentPrototype) {
106 this->ArgumentPrototype = argumentPrototype;
107 }
108
110
111};
112
113
114#endif // _mtsCommandWriteBase_h
Base class for class services.
Definition cmnClassServicesBase.h:46
virtual const cmnClassServicesBase * Services(void) const =0
friend class mtsMulticastCommandWriteBase
Definition mtsCommandWriteBase.h:42
virtual void SetArgumentPrototype(const mtsGenericObject *argumentPrototype)
Definition mtsCommandWriteBase.h:105
bool Returns(void) const
Definition mtsCommandWriteBase.h:88
virtual mtsExecutionResult Execute(const mtsGenericObject &argument, mtsBlockingType blocking, mtsCommandWriteBase *CMN_UNUSED(finishedEventHandler))=0
virtual const mtsGenericObject * GetArgumentPrototype(void) const
Definition mtsCommandWriteBase.h:93
mtsCommandWriteBase(const std::string &name)
Definition mtsCommandWriteBase.h:54
mtsCommandBase BaseType
Definition mtsCommandWriteBase.h:46
const cmnClassServicesBase * GetArgumentClassServices(void) const
Definition mtsCommandWriteBase.h:99
mtsCommandWriteBase(void)
Definition mtsCommandWriteBase.h:49
const mtsGenericObject * ArgumentPrototype
Definition mtsCommandWriteBase.h:109
size_t NumberOfArguments(void) const
Definition mtsCommandWriteBase.h:83
virtual mtsExecutionResult Execute(const mtsGenericObject &argument, mtsBlockingType blocking)=0
friend class mtsCommandQueuedWriteGeneric
Definition mtsCommandWriteBase.h:43
virtual ~mtsCommandWriteBase()
Definition mtsCommandWriteBase.h:60
Definition mtsExecutionResult.h:34
Base class for data object in cisstMultiTask.
Definition mtsGenericObject.h:52
#define CMN_UNUSED(argument)
Definition cmnPortability.h:497
Defines a base class for a command.
Rules of exporting.
mtsBlockingType
Definition mtsForwardDeclarations.h:54