public OneObj(Proxy proxy) { Proxy = proxy; Request = new Request(); Header = new Dictionary<CS,Header>(2); Header[CS.Client] = new Header(); Header[CS.Server] = new Header(); //データバッファ //Body = new Dictionary<CS,byte[]>(2); //Body[CS.Client] = new byte[0]; //Body[CS.Server] = new byte[0]; Body = new Dictionary<CS, BodyBuf>(2); Body[CS.Client] = new BodyBuf(640000); Body[CS.Server] = new BodyBuf(640000); //送信完了サイズ Pos = new Dictionary<CS,long>(2); Pos[CS.Client] = new long(); Pos[CS.Server] = new long(); }
// �L���b�V���擾 public OneCache Get(Request request, DateTime modified) { // �r������ lock (this) { // �������L���b�V����ɑ��݂��邩�ǂ����H if (_memoryCache != null) { OneCache oneCache = _memoryCache.Get(request.HostName, request.Port, request.Uri); if (oneCache != null) { //�������L���b�V���Ńq�b�g���� if (modified.Ticks == 0 || oneCache.LastModified.Ticks == 0 || modified == oneCache.LastModified) { //�L������ long d = oneCache.Expires.Ticks;//�w�b�_�Ŏ����ꂽ�ꍇ if (d == 0) {//�w�b�_�Ŏ�����Ă��Ȃ��ꍇ�́A�{�T�[�o�̃f�t�H���g�l���g�p����� d = oneCache.CreateDt.AddHours(_expires).Ticks; } if (d > DateTime.Now.Ticks) {//�L����������Ă��Ȃ����ǂ��� return oneCache;//�L���L���b�V�� } } // �������L���b�V���Ƀf�[�^�����݂��邪�u�L���������o�߂��Ă���v������́A�uModified����v���Ȃ��v�̂ō폜���� _memoryCache.Remove(request.HostName, request.Port, request.Uri); if (_diskCache != null) _diskCache.Remove(request.HostName, request.Port, request.Uri); return null; } } // �f�B�X�N�L���b�V����ɑ��݂��邩�ǂ����H if (_diskCache != null) { OneCache oneCache = _diskCache.Get(request.HostName, request.Port, request.Uri); if (oneCache != null) { //�f�B�X�N�L���b�V���Ńq�b�g���� if (modified.Ticks == 0 || oneCache.LastModified.Ticks == 0 || modified == oneCache.LastModified) { //�L������ long d = oneCache.Expires.Ticks;//�w�b�_�Ŏ����ꂽ�ꍇ if (d == 0) {//�w�b�_�Ŏ�����Ă��Ȃ��ꍇ�́A�{�T�[�o�̃f�t�H���g�l���g�p����� d = oneCache.CreateDt.AddHours(_expires).Ticks; } if (d > DateTime.Now.Ticks) {//�L����������Ă��Ȃ����ǂ��� //�������L���b�V���ւ̈ړ� if (_memoryCache != null && _memoryCache.Add(oneCache)) { logger.Set(LogKind.Detail, null, 19, string.Format("{0}:{1}{2}", oneCache.HostName, oneCache.Port, oneCache.Uri)); } return oneCache;//�L���L���b�V�� } } //�f�B�X�N�L���b�V���Ƀf�[�^�����݂��邪�u�L���������o�߂��Ă���v������́A�uModified����v���Ȃ��v�̂ō폜���� _diskCache.Remove(request.HostName, request.Port, request.Uri); return null; } } }// �r������ return null; }