예제 #1
0
	Bundle &assign(const char *str, int n)
	{
		int32 len = (int32)n;
		int32 addtotalsize = 0;

		while(len > 0)
		{
			int32 ilen = onPacketAppend(len, false);
			pCurrPacket_->append((uint8*)(str + addtotalsize), ilen);
			addtotalsize += ilen;
			len -= ilen;
		}

		return *this;
	}
예제 #2
0
    Bundle &operator<<(const std::string &value)
    {
		int32 len = (int32)value.size() + 1; // +1为字符串尾部的0位置
		int32 addtotalsize = 0;

		while(len > 0)
		{
			int32 ilen = onPacketAppend(len, false);
			pCurrPacket_->append(value.c_str() + addtotalsize, ilen);
			addtotalsize += ilen;
			len -= ilen;
		}

        return *this;
    }
예제 #3
0
    Bundle &operator<<(const char *str)
    {
		int32 len = (int32)strlen(str) + 1;  // +1为字符串尾部的0位置
		int32 addtotalsize = 0;

		while(len > 0)
		{
			int32 ilen = onPacketAppend(len, false);
			pCurrPacket_->append(str + addtotalsize, ilen);
			addtotalsize += ilen;
			len -= ilen;
		}

        return *this;
    }
예제 #4
0
	Bundle &assign(const char *str, int n)
	{
		int32 len = (int32)n;
		int32 i = 0;
		int32 packetmaxsize = PACKET_MAX_CHUNK_SIZE();

		while(true)
		{
			len = onPacketAppend(len);
			if(len > 0)
			{
				pCurrPacket_->append((uint8*)str + (i++ * packetmaxsize), packetmaxsize);
			}
			else
			{
				pCurrPacket_->append((uint8*)str + (i++ * packetmaxsize), packetmaxsize + len);
				break;
			}
		}
		return *this;
	}
예제 #5
0
    Bundle &operator<<(const char *str)
    {
		int32 len = (int32)strlen(str) + 1;
		int32 i = 0;
		int32 packetmaxsize = PACKET_MAX_CHUNK_SIZE();

		while(true)
		{
			len = onPacketAppend(len);
			if(len > 0)
			{
				pCurrPacket_->append(str + (i++ * packetmaxsize), packetmaxsize);
			}
			else
			{
				pCurrPacket_->append(str + (i++ * packetmaxsize), packetmaxsize + len);
				break;
			}
		}

        return *this;
    }
예제 #6
0
    Bundle &operator<<(const std::string &value)
    {
		int32 len = (int32)value.size() + 1;
		int32 i = 0;
		int32 packetmaxsize = PACKET_MAX_CHUNK_SIZE();

		while(true)
		{
			len = onPacketAppend(len);
			if(len > 0)
			{
				pCurrPacket_->append(value.c_str() + (i++ * packetmaxsize), packetmaxsize);
			}
			else
			{
				pCurrPacket_->append(value.c_str() + (i++ * packetmaxsize), packetmaxsize + len);
				break;
			}
		}

        return *this;
    }
예제 #7
0
    Bundle &operator<<(bool value)
    {
		onPacketAppend(sizeof(int8));
        (*pCurrPacket_) << value;
        return *this;
    }
예제 #8
0
    Bundle &operator<<(ENTITY_MAILBOX_TYPE value)
    {
		onPacketAppend(sizeof(int32));
        (*pCurrPacket_) << value;
        return *this;
    }
예제 #9
0
    Bundle &operator<<(COMPONENT_TYPE value)
    {
		onPacketAppend(sizeof(int32));
        (*pCurrPacket_) << value;
        return *this;
    }
예제 #10
0
    Bundle &operator<<(double value)
    {
		onPacketAppend(sizeof(double));
        (*pCurrPacket_) << value;
        return *this;
    }
예제 #11
0
    Bundle &operator<<(float value)
    {
		onPacketAppend(sizeof(float));
        (*pCurrPacket_) << value;
        return *this;
    }
예제 #12
0
    Bundle &operator<<(uint64 value)
    {
		onPacketAppend(sizeof(uint64));
        (*pCurrPacket_) << value;
        return *this;
    }