-
Notifications
You must be signed in to change notification settings - Fork 80
Expand file tree
/
Copy pathSequence.cpp
More file actions
90 lines (74 loc) · 2.33 KB
/
Copy pathSequence.cpp
File metadata and controls
90 lines (74 loc) · 2.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
// Copyright (c) 2009, Object Computing, Inc.
// All rights reserved.
// See the file license.txt for licensing information.
#include "StdAfx.h"
#include "Sequence.h"
#include "FieldSet.h"
#include "StlDotNet.h"
using namespace System;
namespace QuickFASTDotNet{
namespace Messages{
Sequence::Sequence()
:sequencePtr_(QuickFAST::Messages::SequencePtr(new TSequence))
{
}
Sequence::Sequence(const TSequence& sequence)
:sequencePtr_(QuickFAST::Messages::SequencePtr(new TSequence(sequence)))
{
}
Sequence::Sequence(const QuickFAST::Messages::SequencePtr& message)
:sequencePtr_(message)
{
}
FieldSet^ Sequence::default::get(unsigned int index)
{
const QuickFAST::Messages::Sequence& sequence = sequencePtr_.GetRef();
if(sequence.size() <= index || index < 0)
{
throw gcnew ArgumentOutOfRangeException();
}
return gcnew FieldSet(*sequence[index]);
}
String^ Sequence::ApplicationType::get()
{
return StlDotNet::string_cast(sequencePtr_->getApplicationType());
}
void Sequence::ApplicationType::set(String^ applicationType)
{
sequencePtr_->setApplicationType(StlDotNet::string_cast<std::string>(applicationType));
}
int Sequence::Count::get()
{
return sequencePtr_->size();
}
void Sequence::Add(FieldSet^ newFieldSet)
{
QuickFAST::Messages::FieldSetCPtr tmpPtr;
sequencePtr_->addEntry(newFieldSet->FieldSetPtr.GetBoostPtr());
}
System::Collections::IEnumerator^ Sequence::GetEnumerator()
{
return gcnew SequenceEnumerator(sequencePtr_->begin(), sequencePtr_->end());
}
System::Collections::Generic::IEnumerator<FieldSet^>^ Sequence::GetSpecializedEnumerator()
{
return gcnew SequenceEnumerator(sequencePtr_->begin(), sequencePtr_->end());
}
FieldSet^ Sequence::SequenceEnumerator::GenericCurrent::get()
{
return gcnew FieldSet(*(*itHolder_->it).get());
}
Object^ Sequence::SequenceEnumerator::Current::get()
{
return gcnew FieldSet(*(*itHolder_->it).get());
}
bool Sequence::SequenceEnumerator::MoveNext()
{
return (++itHolder_->it == itHolder_->end)? false: true;
}
void Sequence::SequenceEnumerator::Reset()
{
throw gcnew System::NotSupportedException();
}
}
}