* More work on getting the database framework to actually work

This commit is contained in:
lbsa71
2008-01-16 12:25:13 +00:00
parent 29c869fd33
commit 5e757d2ad1
13 changed files with 57 additions and 143 deletions

View File

@@ -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)

View File

@@ -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)
{

View File

@@ -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);
}
}
}

View File

@@ -44,7 +44,7 @@ namespace OpenSim.Framework.Data
}
}
protected override object GetValue(DataReader reader)
protected override object GetValue(BaseDataReader reader)
{
object value;

View File

@@ -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);
}
}
}

View File

@@ -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();

View File

@@ -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()