mirror of
https://github.com/ossrs/srs.git
synced 2025-02-13 03:41:55 +00:00
refine code, array to ecma_array.
This commit is contained in:
parent
3129c738cb
commit
a3ae871360
5 changed files with 78 additions and 43 deletions
|
@ -277,7 +277,7 @@ SrsAmf0Object* SrsAmf0Any::to_object()
|
|||
return p;
|
||||
}
|
||||
|
||||
SrsAmf0EcmaArray* SrsAmf0Any::to_array()
|
||||
SrsAmf0EcmaArray* SrsAmf0Any::to_ecma_array()
|
||||
{
|
||||
SrsAmf0EcmaArray* p = dynamic_cast<SrsAmf0EcmaArray*>(this);
|
||||
srs_assert(p != NULL);
|
||||
|
@ -324,7 +324,7 @@ SrsAmf0Any* SrsAmf0Any::object_eof()
|
|||
return new __SrsAmf0ObjectEOF();
|
||||
}
|
||||
|
||||
SrsAmf0EcmaArray* SrsAmf0Any::array()
|
||||
SrsAmf0EcmaArray* SrsAmf0Any::ecma_array()
|
||||
{
|
||||
return new SrsAmf0EcmaArray();
|
||||
}
|
||||
|
@ -378,7 +378,7 @@ int SrsAmf0Any::discovery(SrsStream* stream, SrsAmf0Any** ppvalue)
|
|||
return ret;
|
||||
}
|
||||
case RTMP_AMF0_EcmaArray: {
|
||||
*ppvalue = SrsAmf0Any::array();
|
||||
*ppvalue = SrsAmf0Any::ecma_array();
|
||||
return ret;
|
||||
}
|
||||
case RTMP_AMF0_Invalid:
|
||||
|
@ -959,7 +959,7 @@ int SrsAmf0Size::object_eof()
|
|||
return 2 + 1;
|
||||
}
|
||||
|
||||
int SrsAmf0Size::array(SrsAmf0EcmaArray* arr)
|
||||
int SrsAmf0Size::ecma_array(SrsAmf0EcmaArray* arr)
|
||||
{
|
||||
if (!arr) {
|
||||
return 0;
|
||||
|
@ -1517,7 +1517,7 @@ int srs_amf0_read_ecma_array(SrsStream* stream, SrsAmf0EcmaArray*& value)
|
|||
{
|
||||
int ret = ERROR_SUCCESS;
|
||||
|
||||
value = SrsAmf0Any::array();
|
||||
value = SrsAmf0Any::ecma_array();
|
||||
|
||||
if ((ret = value->read(stream)) != ERROR_SUCCESS) {
|
||||
srs_freep(value);
|
||||
|
|
|
@ -58,10 +58,10 @@ class __SrsAmf0ObjectEOF;
|
|||
// SrsAmf0Any* pany = SrsAmf0Any::str("winlin");
|
||||
// 4. SrsAmf0Size: get amf0 instance size
|
||||
// int size = SrsAmf0Size::str("winlin");
|
||||
// 5. SrsAmf0Object: the amf0 object.
|
||||
// 5. SrsAmf0Object: create the amf0 object.
|
||||
// SrsAmf0Object* obj = SrsAmf0Any::object();
|
||||
// 5. SrsAmf0EcmaArray: the amf0 ecma array.
|
||||
// SrsAmf0EcmaArray* arr = SrsAmf0Any::array();
|
||||
// 5. SrsAmf0EcmaArray: create the amf0 ecma array.
|
||||
// SrsAmf0EcmaArray* arr = SrsAmf0Any::ecma_array();
|
||||
// for detail usage, see interfaces of each object.
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
@ -116,7 +116,7 @@ public:
|
|||
* get the ecma array of any when is_ecma_array() indicates true.
|
||||
* user must ensure the type is a ecma array, or assert failed.
|
||||
*/
|
||||
virtual SrsAmf0EcmaArray* to_array();
|
||||
virtual SrsAmf0EcmaArray* to_ecma_array();
|
||||
public:
|
||||
/**
|
||||
* get the size of amf0 any, including the marker size.
|
||||
|
@ -135,7 +135,7 @@ public:
|
|||
static SrsAmf0Any* undefined();
|
||||
static SrsAmf0Object* object();
|
||||
static SrsAmf0Any* object_eof();
|
||||
static SrsAmf0EcmaArray* array();
|
||||
static SrsAmf0EcmaArray* ecma_array();
|
||||
public:
|
||||
static int discovery(SrsStream* stream, SrsAmf0Any** ppvalue);
|
||||
};
|
||||
|
@ -185,7 +185,7 @@ private:
|
|||
int32_t count;
|
||||
|
||||
private:
|
||||
// use SrsAmf0Any::array() to create it.
|
||||
// use SrsAmf0Any::ecma_array() to create it.
|
||||
friend class SrsAmf0Any;
|
||||
SrsAmf0EcmaArray();
|
||||
public:
|
||||
|
@ -218,7 +218,7 @@ public:
|
|||
static int boolean();
|
||||
static int object(SrsAmf0Object* obj);
|
||||
static int object_eof();
|
||||
static int array(SrsAmf0EcmaArray* arr);
|
||||
static int ecma_array(SrsAmf0EcmaArray* arr);
|
||||
static int any(SrsAmf0Any* o);
|
||||
};
|
||||
|
||||
|
|
|
@ -706,7 +706,7 @@ int SrsRtmpServer::response_connect_app(SrsRequest *req, const char* server_ip)
|
|||
pkt->info->set(StatusCode, SrsAmf0Any::str(StatusCodeConnectSuccess));
|
||||
pkt->info->set(StatusDescription, SrsAmf0Any::str("Connection succeeded"));
|
||||
pkt->info->set("objectEncoding", SrsAmf0Any::number(req->objectEncoding));
|
||||
SrsAmf0EcmaArray* data = SrsAmf0Any::array();
|
||||
SrsAmf0EcmaArray* data = SrsAmf0Any::ecma_array();
|
||||
pkt->info->set("data", data);
|
||||
|
||||
data->set("version", SrsAmf0Any::str(RTMP_SIG_FMS_VER));
|
||||
|
|
|
@ -3201,7 +3201,7 @@ int SrsOnMetaDataPacket::decode(SrsStream* stream)
|
|||
SrsAutoFree(SrsAmf0Any, any, false);
|
||||
|
||||
if (any->is_ecma_array()) {
|
||||
SrsAmf0EcmaArray* arr = any->to_array();
|
||||
SrsAmf0EcmaArray* arr = any->to_ecma_array();
|
||||
|
||||
// if ecma array, copy to object.
|
||||
for (int i = 0; i < arr->size(); i++) {
|
||||
|
|
|
@ -106,61 +106,61 @@ VOID TEST(AMF0Test, Size)
|
|||
// array: empty
|
||||
if (true) {
|
||||
int size = 1+4+3;
|
||||
SrsAmf0EcmaArray* o = SrsAmf0Any::array();
|
||||
SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array();
|
||||
SrsAutoFree(SrsAmf0EcmaArray, o, false);
|
||||
|
||||
EXPECT_EQ(size, SrsAmf0Size::array(o));
|
||||
EXPECT_EQ(size, SrsAmf0Size::ecma_array(o));
|
||||
}
|
||||
// array: elem
|
||||
if (true) {
|
||||
int size = 1+4+3;
|
||||
SrsAmf0EcmaArray* o = SrsAmf0Any::array();
|
||||
SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array();
|
||||
SrsAutoFree(SrsAmf0EcmaArray, o, false);
|
||||
|
||||
size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
|
||||
o->set("name", SrsAmf0Any::str("winlin"));
|
||||
|
||||
EXPECT_EQ(size, SrsAmf0Size::array(o));
|
||||
EXPECT_EQ(size, SrsAmf0Size::ecma_array(o));
|
||||
}
|
||||
if (true) {
|
||||
int size = 1+4+3;
|
||||
SrsAmf0EcmaArray* o = SrsAmf0Any::array();
|
||||
SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array();
|
||||
SrsAutoFree(SrsAmf0EcmaArray, o, false);
|
||||
|
||||
size += SrsAmf0Size::utf8("age")+SrsAmf0Size::number();
|
||||
o->set("age", SrsAmf0Any::number(9));
|
||||
|
||||
EXPECT_EQ(size, SrsAmf0Size::array(o));
|
||||
EXPECT_EQ(size, SrsAmf0Size::ecma_array(o));
|
||||
}
|
||||
if (true) {
|
||||
int size = 1+4+3;
|
||||
SrsAmf0EcmaArray* o = SrsAmf0Any::array();
|
||||
SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array();
|
||||
SrsAutoFree(SrsAmf0EcmaArray, o, false);
|
||||
|
||||
size += SrsAmf0Size::utf8("email")+SrsAmf0Size::null();
|
||||
o->set("email", SrsAmf0Any::null());
|
||||
|
||||
EXPECT_EQ(size, SrsAmf0Size::array(o));
|
||||
EXPECT_EQ(size, SrsAmf0Size::ecma_array(o));
|
||||
}
|
||||
if (true) {
|
||||
int size = 1+4+3;
|
||||
SrsAmf0EcmaArray* o = SrsAmf0Any::array();
|
||||
SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array();
|
||||
SrsAutoFree(SrsAmf0EcmaArray, o, false);
|
||||
|
||||
size += SrsAmf0Size::utf8("email")+SrsAmf0Size::undefined();
|
||||
o->set("email", SrsAmf0Any::undefined());
|
||||
|
||||
EXPECT_EQ(size, SrsAmf0Size::array(o));
|
||||
EXPECT_EQ(size, SrsAmf0Size::ecma_array(o));
|
||||
}
|
||||
if (true) {
|
||||
int size = 1+4+3;
|
||||
SrsAmf0EcmaArray* o = SrsAmf0Any::array();
|
||||
SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array();
|
||||
SrsAutoFree(SrsAmf0EcmaArray, o, false);
|
||||
|
||||
size += SrsAmf0Size::utf8("sex")+SrsAmf0Size::boolean();
|
||||
o->set("sex", SrsAmf0Any::boolean(true));
|
||||
|
||||
EXPECT_EQ(size, SrsAmf0Size::array(o));
|
||||
EXPECT_EQ(size, SrsAmf0Size::ecma_array(o));
|
||||
}
|
||||
|
||||
// object: array
|
||||
|
@ -172,9 +172,9 @@ VOID TEST(AMF0Test, Size)
|
|||
size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
|
||||
o->set("name", SrsAmf0Any::str("winlin"));
|
||||
|
||||
SrsAmf0EcmaArray* args = SrsAmf0Any::array();
|
||||
SrsAmf0EcmaArray* args = SrsAmf0Any::ecma_array();
|
||||
args->set("p0", SrsAmf0Any::str("function"));
|
||||
size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args);
|
||||
size += SrsAmf0Size::utf8("args")+SrsAmf0Size::ecma_array(args);
|
||||
o->set("args", args);
|
||||
|
||||
EXPECT_EQ(size, SrsAmf0Size::object(o));
|
||||
|
@ -187,14 +187,14 @@ VOID TEST(AMF0Test, Size)
|
|||
size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
|
||||
o->set("name", SrsAmf0Any::str("winlin"));
|
||||
|
||||
SrsAmf0EcmaArray* args = SrsAmf0Any::array();
|
||||
SrsAmf0EcmaArray* args = SrsAmf0Any::ecma_array();
|
||||
args->set("p0", SrsAmf0Any::str("function"));
|
||||
size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args);
|
||||
size += SrsAmf0Size::utf8("args")+SrsAmf0Size::ecma_array(args);
|
||||
o->set("args", args);
|
||||
|
||||
SrsAmf0EcmaArray* params = SrsAmf0Any::array();
|
||||
SrsAmf0EcmaArray* params = SrsAmf0Any::ecma_array();
|
||||
params->set("p1", SrsAmf0Any::number(10));
|
||||
size += SrsAmf0Size::utf8("params")+SrsAmf0Size::array(params);
|
||||
size += SrsAmf0Size::utf8("params")+SrsAmf0Size::ecma_array(params);
|
||||
o->set("params", params);
|
||||
|
||||
EXPECT_EQ(size, SrsAmf0Size::object(o));
|
||||
|
@ -203,7 +203,7 @@ VOID TEST(AMF0Test, Size)
|
|||
// array: object
|
||||
if (true) {
|
||||
int size = 1+4+3;
|
||||
SrsAmf0EcmaArray* o = SrsAmf0Any::array();
|
||||
SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array();
|
||||
SrsAutoFree(SrsAmf0EcmaArray, o, false);
|
||||
|
||||
size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
|
||||
|
@ -214,11 +214,11 @@ VOID TEST(AMF0Test, Size)
|
|||
size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args);
|
||||
o->set("args", args);
|
||||
|
||||
EXPECT_EQ(size, SrsAmf0Size::array(o));
|
||||
EXPECT_EQ(size, SrsAmf0Size::ecma_array(o));
|
||||
}
|
||||
if (true) {
|
||||
int size = 1+4+3;
|
||||
SrsAmf0EcmaArray* o = SrsAmf0Any::array();
|
||||
SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array();
|
||||
SrsAutoFree(SrsAmf0EcmaArray, o, false);
|
||||
|
||||
size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
|
||||
|
@ -234,7 +234,7 @@ VOID TEST(AMF0Test, Size)
|
|||
size += SrsAmf0Size::utf8("params")+SrsAmf0Size::object(params);
|
||||
o->set("params", params);
|
||||
|
||||
EXPECT_EQ(size, SrsAmf0Size::array(o));
|
||||
EXPECT_EQ(size, SrsAmf0Size::ecma_array(o));
|
||||
}
|
||||
|
||||
// object: object
|
||||
|
@ -262,23 +262,23 @@ VOID TEST(AMF0Test, Size)
|
|||
// array: array
|
||||
if (true) {
|
||||
int size = 1+4+3;
|
||||
SrsAmf0EcmaArray* o = SrsAmf0Any::array();
|
||||
SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array();
|
||||
SrsAutoFree(SrsAmf0EcmaArray, o, false);
|
||||
|
||||
size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
|
||||
o->set("name", SrsAmf0Any::str("winlin"));
|
||||
|
||||
SrsAmf0EcmaArray* args = SrsAmf0Any::array();
|
||||
SrsAmf0EcmaArray* args = SrsAmf0Any::ecma_array();
|
||||
args->set("p0", SrsAmf0Any::str("function"));
|
||||
size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args);
|
||||
size += SrsAmf0Size::utf8("args")+SrsAmf0Size::ecma_array(args);
|
||||
o->set("args", args);
|
||||
|
||||
SrsAmf0EcmaArray* params = SrsAmf0Any::array();
|
||||
SrsAmf0EcmaArray* params = SrsAmf0Any::ecma_array();
|
||||
params->set("p1", SrsAmf0Any::number(10));
|
||||
size += SrsAmf0Size::utf8("params")+SrsAmf0Size::array(params);
|
||||
size += SrsAmf0Size::utf8("params")+SrsAmf0Size::ecma_array(params);
|
||||
o->set("params", params);
|
||||
|
||||
EXPECT_EQ(size, SrsAmf0Size::array(o));
|
||||
EXPECT_EQ(size, SrsAmf0Size::ecma_array(o));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -693,5 +693,40 @@ VOID TEST(AMF0Test, AnyAssert)
|
|||
srs_freep(o);
|
||||
}
|
||||
|
||||
//
|
||||
// any convert
|
||||
if (true) {
|
||||
o = SrsAmf0Any::str();
|
||||
SrsAutoFree(SrsAmf0Any, o, false);
|
||||
EXPECT_TRUE(o->is_string());
|
||||
}
|
||||
if (true) {
|
||||
o = SrsAmf0Any::number();
|
||||
SrsAutoFree(SrsAmf0Any, o, false);
|
||||
EXPECT_TRUE(o->is_number());
|
||||
}
|
||||
if (true) {
|
||||
o = SrsAmf0Any::boolean();
|
||||
SrsAutoFree(SrsAmf0Any, o, false);
|
||||
EXPECT_TRUE(o->is_boolean());
|
||||
}
|
||||
if (true) {
|
||||
o = SrsAmf0Any::null();
|
||||
SrsAutoFree(SrsAmf0Any, o, false);
|
||||
EXPECT_TRUE(o->is_null());
|
||||
}
|
||||
if (true) {
|
||||
o = SrsAmf0Any::undefined();
|
||||
SrsAutoFree(SrsAmf0Any, o, false);
|
||||
EXPECT_TRUE(o->is_undefined());
|
||||
}
|
||||
if (true) {
|
||||
o = SrsAmf0Any::object();
|
||||
SrsAutoFree(SrsAmf0Any, o, false);
|
||||
EXPECT_TRUE(o->is_object());
|
||||
}
|
||||
if (true) {
|
||||
o = SrsAmf0Any::ecma_array();
|
||||
SrsAutoFree(SrsAmf0Any, o, false);
|
||||
EXPECT_TRUE(o->is_ecma_array());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue