@@ -75,34 +75,66 @@ int PDArgsGetIds(PD_Arguments args, uint64_t ID, PD_IVector ids) {
75
75
76
76
int PDArgsSetIds (PD_Arguments args, uint64_t ID, PD_IVector ids) {
77
77
// ! TODO(lizhao): Complete this method.
78
- return kPD_UNDEFINED_ERROR ;
78
+ if (args == nullptr || ids == nullptr ) return kPD_NULLPTR ;
79
+ auto iv = paddle::capi::cast<paddle::capi::CIVector>(ids);
80
+ if (iv->vec == nullptr ) return kPD_NULLPTR ;
81
+ auto a = castArg (args);
82
+ if (ID >= a->args .size ()) return kPD_OUT_OF_RANGE ;
83
+ a->args [ID].ids = iv->vec ;
84
+ return kPD_NO_ERROR ;
79
85
}
80
86
81
87
int PDArgsSetSequenceStartPos (PD_Arguments args,
82
88
uint64_t ID,
83
89
PD_IVector seqPos) {
84
90
// ! TODO(lizhao): Complete this method.
85
- return kPD_UNDEFINED_ERROR ;
91
+ if (args == nullptr || seqPos == nullptr ) return kPD_NULLPTR ;
92
+ auto iv = paddle::capi::cast<paddle::capi::CIVector>(seqPos);
93
+ if (iv->vec == nullptr ) return kPD_NULLPTR ;
94
+ auto a = castArg (args);
95
+ if (ID >= a->args .size ()) return kPD_OUT_OF_RANGE ;
96
+ a->args [ID].sequenceStartPositions =
97
+ std::make_shared<paddle::ICpuGpuVector>(iv->vec );
98
+ return kPD_NO_ERROR ;
86
99
}
87
100
88
101
int PDArgsSetSubSequenceStartPos (PD_Arguments args,
89
102
uint64_t ID,
90
103
PD_IVector subSeqPos) {
91
104
// ! TODO(lizhao): Complete this method.
92
- return kPD_UNDEFINED_ERROR ;
105
+ if (args == nullptr || subSeqPos == nullptr ) return kPD_NULLPTR ;
106
+ auto iv = paddle::capi::cast<paddle::capi::CIVector>(subSeqPos);
107
+ if (iv->vec == nullptr ) return kPD_NULLPTR ;
108
+ auto a = castArg (args);
109
+ if (ID >= a->args .size ()) return kPD_OUT_OF_RANGE ;
110
+ a->args [ID].sequenceStartPositions =
111
+ std::make_shared<paddle::ICpuGpuVector>(iv->vec );
112
+ return kPD_NO_ERROR ;
93
113
}
94
114
95
115
int PDArgsGetSequenceStartPos (PD_Arguments args,
96
116
uint64_t ID,
97
117
PD_IVector seqPos) {
98
118
// ! TODO(lizhao): Complete this method.
99
- return kPD_UNDEFINED_ERROR ;
119
+ if (args == nullptr || seqPos == nullptr ) return kPD_NULLPTR ;
120
+ auto iv = castIVec (seqPos);
121
+ auto a = castArg (args);
122
+ if (ID >= a->args .size ()) return kPD_OUT_OF_RANGE ;
123
+ std::make_shared<paddle::ICpuGpuVector>(iv->vec ) =
124
+ a->args [ID].sequenceStartPositions ;
125
+ return kPD_NO_ERROR ;
100
126
}
101
127
102
128
int PDArgsGetSubSequenceStartPos (PD_Arguments args,
103
129
uint64_t ID,
104
130
PD_IVector subSeqPos) {
105
131
// ! TODO(lizhao): Complete this method.
106
- return kPD_UNDEFINED_ERROR ;
132
+ if (args == nullptr || subSeqPos == nullptr ) return kPD_NULLPTR ;
133
+ auto iv = castIVec (subSeqPos);
134
+ auto a = castArg (args);
135
+ if (ID >= a->args .size ()) return kPD_OUT_OF_RANGE ;
136
+ std::make_shared<paddle::ICpuGpuVector>(iv->vec ) =
137
+ a->args [ID].sequenceStartPositions ;
138
+ return kPD_NO_ERROR ;
107
139
}
108
140
}
0 commit comments