refine code, array to ecma_array.

pull/133/head
winlin 11 years ago
parent 3129c738cb
commit a3ae871360

@ -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…
Cancel
Save