19 MinuitAnswerManager::MinuitAnswerManager(MinuitPtr aMinuitProtocol)
21 mProtocol = aMinuitProtocol;
23 mDiscoverAnswers =
new TTHash();
24 mGetAnswers =
new TTHash();
27 MinuitAnswerManager::~MinuitAnswerManager()
29 delete mDiscoverAnswers;
33 void MinuitAnswerManager::AddDiscoverAnswer(
TTSymbol from,
TTAddress address,
int timeOutInMs)
36 key += address.string();
38 MinuitAnswerPtr anAnswer =
new MinuitAnswer();
39 anAnswer->setTimeOut(timeOutInMs);
48 MinuitAnswerPtr anAnswer;
52 key += address.string();
54 err = mDiscoverAnswers->lookup(
TTSymbol(key), v);
57 anAnswer = MinuitAnswerPtr((
TTPtr)v[0]);
59 if (anAnswer->getState() != TIMEOUT_EXCEEDED) {
60 anAnswer->setAnswer(value, error);
65 cout <<
"MinuitAnswerManager::ReceiveDiscoverAnswer can't find a request at " << key << endl;
75 MinuitAnswerPtr anAnswer;
79 key += address.string();
82 err = mDiscoverAnswers->lookup(
TTSymbol(key), v);
85 anAnswer = MinuitAnswerPtr((
TTPtr)v[0]);
90 state = anAnswer->getState();
93 if(state != NO_ANSWER)
96 anAnswer->getAnswer(value);
97 mDiscoverAnswers->remove(
TTSymbol(key));
104 return REQUEST_NOT_SENT;
113 returnedType = answer[0];
121 if (toParse ==
TTSymbol(MINUIT_START_NODES)) {
126 parsed = kTTSymEmpty;
131 if (parsed !=
TTSymbol(MINUIT_END_NODES)) {
133 returnedChildren.
append(parsed);
135 #ifdef TT_PROTOCOL_DEBUG
136 cout <<
"Parsed node " << parsed.
c_str() << endl;
142 while (!endFlagFound);
145 else if (toParse ==
TTSymbol(MINUIT_START_ATTRIBUTES)) {
150 parsed = kTTSymEmpty;
155 if (parsed !=
TTSymbol(MINUIT_END_ATTRIBUTES)) {
157 returnedAttributes.
append(parsed);
159 #ifdef TT_PROTOCOL_DEBUG
160 cout <<
"Parsed attribute " << parsed.
c_str() << endl;
166 while (!endFlagFound);
176 void MinuitAnswerManager::AddGetAnswer(
TTSymbol from,
TTAddress address,
int timeOutInMs)
179 key += address.string();
181 MinuitAnswerPtr anAnswer =
new MinuitAnswer();
182 anAnswer->setTimeOut(timeOutInMs);
191 MinuitAnswerPtr anAnswer;
195 key += address.string();
197 err = mGetAnswers->lookup(
TTSymbol(key), v);
200 anAnswer = MinuitAnswerPtr((
TTPtr)v[0]);
202 if (anAnswer->getState() != TIMEOUT_EXCEEDED) {
203 anAnswer->setAnswer(value, error);
208 cout <<
"MinuitAnswerManager::ReceiveGetAnswer can't find a request at " << key << endl;
218 MinuitAnswerPtr anAnswer;
222 key += address.string();
225 err = mGetAnswers->lookup(
TTSymbol(key), v);
228 anAnswer = MinuitAnswerPtr((
TTPtr)v[0]);
233 state = anAnswer->getState();
236 if(state != NO_ANSWER)
239 anAnswer->getAnswer(value);
247 return REQUEST_NOT_SENT;
bool TTBoolean
Boolean flag, same as Boolean on the Mac.
The TTAddress class is used to represent a string and efficiently pass and compare that string...
size_type size() const noexcept
Return the number of elements.
Maintain a collection of TTValue objects indexed by TTSymbol pointers.
void append(const T &anElementValueToAppend)
Insert a single TTElement at the end.
void * TTPtr
A generic pointer.
The TTSymbol class is used to represent a string and efficiently pass and compare that string...
const char * c_str() const
Return a pointer to the internal string as a C-string.
Something went wrong, but what exactly is not known. Typically used for context-specific problems...
TTErr
Jamoma Error Codes Enumeration of error codes that might be returned by any of the TTBlue functions a...
std::uint32_t TTUInt32
32 bit unsigned integer
The TTString class is used to represent a string.
[doxygenAppendixC_copyExample]