mirror of
https://github.com/opensim/opensim.git
synced 2026-08-09 18:55:58 +08:00
* More work on getting the database framework to actually work
This commit is contained in:
@@ -3,7 +3,7 @@ using MySql.Data.MySqlClient;
|
||||
|
||||
namespace OpenSim.Framework.Data.MySQL
|
||||
{
|
||||
public class MySQLDatabaseMapper : OpenSimDatabaseMapper
|
||||
public class MySQLDatabaseMapper : OpenSimDatabaseConnector
|
||||
{
|
||||
public MySQLDatabaseMapper(string connectionString)
|
||||
: base(connectionString)
|
||||
|
||||
@@ -7,7 +7,7 @@ using TribalMedia.Framework.Data;
|
||||
|
||||
namespace OpenSim.Framework.Data
|
||||
{
|
||||
public class OpenSimDataReader : DataReader
|
||||
public class OpenSimDataReader : BaseDataReader
|
||||
{
|
||||
public OpenSimDataReader(IDataReader source) : base(source)
|
||||
{
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
using System.Data.Common;
|
||||
using System.Data;
|
||||
using libsecondlife;
|
||||
using TribalMedia.Framework.Data;
|
||||
|
||||
namespace OpenSim.Framework.Data
|
||||
{
|
||||
public abstract class OpenSimDatabaseMapper : BaseDatabaseConnector
|
||||
public abstract class OpenSimDatabaseConnector : BaseDatabaseConnector
|
||||
{
|
||||
public OpenSimDatabaseMapper(string connectionString) : base(connectionString)
|
||||
public OpenSimDatabaseConnector(string connectionString) : base(connectionString)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -19,5 +19,10 @@ namespace OpenSim.Framework.Data
|
||||
|
||||
return base.ConvertToDbType(value);
|
||||
}
|
||||
|
||||
public override BaseDataReader CreateReader(IDataReader reader)
|
||||
{
|
||||
return new OpenSimDataReader(reader);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -44,7 +44,7 @@ namespace OpenSim.Framework.Data
|
||||
}
|
||||
}
|
||||
|
||||
protected override object GetValue(DataReader reader)
|
||||
protected override object GetValue(BaseDataReader reader)
|
||||
{
|
||||
object value;
|
||||
|
||||
|
||||
@@ -8,10 +8,5 @@ namespace OpenSim.Framework.Data
|
||||
public OpenSimTableMapper(BaseDatabaseConnector database, string tableName) : base(database, tableName)
|
||||
{
|
||||
}
|
||||
|
||||
protected override DataReader CreateReader(IDataReader reader)
|
||||
{
|
||||
return new OpenSimDataReader(reader);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,11 +5,11 @@ using libsecondlife;
|
||||
|
||||
namespace OpenSim.Framework.Data
|
||||
{
|
||||
public class PrimitiveBaseShapeRowMapper : RowMapper<PrimitiveBaseShape>
|
||||
public class PrimitiveBaseShapeRowMapper : BaseRowMapper<PrimitiveBaseShape>
|
||||
{
|
||||
public Guid SceneObjectPartId;
|
||||
|
||||
public PrimitiveBaseShapeRowMapper(Schema schema, PrimitiveBaseShape obj) : base(schema, obj)
|
||||
public PrimitiveBaseShapeRowMapper(BaseSchema schema, PrimitiveBaseShape obj) : base(schema, obj)
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -19,7 +19,7 @@ namespace OpenSim.Framework.Data
|
||||
public PrimitiveBaseShapeTableMapper(BaseDatabaseConnector connection, string tableName)
|
||||
: base(connection, tableName)
|
||||
{
|
||||
ObjectSchema<PrimitiveBaseShapeRowMapper> rowMapperSchema = new ObjectSchema<PrimitiveBaseShapeRowMapper>(this);
|
||||
BaseSchema<PrimitiveBaseShapeRowMapper> rowMapperSchema = new BaseSchema<PrimitiveBaseShapeRowMapper>(this);
|
||||
m_schema = rowMapperSchema;
|
||||
|
||||
m_keyFieldMapper = rowMapperSchema.AddMapping<Guid>("SceneObjectPartId",
|
||||
@@ -111,7 +111,7 @@ namespace OpenSim.Framework.Data
|
||||
delegate(PrimitiveBaseShapeRowMapper shape, byte[] value) { shape.Object.ExtraParams = value; });
|
||||
}
|
||||
|
||||
public override PrimitiveBaseShapeRowMapper FromReader(DataReader reader)
|
||||
public override PrimitiveBaseShapeRowMapper FromReader(BaseDataReader reader)
|
||||
{
|
||||
PrimitiveBaseShape shape = new PrimitiveBaseShape();
|
||||
|
||||
|
||||
@@ -416,7 +416,7 @@ namespace OpenSim.Region.ClientStack
|
||||
{
|
||||
// this will normally trigger at least one packet (ping response)
|
||||
SendStartPingCheck(0);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -424,7 +424,7 @@ namespace OpenSim.Region.ClientStack
|
||||
// Something received in the meantime - we can reset the counters
|
||||
m_probesWithNoIngressPackets = 0;
|
||||
m_lastPacketsReceived = m_packetsReceived;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2311,7 +2311,7 @@ namespace OpenSim.Region.ClientStack
|
||||
if (Pack.Header.Reliable) //DIRTY HACK
|
||||
{
|
||||
AddAck(Pack); // this adds the need to ack this packet later
|
||||
|
||||
|
||||
|
||||
if (Pack.Type != PacketType.PacketAck && Pack.Type != PacketType.LogoutRequest)
|
||||
{
|
||||
@@ -2355,10 +2355,15 @@ namespace OpenSim.Region.ClientStack
|
||||
{
|
||||
lock (m_needAck)
|
||||
{
|
||||
foreach (uint ack in NewPack.Header.AckList)
|
||||
foreach (uint ackedPacketId in NewPack.Header.AckList)
|
||||
{
|
||||
m_unAckedBytes -= m_needAck[ack].ToBytes().Length;
|
||||
m_needAck.Remove(ack);
|
||||
Packet ackedPacket;
|
||||
|
||||
if (m_needAck.TryGetValue(ackedPacketId, out ackedPacket))
|
||||
{
|
||||
m_unAckedBytes -= ackedPacket.ToBytes().Length;
|
||||
m_needAck.Remove(ackedPacketId);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2373,18 +2378,12 @@ namespace OpenSim.Region.ClientStack
|
||||
{
|
||||
foreach (PacketAckPacket.PacketsBlock block in ackPacket.Packets)
|
||||
{
|
||||
if (m_needAck.ContainsKey(block.ID))
|
||||
uint ackedPackId = block.ID;
|
||||
Packet ackedPacket;
|
||||
if (m_needAck.TryGetValue(ackedPackId, out ackedPacket))
|
||||
{
|
||||
try
|
||||
{
|
||||
m_unAckedBytes -= m_needAck[block.ID].ToBytes().Length;
|
||||
m_needAck.Remove(block.ID);
|
||||
}
|
||||
catch (System.Collections.Generic.KeyNotFoundException)
|
||||
{
|
||||
// Did another packet come in with the ack already?
|
||||
// apparently so!
|
||||
}
|
||||
m_unAckedBytes -= ackedPacket.ToBytes().Length;
|
||||
m_needAck.Remove(ackedPackId);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2500,11 +2499,11 @@ namespace OpenSim.Region.ClientStack
|
||||
|
||||
protected void AckTimer_Elapsed(object sender, ElapsedEventArgs ea)
|
||||
{
|
||||
|
||||
|
||||
SendAcks();
|
||||
ResendUnacked();
|
||||
SendPacketStats();
|
||||
|
||||
|
||||
}
|
||||
|
||||
protected void SendPacketStats()
|
||||
|
||||
Reference in New Issue
Block a user