cisst-saw
Loading...
Searching...
No Matches
mtsCommandQueuedWriteBase.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: 2005-05-02
8
9 (C) Copyright 2005-2014 Johns Hopkins University (JHU), All Rights Reserved.
10
11--- begin cisst license - do not edit ---
12
13This software is provided "as is" under an open source license, with
14no warranty. The complete license can be found in license.txt and
15http://www.cisst.org/cisst/license.txt.
16
17--- end cisst license ---
18*/
19
20
25
26#ifndef _mtsCommandQueuedWriteBase_h
27#define _mtsCommandQueuedWriteBase_h
28
31
32// Always include last
34
36
38protected:
42
46
51
53 BaseType("??"),
54 MailBox(0),
57 {
58 mtsCommandWriteBase *cmd = 0;
60 }
61
62public:
63 inline mtsCommandQueuedWriteBase(mtsMailBox * mailBox, mtsCommandWriteBase * actualCommand, size_t size):
64 BaseType(actualCommand->GetName()),
65 MailBox(mailBox),
66 ActualCommand(actualCommand),
68 {
69 mtsCommandWriteBase *cmd = 0;
72 }
73
74
75 inline virtual ~mtsCommandQueuedWriteBase() {}
76
77
78 inline virtual mtsCommandWriteBase * GetActualCommand(void) {
79 return ActualCommand;
80 }
81
82
83 virtual void ToStream(std::ostream & outputStream) const;
84
85
86 virtual mtsCommandQueuedWriteBase * Clone(mtsMailBox* mailBox, size_t size) const = 0;
87
88
89 // Allocate should be called when a task calls GetMethodXXX().
90 virtual void Allocate(size_t size) = 0;
91
92
94 mtsBlockingType blocking);
95
96
98 mtsBlockingType blocking,
99 mtsCommandWriteBase *finishedEventHandler) = 0;
100
101
102 virtual const mtsGenericObject * ArgumentPeek(void) const = 0;
103
104
105 virtual mtsGenericObject * ArgumentGet(void) = 0;
106
108
110
111 inline virtual const std::string GetMailBoxName(void) const {
112 return this->MailBox ? this->MailBox->GetName() : "NULL";
113 }
114};
115
116#endif // _mtsCommandQueuedWrite_h
const std::string & GetName(void) const
Definition mtsCommandBase.h:116
mtsCommandWriteBase * ActualCommand
Definition mtsCommandQueuedWriteBase.h:41
virtual void ToStream(std::ostream &outputStream) const
virtual const std::string GetMailBoxName(void) const
Definition mtsCommandQueuedWriteBase.h:111
mtsCommandQueuedWriteBase(void)
Definition mtsCommandQueuedWriteBase.h:52
mtsCommandQueuedWriteBase(mtsMailBox *mailBox, mtsCommandWriteBase *actualCommand, size_t size)
Definition mtsCommandQueuedWriteBase.h:63
virtual void Allocate(size_t size)=0
virtual const mtsGenericObject * ArgumentPeek(void) const =0
virtual ~mtsCommandQueuedWriteBase()
Definition mtsCommandQueuedWriteBase.h:75
mtsQueue< mtsCommandWriteBase * > FinishedEventQueue
Definition mtsCommandQueuedWriteBase.h:50
mtsExecutionResult Execute(const mtsGenericObject &argument, mtsBlockingType blocking)
virtual mtsGenericObject * ArgumentGet(void)=0
virtual mtsCommandWriteBase * GetActualCommand(void)
Definition mtsCommandQueuedWriteBase.h:78
mtsQueue< mtsBlockingType > BlockingFlagQueue
Definition mtsCommandQueuedWriteBase.h:45
mtsCommandWriteBase * FinishedEventGet(void)
mtsBlockingType BlockingFlagGet(void)
virtual mtsCommandQueuedWriteBase * Clone(mtsMailBox *mailBox, size_t size) const =0
mtsExecutionResult Execute(const mtsGenericObject &argument, mtsBlockingType blocking, mtsCommandWriteBase *finishedEventHandler)=0
mtsMailBox * MailBox
Definition mtsCommandQueuedWriteBase.h:40
mtsCommandWriteBase BaseType
Definition mtsCommandQueuedWriteBase.h:39
Definition mtsCommandWriteBase.h:40
virtual void SetArgumentPrototype(const mtsGenericObject *argumentPrototype)
Definition mtsCommandWriteBase.h:105
virtual const mtsGenericObject * GetArgumentPrototype(void) const
Definition mtsCommandWriteBase.h:93
mtsCommandWriteBase(void)
Definition mtsCommandWriteBase.h:49
Definition mtsExecutionResult.h:34
Base class for data object in cisstMultiTask.
Definition mtsGenericObject.h:52
Definition mtsMailBox.h:36
const std::string & GetName(void) const
Definition mtsQueue.h:41
void SetSize(size_type size, const_reference value)
Definition mtsQueue.h:99
#define CISST_EXPORT
Definition cmnExportMacros.h:50
Defines a base class for a command with one argument.
Rules of exporting.
mtsBlockingType
Definition mtsForwardDeclarations.h:54
@ MTS_NOT_BLOCKING
Definition mtsForwardDeclarations.h:54
Defines a mailbox for communication between tasks.
size_type size(void) const
Definition vctDynamicConstMatrixBase.h:228