Example #1
0
        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();
        }
Example #2
0
 // �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;
 }